ฟังก์ชัน Excel FIND และ SEARCH พร้อมตัวอย่างสูตร

  • แบ่งปันสิ่งนี้
Michael Brown

บทช่วยสอนอธิบายไวยากรณ์ของฟังก์ชัน Excel FIND และ SEARCH และแสดงตัวอย่างสูตรของการใช้ขั้นสูงที่ไม่สำคัญ

ในบทความที่แล้ว เราได้กล่าวถึงพื้นฐานของ Excel ค้นหาและแทนที่กล่องโต้ตอบ อย่างไรก็ตาม ในหลาย ๆ สถานการณ์ คุณอาจต้องการให้ Excel ค้นหาและดึงข้อมูลจากเซลล์อื่นโดยอัตโนมัติตามเกณฑ์ของคุณ มาดูกันดีกว่าว่าฟังก์ชันการค้นหาของ Excel มีอะไรบ้าง

    ฟังก์ชัน FIND ของ Excel

    ฟังก์ชัน FIND ใน Excel ใช้เพื่อส่งคืนตำแหน่งของ อักขระหรือสตริงย่อยเฉพาะภายในสตริงข้อความ

    ไวยากรณ์ของฟังก์ชัน Excel Find เป็นดังนี้:

    FIND(find_text, within_text, [start_num])

    จำเป็นต้องมีอาร์กิวเมนต์ 2 ตัวแรก อันสุดท้ายเป็นตัวเลือก

    • Find_text - อักขระหรือสตริงย่อยที่คุณต้องการค้นหา
    • Within_text - สตริงข้อความที่จะ ถูกค้นหาภายใน. โดยปกติจะระบุเป็นการอ้างอิงเซลล์ แต่คุณสามารถพิมพ์สตริงโดยตรงในสูตรได้เช่นกัน
    • Start_num - อาร์กิวเมนต์ทางเลือกที่ระบุว่าอักขระใดที่การค้นหาจะเริ่มต้น หากละเว้น การค้นหาจะเริ่มต้นจากอักขระตัวที่ 1 ของสตริง within_text

    หากฟังก์ชัน FIND ไม่พบอักขระ find_text แสดงว่า #VALUE! ข้อผิดพลาดจะถูกส่งกลับ

    ตัวอย่างเช่น สูตร =FIND("d", "find") ส่งกลับ 4 เนื่องจาก "d" เป็นตัวอักษรตัวที่ 4 ในคำว่า " find " สูตร =FIND("a", "find") อีกครั้ง ส่วนที่ซับซ้อนที่สุดคืออาร์กิวเมนต์สุดท้ายที่บอกสูตรว่าจะส่งคืนอักขระกี่ตัว นิพจน์ที่ค่อนข้างยาวในอาร์กิวเมนต์ num_chars ทำสิ่งต่อไปนี้:

    • ก่อนอื่น คุณจะพบตำแหน่งของวงเล็บปิด: SEARCH(")",A2)
    • หลังจากนั้น คุณจะพบตำแหน่งของวงเล็บเปิด: SEARCH("(",A2)
    • จากนั้น คุณคำนวณความแตกต่างระหว่างตำแหน่งของวงเล็บปิดและเปิด และลบ 1 ออกจากตัวเลขนั้น เนื่องจากคุณไม่ต้องการให้วงเล็บทั้งสองอยู่ในผลลัพธ์: SEARCH(")",A2)-SEARCH("(",A2))-1

    โดยธรรมชาติแล้ว ไม่มีอะไรขัดขวางไม่ให้คุณใช้ฟังก์ชัน Excel FIND แทน SEARCH เนื่องจากการคำนึงถึงขนาดตัวพิมพ์และตัวพิมพ์เล็กไม่ได้สร้างความแตกต่างในตัวอย่างนี้

    หวังว่า บทช่วยสอนได้ให้ความกระจ่างเกี่ยวกับวิธีใช้ฟังก์ชัน SEARCH และ FIND ใน Excel ในบทช่วยสอนถัดไป เราจะตรวจสอบฟังก์ชัน REPLACE อย่างละเอียด ดังนั้นโปรดคอยติดตาม ขอบคุณที่อ่าน!

    ดาวน์โหลดแบบฝึกหัด

    ค้นหาและค้นหาตัวอย่างสูตร

    ส่งกลับข้อผิดพลาดเนื่องจากไม่มี "a" ใน " find"

    ฟังก์ชัน Excel FIND - สิ่งที่ต้องจำ!

    หากต้องการใช้สูตร FIND ใน Excel อย่างถูกต้อง โปรดคำนึงถึงข้อเท็จจริงง่ายๆ ต่อไปนี้:

    1. ฟังก์ชัน FIND เป็น ตรงตามตัวพิมพ์เล็กและใหญ่ หากคุณกำลังมองหาการจับคู่ที่ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ ให้ใช้ฟังก์ชัน SEARCH
    2. ฟังก์ชัน FIND ใน Excel ไม่อนุญาตให้ใช้ อักขระตัวแทน
    3. หากอาร์กิวเมนต์ find_text มีอักขระหลายตัว ฟังก์ชัน FIND จะส่งคืนตำแหน่งของ อักขระตัวแรก ตัวอย่างเช่น สูตร FIND("ap","happy") คืนค่า 2 เนื่องจาก "a" ในตัวอักษรตัวที่ 2 ของคำว่า "happy"
    4. หาก within_text มี เหตุการณ์หลายครั้ง จาก find_text การเกิดขึ้นครั้งแรกจะถูกส่งกลับ ตัวอย่างเช่น FIND("l", "hello") ส่งกลับ 3 ซึ่งเป็นตำแหน่งของอักขระ "l" ตัวแรกในคำว่า "hello"
    5. หาก find_text เป็น สตริงว่าง "" สูตร Excel FIND จะส่งกลับอักขระตัวแรกในสตริงการค้นหา
    6. ฟังก์ชัน Excel FIND จะส่งกลับ #VALUE! ข้อผิดพลาด ถ้าเกิดสิ่งใดสิ่งหนึ่งต่อไปนี้:
      • ไม่มี Find_text ใน within_text
      • Start_num มีอักขระมากกว่า within_text
      • Start_num คือ 0 (ศูนย์) หรือ จำนวนลบ

    ฟังก์ชัน SEARCH ใน Excel คล้ายกับ FIND มาก โดยจะส่งกลับตำแหน่งของสตริงย่อยใน ข้อความสตริง ไวยากรณ์และอาร์กิวเมนต์คล้ายกับ FIND:

    SEARCH(find_text, within_text, [start_num])

    ไม่เหมือนกับ FIND ฟังก์ชัน SEARCH คือ ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ และอนุญาตให้ใช้อักขระตัวแทน ดังที่แสดงในตัวอย่างต่อไปนี้

    และต่อไปนี้เป็นสูตรพื้นฐานของ Excel SEARCH:

    =SEARCH("market", "supermarket") ส่งกลับ 6 เนื่องจากสตริงย่อย "market" เริ่มต้นที่อักขระตัวที่ 6 ของคำว่า "supermarket" .

    =SEARCH("e", "Excel") ส่งคืน 1 เนื่องจาก "e" เป็นอักขระตัวแรกในคำว่า "Excel" โดยไม่สนใจตัวพิมพ์เล็กและใหญ่

    เช่นเดียวกับ FIND ฟังก์ชัน SEARCH ของ Excel จะส่งกลับ #VALUE! ข้อผิดพลาดถ้า:

    • ไม่พบค่าของอาร์กิวเมนต์ find_text
    • อาร์กิวเมนต์ start_num มากกว่าความยาวของ within_text
    • Start_num เท่ากับ หรือ น้อยกว่าศูนย์

    เพิ่มเติมในบทช่วยสอนนี้ คุณจะพบตัวอย่างสูตรที่มีความหมายเพิ่มเติมสองสามตัวอย่างที่แสดงวิธีใช้ฟังก์ชัน SEARCH ในแผ่นงาน Excel

    ตามที่ได้กล่าวไปแล้ว ฟังก์ชัน FIND และ SEARCH ใน Excel นั้นเหมือนกันมากในแง่ของไวยากรณ์และการใช้งาน อย่างไรก็ตาม มีความแตกต่างอยู่สองประการ

    1. FIND คำนึงถึงตัวพิมพ์เล็กและใหญ่เทียบกับ SEARCH ที่ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่

    ความแตกต่างที่สำคัญที่สุดระหว่างฟังก์ชัน Excel SEARCH และ FIND คือ SEARCH นั้นคำนึงถึงตัวพิมพ์เล็กและใหญ่ ในขณะที่ FIND นั้นคำนึงถึงตัวพิมพ์เล็กและใหญ่

    ตัวอย่างเช่น , SEARCH("e", "Excel") คืนค่า 1 เนื่องจากไม่สนใจกรณีของ "E" ในขณะที่ FIND("e", "Excel") คืนค่า 4 เนื่องจากคำนึงถึงกรณีนี้

    2. ค้นหาด้วยอักขระตัวแทน

    ไม่เหมือนกับ FIND ฟังก์ชัน Excel SEARCH ยอมรับอักขระตัวแทนในอาร์กิวเมนต์ find_text:

    • เครื่องหมายคำถาม (?) ตรงกับหนึ่งอักขระ และ
    • เครื่องหมายดอกจัน (*) ตรงกับชุดอักขระใดก็ได้

    หากต้องการดูวิธีการทำงานบนข้อมูลจริง ให้พิจารณาตัวอย่างต่อไปนี้:

    ตามที่คุณเห็นในภาพหน้าจอด้านบน สูตร SEARCH("function*2013", A2) ส่งคืนตำแหน่งของอักขระตัวแรก ("f") ในสตริงย่อย หากสตริงข้อความที่อ้างถึงในอาร์กิวเมนต์ within_text มีทั้ง "ฟังก์ชัน" และ "2013" ไม่ว่าจะมีอักขระอื่นอีกกี่ตัวก็ตาม

    เคล็ดลับ หากต้องการค้นหาเครื่องหมายคำถาม (?) หรือดอกจัน (*) ให้พิมพ์เครื่องหมายตัวหนอน (~) ก่อนอักขระที่เกี่ยวข้อง

    ในทางปฏิบัติ ฟังก์ชัน Excel FIND และ SEARCH มักไม่ค่อยได้ใช้ด้วยตัวเอง โดยทั่วไป คุณจะใช้ร่วมกับฟังก์ชันอื่นๆ เช่น MID, LEFT หรือ RIGHT และตัวอย่างสูตรต่อไปนี้แสดงให้เห็นถึงการใช้งานในชีวิตจริง

    ตัวอย่าง 1. ค้นหาสตริงที่นำหน้าหรือตามหลังอักขระที่กำหนด

    ตัวอย่างนี้แสดงวิธีที่คุณสามารถค้นหาและแยกอักขระทั้งหมดในสตริงข้อความทางด้านซ้ายหรือด้านขวาของอักขระที่ต้องการ เพื่อให้เข้าใจง่ายขึ้น ลองพิจารณาตัวอย่างต่อไปนี้

    สมมติว่าคุณมีคอลัมน์ชื่อ (คอลัมน์ A) และคุณต้องการดึงชื่อและนามสกุลลงในคอลัมน์แยกกัน

    ในการรับชื่อ คุณสามารถใช้ FIND (หรือ SEARCH) ร่วมกับฟังก์ชัน LEFT:

    =LEFT(A2, FIND(" ", A2)-1)

    หรือ

    =LEFT(A2, SEARCH(" ", A2)-1)

    อย่างที่คุณทราบ ฟังก์ชัน Excel LEFT จะส่งกลับ จำนวนอักขระซ้ายสุดที่ระบุในสตริง และคุณใช้ฟังก์ชัน FIND เพื่อกำหนดตำแหน่งของช่องว่าง (" ") เพื่อให้ฟังก์ชัน LEFT รู้ว่าต้องแยกอักขระกี่ตัว ในตอนนั้น คุณจะลบ 1 ออกจากตำแหน่งของช่องว่าง เนื่องจากคุณไม่ต้องการให้ค่าที่ส่งคืนรวมช่องว่างด้วย

    ในการแยกนามสกุล ให้ใช้ฟังก์ชัน RIGHT, FIND / SEARCH และ LEN ร่วมกัน จำเป็นต้องใช้ฟังก์ชัน LEN เพื่อรับจำนวนอักขระทั้งหมดในสตริง ซึ่งคุณจะต้องลบตำแหน่งของช่องว่าง:

    =RIGHT(A2,LEN(A2)-FIND(" ",A2))

    หรือ

    =RIGHT(A2,LEN(A2)-SEARCH(" ",A2))

    ภาพหน้าจอต่อไปนี้แสดงผล:

    สำหรับสถานการณ์ที่ซับซ้อนมากขึ้น เช่น การแยกชื่อกลางหรือการแยกชื่อด้วยคำต่อท้าย โปรดดูวิธีแยกเซลล์ใน Excel โดยใช้สูตร

    ตัวอย่างที่ 2. ค้นหา Nth ของอักขระที่กำหนดในสตริงข้อความ

    สมมติว่าคุณมีสตริงข้อความในคอลัมน์ A พูดรายการ SKU และคุณต้องการค้นหา ตำแหน่งของเส้นประ ที่ 2 ในสตริง สูตรต่อไปนี้ใช้ได้ผลดี:

    =FIND("-", A2, FIND("-",A2)+1)

    สองรายการแรกอาร์กิวเมนต์ง่ายต่อการตีความ: ค้นหาเส้นประ ("-") ในเซลล์ A2 ในอาร์กิวเมนต์ที่สาม (start_num) คุณฝังฟังก์ชัน FIND อื่นที่บอกให้ Excel เริ่มค้นหาโดยเริ่มจากอักขระที่อยู่หลังเครื่องหมายขีดแรก (FIND("-",A2)+1)

    หากต้องการส่งคืนตำแหน่งของ เหตุการณ์ครั้งที่ 3 ให้ฝังสูตรข้างต้นในอาร์กิวเมนต์ start_num ของฟังก์ชัน FIND อื่น และเพิ่ม 2 ให้กับค่าที่ส่งคืน:

    =FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2)

    อีกวิธีหนึ่งที่น่าจะง่ายกว่าในการค้นหาอักขระตัวที่ N ที่ปรากฏขึ้นคือการใช้ฟังก์ชัน Excel FIND ร่วมกับ CHAR และ SUBSTITUTE:

    =FIND(CHAR(1),SUBSTITUTE(A2,"-",CHAR(1),3))

    โดยที่ "-" คืออักขระที่เป็นปัญหา และ "3" คือการเกิดครั้งที่ N ที่คุณต้องการค้นหา

    ในสูตรข้างต้น ฟังก์ชัน SUBSTITUTE จะแทนที่การเกิดขึ้นครั้งที่ 3 ของเส้นประ ("-") ด้วย CHAR( 1) ซึ่งเป็นอักขระ "Start of Heading" ที่ไม่สามารถพิมพ์ได้ในระบบ ASCII แทนที่จะใช้ CHAR(1) คุณสามารถใช้อักขระอื่นๆ ที่ไม่สามารถพิมพ์ได้ตั้งแต่ 1 ถึง 31 จากนั้น ฟังก์ชัน FIND จะส่งคืนตำแหน่งของอักขระนั้นในสตริงข้อความ ดังนั้น สูตรทั่วไปจะเป็นดังนี้:

    FIND(CHAR(1),SUBSTITUTE( cell , character ,CHAR(1), Nthที่เกิดขึ้น ))

    เมื่อแรกเห็น อาจดูเหมือนว่าสูตรด้านบนมีประโยชน์น้อย แต่ตัวอย่างถัดไปจะแสดงให้เห็นว่าสูตรเหล่านี้มีประโยชน์มากเพียงใดในการแก้ปัญหาจริง

    หมายเหตุ โปรดจำไว้ว่า Excel FINDฟังก์ชันคำนึงถึงขนาดตัวพิมพ์ ในตัวอย่างของเรา สิ่งนี้ไม่ได้สร้างความแตกต่าง แต่ถ้าคุณกำลังทำงานกับตัวอักษรและต้องการจับคู่ ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ ให้ใช้ฟังก์ชัน SEARCH แทน FIND

    ตัวอย่างที่ 3 แยกอักขระ N ตัวตามหลังอักขระบางตัว

    หากต้องการค้นหาสตริงย่อยของความยาวที่กำหนดภายในสตริงข้อความใดๆ ให้ใช้ Excel FIND หรือ Excel SEARCH ร่วมกับฟังก์ชัน MID ตัวอย่างต่อไปนี้สาธิตวิธีการใช้สูตรดังกล่าวในทางปฏิบัติ

    ในรายการ SKU ของเรา สมมติว่าคุณต้องการค้นหาอักขระ 3 ตัวแรกตามหลังเครื่องหมายขีดแรก และดึงอักขระเหล่านั้นในคอลัมน์อื่น

    หากกลุ่มอักขระก่อนหน้าขีดแรกมีจำนวนรายการเท่ากันเสมอ (เช่น 2 ตัวอักษร) นี่อาจเป็นงานเล็กน้อย คุณสามารถใช้ฟังก์ชัน MID เพื่อส่งคืนอักขระ 3 ตัวจากสตริง โดยเริ่มต้นที่ตำแหน่ง 4 (ข้ามอักขระ 2 ตัวแรกและขีดคั่น):

    =MID(A2, 4, 3)

    แปลเป็นภาษาอังกฤษ สูตรระบุว่า: "ดูในเซลล์ A2 เริ่มแยกจากอักขระ 4 และส่งคืนอักขระ 3 ตัว"

    อย่างไรก็ตาม ในเวิร์กชีตในชีวิตจริง สตริงย่อยที่คุณต้องการแยกสามารถเริ่มต้นได้ทุกที่ ภายในสตริงข้อความ ในตัวอย่างของเรา คุณอาจไม่ทราบว่ามีอักขระกี่ตัวที่อยู่ข้างหน้าเครื่องหมายขีดแรก เพื่อรับมือกับความท้าทายนี้ ให้ใช้ฟังก์ชัน FIND เพื่อกำหนดจุดเริ่มต้นของสตริงย่อยที่คุณต้องการดึงข้อมูล

    สูตร FIND เพื่อส่งคืนค่าตำแหน่งของเส้นประที่ 1 เป็นดังนี้:

    =FIND("-",A2)

    เนื่องจากคุณต้องการเริ่มต้นด้วยอักขระที่อยู่หลังเส้นประ ให้เพิ่ม 1 ให้กับค่าที่ส่งคืนและฝังฟังก์ชันด้านบนในอาร์กิวเมนต์ที่สอง (start_num) ของฟังก์ชัน MID:

    =MID(A2, FIND("-",A2)+1, 3)

    ในสถานการณ์นี้ ฟังก์ชัน Excel SEARCH ทำงานได้ดีเท่าๆ กัน:

    =MID(A2, SEARCH("-",A2)+1, 3)

    ดีมาก แต่จะเป็นอย่างไรหากกลุ่มตัวอักษรที่ต่อจากขีดแรกมีจำนวนอักขระต่างกัน อืม... นี่อาจเป็นปัญหา:

    ตามที่คุณเห็นในภาพหน้าจอด้านบน สูตรนี้ทำงานได้อย่างสมบูรณ์แบบสำหรับแถวที่ 1 และ 2 ในแถวที่ 4 และ 5 กลุ่มที่สองมีอักขระ 4 ตัว แต่จะส่งกลับเฉพาะอักขระ 3 ตัวแรกเท่านั้น ในแถวที่ 6 และ 7 มีเพียง 2 อักขระในกลุ่มที่สอง ดังนั้นสูตร Excel Search ของเราจึงแสดงเครื่องหมายขีดตามหลังอักขระเหล่านี้

    ถ้าคุณต้องการส่งคืน อักขระทั้งหมดระหว่างเหตุการณ์ที่ 1 และ 2 ของอักขระบางตัว (ขีดกลางในตัวอย่างนี้) คุณจะดำเนินการอย่างไร นี่คือคำตอบ:

    =MID(A2, FIND("-",A2)+1, FIND("-", A2, FIND("-",A2)+1) - FIND("-",A2)-1)

    เพื่อความเข้าใจที่ดีขึ้นเกี่ยวกับสูตร MID นี้ เรามาตรวจสอบอาร์กิวเมนต์ทีละข้อกัน:

    • อาร์กิวเมนต์ที่ 1 (ข้อความ) เป็นสตริงข้อความที่มีอักขระที่คุณต้องการแยก เซลล์ A2 ในตัวอย่างนี้
    • อาร์กิวเมนต์ที่ 2 (start_position) ระบุตำแหน่งของอักขระตัวแรกที่คุณต้องการแยก คุณใช้ฟังก์ชัน FIND เพื่อค้นหาขีดแรกในสตริงและเพิ่ม 1 เข้าไปค่านั้นเนื่องจากคุณต้องการเริ่มต้นด้วยอักขระที่อยู่หลังเส้นประ: FIND("-",A2)+1.
    • อาร์กิวเมนต์ที่ 3 (num_chars) ระบุจำนวนอักขระที่คุณต้องการส่งคืน ในสูตรของเรา นี่เป็นส่วนที่ยากที่สุด คุณใช้ฟังก์ชัน FIND (หรือ SEARCH) สองฟังก์ชัน ฟังก์ชันหนึ่งกำหนดตำแหน่งของเส้นประแรก: FIND("-",A2) และอีกอันส่งคืนตำแหน่งของเส้นประที่สอง: FIND("-", A2, FIND("-",A2)+1) จากนั้นคุณก็ลบอันแรกออกจากอันหลัง แล้วลบ 1 เพราะคุณไม่ต้องการใส่เส้นประอย่างใดอย่างหนึ่ง ผลลัพธ์ที่ได้คือจำนวนอักขระระหว่างขีดกลางที่ 1 และ 2 ซึ่งเป็นสิ่งที่เรากำลังมองหา ดังนั้น คุณป้อนค่านั้นให้กับอาร์กิวเมนต์ num_chars ของฟังก์ชัน MID

    ในทำนองเดียวกัน คุณสามารถส่งคืนอักขระ 3 ตัวหลังเครื่องหมายขีดกลางที่ 2:

    =MID(A2, FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2), 3)

    หรือแยกอักขระทั้งหมดระหว่างขีดกลางที่ 2 และ 3:

    =MID(A2, FIND("-", A2, FIND("-",A2)+1)+1, FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2) - FIND("-", A2, FIND("-",A2)+1)-1)

    ตัวอย่างที่ 4 ค้นหาข้อความระหว่างวงเล็บ

    สมมติว่าคุณมีสตริงข้อความยาวในคอลัมน์ A และต้องการค้นหาและแยกเฉพาะข้อความที่อยู่ใน (วงเล็บ)

    ในการทำเช่นนี้ คุณจะต้องใช้ฟังก์ชัน MID เพื่อส่งกลับจำนวนอักขระที่ต้องการจาก สตริง และฟังก์ชัน Excel FIND หรือ SEARCH เพื่อกำหนดตำแหน่งที่จะเริ่มต้นและจำนวนอักขระที่จะแยก

    =MID(A2,SEARCH("(",A2)+1, SEARCH(")",A2)-SEARCH("(",A2)-1)

    ตรรกะของสูตรนี้คล้ายกับที่เรากล่าวถึงในก่อนหน้านี้ ตัวอย่าง. และ

    Michael Brown เป็นผู้ที่ชื่นชอบเทคโนโลยีโดยเฉพาะและมีความหลงใหลในการทำให้กระบวนการที่ซับซ้อนง่ายขึ้นโดยใช้เครื่องมือซอฟต์แวร์ ด้วยประสบการณ์กว่าทศวรรษในอุตสาหกรรมเทคโนโลยี เขาได้ฝึกฝนทักษะของเขาใน Microsoft Excel และ Outlook รวมถึง Google ชีตและเอกสาร บล็อกของ Michael ทุ่มเทให้กับการแบ่งปันความรู้และความเชี่ยวชาญของเขากับผู้อื่น โดยให้คำแนะนำและแบบฝึกหัดที่ทำตามได้ง่ายเพื่อปรับปรุงผลิตภาพและประสิทธิภาพ ไม่ว่าคุณจะเป็นมืออาชีพที่ช่ำชองหรือมือใหม่ บล็อกของ Michael นำเสนอข้อมูลเชิงลึกอันมีค่าและคำแนะนำที่เป็นประโยชน์สำหรับการใช้ประโยชน์สูงสุดจากเครื่องมือซอฟต์แวร์ที่จำเป็นเหล่านี้