ฟังก์ชันค้นหา Find-Search

ฟังก์ชันค้นหา Find – Search เป็นฟังก์ชันสำหรับค้นหา ข้อความ หรือ อักขระ ที่ต้องการ จาก ข้อความต่าง ๆ โดยจะส่งผลลัพธ์เป็นตำแหน่งของข้อความหรืออักขระนั้น (เช่น 1 2 3 4…) ทั้ง Find และ Search มีไวยากรณ์การเขียนเหมือนกัน ใช้งานเหมือนกัน แต่มีบางอย่างที่ไม่เหมือนกัน  

Find

ฟังก์ชันค้นหา Find นี้ มีเพื่อหาตำแหน่งของอักขระหรือข้อความที่ต้องการ จะมีอยู่ 2 แบบ คือ FIND กับ FINDB โดยทั้ง 2 ตัวนี้ ใช้งานเหมือนกันทุกประการ เพียงแค่ FIND ออกแบบมาใช้กับภาษาที่ใช้ single-byte character set (SBCS) ส่วนFINDB ออกแบบมาให้ใช้กับภาษาที่ใช้ double-byte character set (DBCS)

หรือจำง่าย ๆ ถ้าใครใช้ภาษาไทย อังกฤษ ทั่วไป ใช้ FIND แต่ถ้าเป็นภาษาที่มีความซับซ้อนเช่น จีน เกาหลี ญี่ปุ่น ใช้ FINDB

อ่านเพิ่มเติม

ไวยากรณ์ฟังก์ชัน

FIND (find_text, within_text, [start_num])

find_text คือ อักขระ หรือ ข้อความที่ต้องการหา (ถ้าเป็นภาษาอังกฤษ ตัวพิมพ์เล็ก ตัวพิมพ์ใหญ่จะถือเป็นคนละตัว) 

within_text คือ หา อักขระ หรือ ข้อความ นั้นจากไหน

[Start_num] คือ ตำแหน่งเริ่มต้นสำหรับการค้นหา เป็นปัจจัยเสริมที่ไม่ใส่ก็ได้ ถ้าไม่ใส่จะเริ่มต้นหาจากอักขระแรกทางซ้ายมือ 

Tips: อย่าลืมว่า ช่องว่าง (space) ก็นับเป็น 1 อักขระ

ตัวอย่าง

ในเซลล์ A1 ใส่ข้อความว่า Life Is What Happens When You’re Busy Making Other Plans แล้วเราต้องการหาว่า ตัวอักษร H อยู่ในลำดับที่เท่าไหร่ จะเขียนสูตรดังนี้

=FIND("H",A1)

นั่นคือ การหา ตัว H ใน A1 ซึ่งก็คือ การหาตัว H จากประโยค Life Is What Happens When You’re Busy Making Other Plans

ซึ่งจะให้ผลลัพธ์เป็น 14 คือตัว H แรกที่พบ คือ ตัว H จาก Happens

สำหรับภาษาอังกฤษ ถ้าใช้ฟังก์ชัน find ตัวอักษรพิมพ์ใหญ่ พิมพ์เล็ก จะถือว่าเป็นคนละตัวกัน ดังเช่นในตัวอย่าง เราให้หา H ถึงแม้จะมีตัว h จาก What อยู่ก่อน H จาก Happens จะไม่แสดงผลค่า h

หากต้องการค้นหาโดยไม่กำหนด ตัวพิมพ์เล็ก พิมพ์ใหญ่ ให้ใช้ฟังก์ชัน search แทน

อีกตัวอย่างหนึ่ง

=FIND("e",A1,10)

นั่นคือ หาอักขระ e ใน A1 โดยเริ่มจากอักขระที่ 10 จะได้ผลลัพธ์เป็น 18 นั่นคือ e จาก Happens โดยจะข้าม e ลำดับที่ 4 จาก Life ไป เพราะเราบังคับให้หาจากตำแหน่งที่ 10 เป็นต้นไป 

และอีกตัวอย่างหนึ่ง

=FIND("H",A1,16)

ให้ค้นหา H ใน A1 โดยเริ่มจากอักขระที่ 16 จะได้ผลลัพธ์เป็น #VALUE! นั่นคือไม่พบสิ่งที่ให้ค้นหา เพราะตัว H ในข้อความที่ Life Is What Happens When You’re Busy Making Other Plans นั้นมี H เพียง 1 ตัว ในลำดับที่ 14 แต่จากสูตรข้างต้น เราให้เริ่มหา H ที่อยู่ตั้งแต่อักขระตำแหน่งที่ 16 เป็นต้นไป ซึ่งไม่มี H 

Find

TIPS: ถ้าผลลัพธ์เป็น #VALUE! มีความเป็นไปได้อยู่ไม่กี่อย่าง คือ ใน within_text ที่ต้องการให้ค้นหานั้น ไม่มี find_text อยู่เลย หรือ Start_num เป็น ศูนย์ หรือ ติดลบ หรือ ใส่ตัวเลขมากกว่าจำนวนอักขระใน within_text

ในกรณีที่หาโดยใช้อักขระมากกว่า 1 ตัว ฟังก์ชัน FIND จะส่งตำแหน่งของตัวอักขระแรก 

=FIND("ap",A1)

เช่นเราต้องการหาคำว่า ap จะส่งกลับตำแหน่งของตัว a ของ Happens

Find

และการใช้ฟังก์ชัน find จะไม่สามารถใช้ตัว wildcard เช่น *

Search

ฟังก์ชันค้นหา Search มีเพื่อหาตำแหน่งของอักขระหรือข้อความที่ต้องการ คือ SEARCH กับ SEARCHB โดยทั้ง 2 ตัวนี้ ใช้งานเหมือนกันทุกประการ เพียงแค่ SEARCH ออกแบบมาใช้กับภาษาที่ใช้ single-byte character set (SBCS) ซึ่งก็คือเกือบทุกภาษาที่มีรากฐานมาจากอักษรลาติน หรือ โรมัน หรือ ภาษาอังกฤษที่เราคุ้นเคย รวมทั้งภาษาไทยด้วย

ส่วน SEARCHB ออกแบบมาให้ใช้กับภาษาที่ใช้ double-byte character set (DBCS)อย่างเช่น จีน เกาหลี ญี่ปุ่น คือพวกที่เกินข้อจำกัด 256 รูปแบบ ของ single-byte character set

ไวยากรณ์ฟังก์ชัน Search

SEARCH (search_text, within_text, [start_num])

search_text คือ อักขระ หรือ ข้อความที่ต้องการหา

within_text คือ ข้อความ ที่จะใช้ในการค้นหา

[Start_num] คือ ตำแหน่งเริ่มต้นสำหรับการค้นหา เป็นปัจจัยเสริมที่ไม่ใส่ก็ได้ ถ้าไม่ใส่จะเริ่มต้นหาจากอักขระแรกทางซ้ายมือ 

โดยทั่วไป ฟังก์ชัน SEARCH จะเหมือนกับฟังก์ชัน FIND แต่มีคุณลักษณะบางประการที่แตกต่างออกไป

Find – Search – แตกต่างกันอย่างไร?

ตัวพิมพ์เล็กใหญ่ไม่มีความหมาย

ในขณะที่ ฟังก์ชัน Find จะถือว่า ตัวพิมพ์เล็ก กับ ตัวพิมพ์ใหญ่ คือ คนละตัวกัน (เช่น H ไม่ใช่ h) แต่ฟังก์ชัน Search จะถือว่า ตัวพิมพ์เล็ก กับ ตัวพิมพ์ใหญ่ จะเป็นตัวเดียวกัน (เช่น H คือ h)

ยกตัวอย่างแบบที่เคยใช้ในฟังก์ชัน Find ดังนี้

ในเซลล์ A1 ใส่ข้อความว่า Life Is What Happens When You’re Busy Making Other Plans แล้วเราต้องการหาว่า ตัวอักษร H โดยเขียนสูตรใช้ฟังก์ชัน SEARCH ดังนี้

=SEARCH("H",A1)

นั่นคือ การหา ตัว H ใน A1 ซึ่งก็คือ การหาตัว H จากประโยค Life Is What Happens When You’re Busy Making Other Plans

Find - Search

ซึ่งจะให้ผลลัพธ์เป็น 10 เพราะตัว H แรกที่พบ คือ ตัว h จาก What แต่ถ้าเปลี่ยนเป็นฟังก์ชัน Find จะกลายเป้น 14 เพราะจะแสดงตำแหน่งของตัว H แบบเฉพาะเจาะจง

ตรงนี้จะเป็นความแตกต่างที่ชัดเจนที่สุด ระหว่างฟังก์ชัน Find กับ SEARCH นั่นคือสำหรับภาษาอังกฤษ ถ้าใช้ฟังก์ชัน find ตัวอักษรพิมพ์ใหญ่ พิมพ์เล็ก จะถือว่าเป็นคนละตัวกัน ในตัวอย่าง Life Is What Happens When You’re Busy Making Other Plans เราให้หา H ถึงแม้จะมีตัว h จาก What อยู่ก่อน H จาก Happens จะไม่แสดงผลค่า h 

แต่เมื่อใช้ฟังก์ชัน SEARCH ผลลัพธ์จะเป็น 10 เพราะถึงเราจะให้หา H (ตัวพิมพ์ใหญ่) แต่ SEARCH จะแสดงผลที่ตำแหน่งของ h 

WILDCARD

การใช้ฟังก์ชัน find จะไม่สามารถใช้ตัว wildcard เช่น * แต่ใน Search จะใช้ wildcard ในการค้นหาได้ ยกตัวอย่างเช่น

SEARCH(“en”,A1)

จะได้ผลลัพธ์เป็น 18 คือ แสดงผลตำแหน่งของ e ที่คำว่า Heppens

แต่ถ้าเราใส่ * ไว้ด้านหน้า en 

SEARCH("*en",A1)

จะได้ผลลัพธ์เป็น 1 เพราะ en แรกที่พบ จากคำว่า Heppens แต่ วรรค หรือ space ถือเป็น 1 อักขระ การเว้นวรรค จึงไม่มีความหมาย ผลลัพธ์จึงแสดงผลเป็นลำดับที่ 1 จากตัว L ของคำว่า Life 

ฟังก์ชันค้นหา

แต่ถ้าเขียนเป็น

=SEARCH("w*e",A1)

จะแสดงตำแหน่ง 9 ของ w ตัวแรกที่พบ คือ What ไม่ใช่ When ด้วยเหตุผลเดียวกับที่อธิบายข้างต้นว่า การแบ่งวรรค ไม่ใช่การแบ่งคำใน Search 

ความคิดเห็น