ฟังก์ชัน Excel MATCH พร้อมตัวอย่างสูตร

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

บทช่วยสอนนี้อธิบายวิธีใช้ฟังก์ชัน MATCH ใน Excel พร้อมตัวอย่างสูตร นอกจากนี้ยังแสดงวิธีการปรับปรุงสูตรการค้นหาของคุณด้วยการสร้างสูตรแบบไดนามิกด้วย VLOOKUP และ MATCH

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

    ฟังก์ชัน MATCH ของ Excel - ไวยากรณ์และการใช้งาน

    ฟังก์ชัน MATCH ใน Excel จะค้นหาค่าที่ระบุใน ช่วงของเซลล์ และส่งกลับตำแหน่งสัมพัทธ์ของค่านั้น

    ไวยากรณ์สำหรับฟังก์ชัน MATCH เป็นดังนี้:

    MATCH(lookup_value, lookup_array, [match_type])

    Lookup_value (จำเป็น) - ค่าที่คุณต้องการค้นหา โดยอาจเป็นตัวเลข ข้อความ หรือค่าตรรกะ ตลอดจนการอ้างอิงเซลล์

    Lookup_array (จำเป็น) - ช่วงของเซลล์ที่จะค้นหา

    Match_type (ไม่บังคับ) - กำหนดประเภทการจับคู่ สามารถเป็นหนึ่งในค่าเหล่านี้: 1, 0, -1 อาร์กิวเมนต์ match_type ที่ตั้งค่าเป็น 0 จะส่งกลับเฉพาะการจับคู่แบบตรงทั้งหมด ในขณะที่อีกสองประเภทอนุญาตให้มีการจับคู่โดยประมาณ

    • 1 หรือละเว้น (ค่าเริ่มต้น) - หา ค่าที่ใหญ่ที่สุด ใน อาร์เรย์การค้นหาที่น้อยกว่าหรือเท่ากับค่าการค้นหา ต้องการการเรียงลำดับอาร์เรย์การค้นหาจากน้อยไปหามากสมุดงานสำหรับดาวน์โหลด

      ตัวอย่างสูตร Excel MATCH (ไฟล์ .xlsx)

      จากน้อยไปมากหรือจาก A ถึง Z
    • 0 - ค้นหาค่าแรกในอาร์เรย์ที่ เท่ากับ กับค่าการค้นหา ไม่จำเป็นต้องเรียงลำดับ
    • -1 - ค้นหา ค่าที่น้อยที่สุด ในอาร์เรย์ที่มากกว่าหรือเท่ากับค่าการค้นหา อาร์เรย์การค้นหาควรเรียงลำดับจากมากไปหาน้อย หรือจาก Z ถึง A

    เพื่อให้เข้าใจฟังก์ชัน MATCH ได้ดีขึ้น เรามาสร้างสูตรง่ายๆ ตามข้อมูลนี้: ชื่อนักเรียนในคอลัมน์ A และคะแนนสอบในคอลัมน์ B เรียงจากมากไปน้อย หากต้องการทราบว่านักเรียนคนใดคนหนึ่ง (เช่น ลอร่า ) โดดเด่นกว่าใคร ให้ใช้สูตรง่ายๆ นี้:

    =MATCH("Laura", A2:A8, 0)

    หรือคุณสามารถใส่ค่าการค้นหาลงใน เซลล์ (E1 ในตัวอย่างนี้) และอ้างอิงเซลล์นั้นในสูตรการจับคู่ของ Excel:

    =MATCH(E1, A2:A8, 0)

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

    เคล็ดลับ ใน Excel 365 และ Excel 2021 คุณสามารถใช้ฟังก์ชัน XMATCH ซึ่งเป็นตัวตายตัวแทนที่ทันสมัยและมีประสิทธิภาพมากกว่าของ MATCH

    4 สิ่งที่คุณควรรู้เกี่ยวกับฟังก์ชัน MATCH

    อย่างที่คุณเพิ่งเห็น การใช้ MATCH ใน Excel เป็นเรื่องง่าย อย่างไรก็ตาม เช่นเดียวกับกรณีของฟังก์ชันอื่นๆ เกือบทั้งหมด มีความเฉพาะบางประการที่คุณควรทราบ:

    1. ฟังก์ชัน MATCH ส่งคืน ตำแหน่งสัมพัทธ์ ของค่าการค้นหา ในอาร์เรย์ ไม่ใช่ค่าของตัวมันเอง
    2. MATCH คือ ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ ซึ่งหมายความว่าจะไม่แยกความแตกต่างระหว่างตัวพิมพ์เล็กและตัวพิมพ์ใหญ่เมื่อจัดการกับค่าข้อความ
    3. หาก อาร์เรย์การค้นหาประกอบด้วยค่าการค้นหาหลายรายการ ตำแหน่งของค่าแรกจะถูกส่งกลับ
    4. หากไม่พบค่าการค้นหาในอาร์เรย์การค้นหา ระบบจะส่งกลับข้อผิดพลาด #N/A

    วิธีใช้ MATCH ใน Excel - ตัวอย่างสูตร

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

    จับคู่บางส่วนกับไวด์การ์ด

    เช่นเดียวกับฟังก์ชันอื่นๆ อีกมากมาย MATCH เข้าใจอักขระไวด์การ์ดต่อไปนี้:

    • เครื่องหมายคำถาม (?) - แทนที่อักขระเดี่ยว
    • เครื่องหมายดอกจัน (*) - แทนที่ s ใด ๆ ลำดับอักขระ

    หมายเหตุ ไวลด์การ์ดสามารถใช้ได้เฉพาะในสูตรการจับคู่โดยตั้งค่า match_type เป็น 0

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

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

    สมมติว่าผู้ค้าปลีกรายนั้น ชื่ออยู่ในช่วง A2:A11 และคุณกำลังค้นหาชื่อที่ขึ้นต้นด้วย "รถ" สูตรจะเป็นดังนี้:

    =MATCH("car*", A2:A11,0)

    เพื่อให้สูตร Match มีความหลากหลายมากขึ้น คุณสามารถพิมพ์ค่าการค้นหาในบางเซลล์ (E1 ในตัวอย่างนี้) และต่อเซลล์นั้นด้วยอักขระตัวแทน เช่น

    =MATCH(E1&"*", A2:A11,0)

    ดังที่แสดงในภาพหน้าจอด้านล่าง สูตร คืนค่า 2 ซึ่งเป็นตำแหน่งของ "Carter":

    หากต้องการแทนที่อักขระเพียงตัวเดียวในค่าการค้นหา ให้ใช้ "?" โอเปอเรเตอร์ไวลด์การ์ด เช่น

    =MATCH("ba?er", A2:A11,0)

    สูตรด้านบนจะตรงกับชื่อ " เบเกอร์ " และเรียกใช้ตำแหน่งสัมพัทธ์อีกครั้ง ซึ่งก็คือ 5

    สูตรการจับคู่ที่คำนึงถึงตัวพิมพ์เล็กและใหญ่

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

    นี่คือสูตรทั่วไปสำหรับการจับคู่ข้อมูล:

    MATCH(TRUE, EXACT( lookup array , lookup value ), 0)

    สูตรทำงานกับตรรกะต่อไปนี้:

    • ฟังก์ชัน EXACT จะเปรียบเทียบค่าการค้นหากับแต่ละองค์ประกอบของอาร์เรย์การค้นหา ถ้าเซลล์ที่เปรียบเทียบมีค่าเท่ากันทุกประการ ฟังก์ชันจะส่งกลับ TRUE หรือ FALSE มิฉะนั้น
    • จากนั้น ฟังก์ชัน MATCH จะเปรียบเทียบ TRUE (ซึ่งก็คือ lookup_value ) กับแต่ละค่าในอาร์เรย์ที่ส่งกลับโดย EXACT และส่งกลับตำแหน่งของการจับคู่แรก

    โปรดทราบว่าเป็นสูตรอาร์เรย์ที่ต้องกด Ctrl + Shift + Enter จึงจะเสร็จสมบูรณ์

    สมมติว่าคุณ ค่าการค้นหาอยู่ในเซลล์ E1 และอาร์เรย์การค้นหาคือ A2:A9 สูตรจะเป็นดังนี้:

    =MATCH(TRUE, EXACT(A2:A9,E1),0)

    ภาพหน้าจอต่อไปนี้แสดงสูตรการจับคู่ที่คำนึงถึงตัวพิมพ์เล็กและใหญ่ใน Excel:

    เปรียบเทียบ 2 คอลัมน์สำหรับรายการที่ตรงกันและความแตกต่าง (ISNA MATCH)

    การตรวจสอบสองรายการสำหรับรายการที่ตรงกันและความแตกต่างเป็นหนึ่งในงานทั่วไปใน Excel และสามารถทำได้ ทำได้หลายวิธี สูตร ISNA/MATCH เป็นหนึ่งในนั้น:

    IF(ISNA(MATCH( 1st value in List1 , List2 , 0)), "Not in List 1", " ")

    สำหรับค่าใดๆ ของรายการที่ 2 ที่ไม่มีอยู่ในรายการที่ 1 สูตรจะส่งกลับ " ไม่อยู่ในรายการที่ 1 " และนี่คือวิธี:

    • ฟังก์ชัน MATCH ค้นหาค่าจากรายการที่ 1 ภายในรายการที่ 2 หากพบค่าใด ค่าหนึ่งจะส่งกลับตำแหน่งสัมพัทธ์ ข้อผิดพลาด #N/Aมิฉะนั้น
    • ฟังก์ชัน ISNA ใน Excel ทำเพียงสิ่งเดียวเท่านั้น - ตรวจสอบข้อผิดพลาด #N/A (หมายถึง "ไม่พร้อมใช้งาน") ถ้าค่าที่กำหนดเป็นข้อผิดพลาด #N/A ฟังก์ชันจะส่งกลับ TRUE มิฉะนั้น FALSE ในกรณีของเรา TRUE หมายความว่าไม่พบค่าจากรายการที่ 1 ภายในรายการที่ 2 (เช่น ข้อผิดพลาด #N/A จะถูกส่งกลับโดย MATCH)
    • เนื่องจากผู้ใช้ของคุณอาจสับสนอย่างมากในการเห็นค่า TRUE สำหรับค่าที่ไม่ปรากฏในรายการที่ 1 ให้คุณล้อมฟังก์ชัน IF รอบ ISNA เพื่อแสดง " ไม่อยู่ในรายการที่ 1 " แทน หรือข้อความใดก็ได้ที่คุณต้องการ

    ตัวอย่างเช่น เมื่อต้องการเปรียบเทียบค่าในคอลัมน์ B กับค่าในคอลัมน์ A สูตรจะใช้รูปร่างต่อไปนี้ (โดยที่ B2 เป็นเซลล์บนสุด):

    =IF(ISNA(MATCH(B2,A:A,0)), "Not in List 1", "")

    ตามที่คุณจำได้ ฟังก์ชัน MATCH ใน Excel ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ด้วยตัวมันเอง เพื่อให้แยกแยะตัวพิมพ์เล็กและใหญ่ ให้ฝังฟังก์ชัน EXACT ในอาร์กิวเมนต์ lookup_array และอย่าลืมกด Ctrl + Shift + Enter เพื่อเติม สูตรอาร์เรย์ :

    =IF(ISNA(MATCH(TRUE, EXACT(A:A, B2),0)), "Not in List 1", "")

    ภาพหน้าจอต่อไปนี้แสดงทั้งสองสูตรที่ใช้งานจริง:

    หากต้องการเรียนรู้วิธีอื่นๆ ในการเปรียบเทียบสองรายการใน Excel โปรดดูบทช่วยสอนต่อไปนี้: อย่างไร เพื่อเปรียบเทียบ 2 คอลัมน์ใน Excel

    Excel VLOOKUP และ MATCH

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

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

    Excel ฟังก์ชัน MATCH จัดการกับ ตำแหน่งสัมพัทธ์ ของค่าการค้นหา ซึ่งทำให้เหมาะสมอย่างยิ่งสำหรับอาร์กิวเมนต์ col_index_num ของ VLOOKUP กล่าวอีกนัยหนึ่ง แทนที่จะระบุคอลัมน์ส่งคืนเป็นตัวเลขคงที่ คุณใช้ MATCH เพื่อรับตำแหน่งปัจจุบันของคอลัมน์นั้น

    เพื่อให้เข้าใจได้ง่ายขึ้น ลองใช้ตารางกับคะแนนสอบของนักเรียนอีกครั้ง (คล้ายกับที่เราใช้ในตอนต้นของบทช่วยสอนนี้) แต่คราวนี้เราจะเรียกข้อมูลคะแนนจริง ไม่ใช่ตำแหน่งสัมพัทธ์

    สมมติว่าค่าการค้นหาอยู่ในเซลล์ F1 อาร์เรย์ของตารางคือ $A$1:$C$2 (เป็นการดีที่จะล็อกโดยใช้การอ้างอิงเซลล์แบบสัมบูรณ์ หากคุณวางแผนที่จะคัดลอกสูตรไปยังเซลล์อื่น) สูตรจะเป็นดังนี้:

    =VLOOKUP(F1, $A$1:$C$8, 3, FALSE)

    อาร์กิวเมนต์ที่ 3 ( col_index_num ) ถูกตั้งค่าเป็น 3 เนื่องจาก คะแนนคณิตศาสตร์ ที่เราต้องการดึงเป็นคอลัมน์ที่ 3 ในโต๊ะ. ดังที่คุณเห็นในภาพหน้าจอด้านล่าง สูตร Vlookup ปกตินี้ทำงานได้ดี:

    แต่จนกว่าคุณจะแทรกหรือลบคอลัมน์เท่านั้น:

    ทำไม #REF! ข้อผิดพลาด? เนื่องจาก col_index_num ตั้งค่าเป็น 3 บอกให้ Excel รับค่าจากคอลัมน์ที่สาม ในขณะที่ตอนนี้มีเพียง 2 คอลัมน์ในอาร์เรย์ของตาราง

    เพื่อป้องกันไม่ให้สิ่งนี้เกิดขึ้น คุณสามารถทำ สูตร Vlookup ของคุณไดนามิกมากขึ้นโดยรวมฟังก์ชัน Match ต่อไปนี้:

    MATCH(E2,A1:C1,0)

    โดยที่:

    • E2 คือค่าการค้นหา ซึ่ง เท่ากับทุกประการ ไปยังชื่อของคอลัมน์ส่งคืน เช่น คอลัมน์ที่คุณต้องการดึงค่า ( คะแนนคณิตศาสตร์ ในตัวอย่างนี้)
    • A1:C1 คืออาร์เรย์การค้นหาที่มี ส่วนหัวของตาราง

    และตอนนี้ ให้รวมฟังก์ชัน Match นี้ในอาร์กิวเมนต์ col_index_num ของสูตร Vlookup ดังนี้:

    =VLOOKUP(F1,$A$1:$C$8, MATCH(E2,$A$1:$C$1, 0), FALSE)

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

    ในภาพหน้าจอด้านบน ฉันล็อกการอ้างอิงเซลล์ทั้งหมดเพื่อให้สูตรทำงานได้อย่างถูกต้องแม้ว่าฉันจะ ผู้ใช้ย้ายไปยังตำแหน่งอื่นในเวิร์กชีต คุณสามารถเห็นในภาพหน้าจอด้านล่าง สูตรทำงานได้ดีหลังจากลบคอลัมน์ นอกจากนี้ Excel ยังฉลาดพอที่จะปรับการอ้างอิงสัมบูรณ์ได้อย่างเหมาะสมในกรณีนี้:

    Excel HLOOKUP และ MATCH

    ในลักษณะเดียวกัน คุณสามารถใช้ Excel MATCH ทำหน้าที่ปรับปรุงสูตร HLOOKUP ของคุณ หลักการทั่วไปจะเหมือนกับในกรณีของ Vlookup คือ คุณใช้ฟังก์ชัน Match เพื่อรับตำแหน่งสัมพัทธ์ของคอลัมน์ส่งคืน และระบุตัวเลขนั้นให้กับอาร์กิวเมนต์ row_index_num ของสูตร Hlookup ของคุณ

    สมมติว่าค่าการค้นหาอยู่ในเซลล์ B5 อาร์เรย์ของตารางคือ B1:H3 ชื่อของแถวที่ส่งคืน (ค่าการค้นหาสำหรับ MATCH) อยู่ในเซลล์ A6 และส่วนหัวของแถวคือ A1:A3 สูตรที่สมบูรณ์มีดังนี้:

    =HLOOKUP(B5, B1:H3, MATCH(A6, A1:A3, 0), FALSE)

    อย่างที่คุณเพิ่งเห็น การรวมกันของ Hlookup/Vlookup & การจับคู่เป็นการปรับปรุงสูตร Hlookup และ Vlookup ปกติอย่างแน่นอน อย่างไรก็ตาม ฟังก์ชัน MATCH ไม่ได้ขจัดข้อจำกัดทั้งหมด โดยเฉพาะอย่างยิ่ง สูตรการจับคู่ Vlookup ยังไม่สามารถมองไปทางซ้ายได้ และการจับคู่ Hlookup ล้มเหลวในการค้นหาในแถวอื่นนอกเหนือจากแถวบนสุด

    หากต้องการเอาชนะข้อจำกัดข้างต้น (และอื่นๆ อีกสองสามข้อ) ให้พิจารณาใช้ การรวมกันของ INDEX MATCH ซึ่งให้วิธีการที่มีประสิทธิภาพและหลากหลายในการค้นหาใน Excel ซึ่งเหนือกว่า Vlookup และ Hlookup หลายประการ ดูคำแนะนำโดยละเอียดและตัวอย่างสูตรได้ใน INDEX & จับคู่ใน Excel - ทางเลือกที่ดีกว่า VLOOKUP

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

    ฝึกฝน

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