FIND VS SEARCH เทียบกันจุดต่อจุด ว่าฟังก์ชันที่ใช้สำหรับ “ค้นหา” เหมือนกันใน Excel เอาเข้าจริงมันก็มีอะไรแตกต่างกันอยู่นะ ถึงแม้ว่าจะเหมือนกันมากเอาการ
FIND
รูปแบบการเขียนสูตรง่าย ๆ ดังนี้
FIND (find_text, within_text, [start_num])
find_text คือ สิ่งที่ต้องการหา (ถ้าเป็นภาษาอังกฤษ ตัวพิมพ์เล็ก ตัวพิมพ์ใหญ่จะถือเป็นคนละตัว)
within_text คือให้หาข้อความนั้นจากไหน
[Start_num] คือตำแหน่งเริ่มต้น ตำแหน่งที่เท่าไหร่ ตรงนี้ใส่ [ ] ให้เห็นว่ามันเป็น option เสริม คือ ไม่มีก็ได้ ถ้าปล่อยว่างไว้ไม่ใส่ จะถือว่า ให้เริ่มจากอักขระตัวแรกทางซ้ายมือ
เช่น ในเซลล์ A1 เราใส่ประโยคว่า DataRevol.com do or do not, there is no try แล้วเราต้องการหาว่า ตัวอักษร d อยู่ในลำดับที่เท่าไหร่ เราใส่สูตรว่า
=FIND(“d”,A1)
นั่นคือ การหา ตัว d ใน A1 ซึ่งจะให้ผลลัพธ์เป็น 15 คือตัว d ตัวแรกที่พบ
แต่ถ้าเราเปลี่ยนเป็น
=FIND(“d”,A1,16)
นั่นคือ ให้ค้นหา d ใน A1 โดยเริ่มจากอักขระที่ 16 จะได้ผลลัพธ์เป็น 21 นั่นคือจะข้ามตัว d แรก ไป ก็จะได้ผลลัพธ์จากตัว d ตัวแรก ที่ไม่อยู่ใน 15 อักขระแรก นั่นก็คือ 21
ลองอีกครั้ง เราลองให้เริ่มหาที่ 22
=FIND(“d”,A1,22)
ให้ค้นหา d ใน A1 โดยเริ่มจากอักขระที่ 22 จะได้ผลลัพธ์เป็น #VALUE! นั่นคือไม่พบสิ่งที่ให้ค้นหา เพราะตัว d ในข้อความที่อยู่ A1 นั้นมี d เพียง 2 ตัว ในลำดับที่ 15 กับ 21 ถ้าให้หาจากลำดับที่ 22 เป็นต้นไป จะไม่พบ
TIP ถ้าผลลัพธ์ออกมาเป็น #VALUE! มีความเป็นไปได้อยู่ไม่กี่อย่าง คือ ใน within_text ที่ต้องการให้ค้นหานั้น ไม่มี find_text อยู่เลย หรือ Start_num เป็น ศูนย์ หรือ ติดลบ หรือไม่งั้นก็ใส่ตัวเลขมากกว่าจำนวนอักขระใน within_text
SEARCH
รูปแบบการเขียนสูตร จะคล้ายกับ FIND คือ
SEARCH (find_text, within_text, [start_num])
find_text คือ สิ่งที่ต้องการหา
within_text คือให้หาข้อความนั้นจากไหน
[Start_num] คือตำแหน่งเริ่มต้น ตำแหน่งที่เท่าไหร่ ตรงนี้ใส่ [ ] ให้เห็นว่ามันเป็น option เสริม คือ ไม่มีก็ได้ ถ้าปล่อยว่างไว้ไม่ใส่ จะถือว่า ให้เริ่มจากอักขระตัวแรกทางซ้ายมือ
เหมือนเดิม มาลองให้เห็นกันชัด ๆ ถ้าเราจะค้นหาจากคำว่า DataRevol.com do or do not, there is no try แบบเดียวกับฟังก์ชัน FIND แต่เปลี่ยนเป็น SEARCH ทั้งสามตัวอย่างที่ยกมาเหมือนกันหมด
=SEARCH(“d”,A1)
ค้นหา d ใน A1 ผลลัพธ์กลับกลายเป็น 1 ไม่ใช่ 15 อย่างเช่นการใช้ FIND!!! แต่ผลลัพธ์อื่น ไม่ต่างกัน สาเหตุก็คือ ใน SEARCH นั้น ตัว พิมพ์เล็ก พิมพ์ใหญ่ ไม่แตกต่างกัน ดังนั้นเมื่อมันเจอ D ในตำแหน่งแรก ก็ส่งผลลัพธ์กลับมาเลยว่า เจอ D ในตำแหน่งที่ 1 นะ ถึงแม้ว่าเราจะให้ค้นหา d ก็ตาม
TIP: สำหรับ find_text หรือ สิ่งที่ต้องการค้นหา ไม่จำเป็นต้องเป็นตัวอักขระเพียงตัวเดียว เราอาจจะใช้คำอะไรสักคำ เป็นตัวค้นหาก็ได้ ทั้ง FIND และ SEARCH โดยผลลัพธ์ที่จะแสดง จะเป็นตำแหน่งของอักขระตัวแรกของคำนั้นที่เจอ
อย่างเช่น DataRevol.com REVOLUTION is NOW ถ้าเราค้นหาคำว่า RE โดยใช้ฟังก์ชัน FIND จะส่งผลลัพธ์เป็น 15 นั่นคือตำแหน่งของตัว R ในคำว่า REVOLUTION แต่ถ้าเป็นฟังก์ชัน SEARCH จะได้ผลลัพธ์เป็น 5 คือตำแหน่งของตัว R ในคำว่า DataRevol
FIND VS SEARCH
ดังนั้น เรารู้แล้วว่า FIND กับ SEARCH มันต่างกัน FIND จะเป็นการค้นหาแบบเฉพาะเจาะจง ต้องเหมือนเป๊ะแบบที่พากย์อังกฤษกำกับว่า case sensitive นั่นคือ ตัว d ก็คือตัว d ในขณะที่ SEARCH นั้น เป็นแบบไม่ต้องเป๊ะก็ได้ (case-insensitive) นั่นคือ ถ้าเจอตัว D ซึ่งเป็นพิมพ์ใหญ่ของ d มันก็เห็นว่าเป็นผลลัพธ์ที่ “ใช่” แล้ว
ดังนั้นต้องถามตัวเองเวลาเลือกใช้ฟังก์ชันว่า เราต้องการผลลัพธ์ที่ตรงเป๊ะเท่านั้นหรือไม่ FIND VS SEARCH แทบจะไม่ต่างกัน แต่ถ้าเราต้องการที่ต้องเหมือนกับที่เราค้นหาทุกประการ เราก็ต้องเลือก FIND เท่านั้น
และด้วยความที่ FIND ใช้อย่างเฉพาะเจาะจง ทำให้ไม่สามารถค้นหาโดยใช้ wildcard characters อย่างเช่น เราจะค้นหาคำว่า Re?o คือคำที่ขึ้นต้นด้วยว่า Reตามด้วยตัวอักษรอะไรก็ได้แล้วตามด้วย 0 อีกที ถ้าใช้ FIND จะขึ้น #VALUE! เพราะค้นหาคำว่า “Re?o” ไม่เจอ แต่ สำหรับ SEARCH จะมองว่า ? คือตัว wildcard และส่งผลลัพธ์แรกที่พบว่าเข้ากับที่กำหนด
อันนี้ก็เป็นตัวอย่างเล็ก ๆ น้อย ๆ เปรียบเทียบ FIND VS SEARCH เผื่อจะนำไปใช้งานให้เหมาะสม อย่างเช่น การใช้ควบคู่ไปกับฟังก์ชัน Left หรือ Right ในการ แยกข้อความ อย่างที่เคยเขียนถึงไปแล้ว
Discover more from Data Revol
Subscribe to get the latest posts sent to your email.