สารบัญ
บทช่วยสอนนี้อธิบายวิธีใช้ฟังก์ชัน 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 เป็นเรื่องง่าย อย่างไรก็ตาม เช่นเดียวกับกรณีของฟังก์ชันอื่นๆ เกือบทั้งหมด มีความเฉพาะบางประการที่คุณควรทราบ:
- ฟังก์ชัน MATCH ส่งคืน ตำแหน่งสัมพัทธ์ ของค่าการค้นหา ในอาร์เรย์ ไม่ใช่ค่าของตัวมันเอง
- MATCH คือ ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ ซึ่งหมายความว่าจะไม่แยกความแตกต่างระหว่างตัวพิมพ์เล็กและตัวพิมพ์ใหญ่เมื่อจัดการกับค่าข้อความ
- หาก อาร์เรย์การค้นหาประกอบด้วยค่าการค้นหาหลายรายการ ตำแหน่งของค่าแรกจะถูกส่งกลับ
- หากไม่พบค่าการค้นหาในอาร์เรย์การค้นหา ระบบจะส่งกลับข้อผิดพลาด #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 หวังว่าตัวอย่างที่กล่าวถึงในบทช่วยสอนนี้จะเป็นประโยชน์ในการทำงานของคุณ ฉันขอขอบคุณที่อ่านและหวังว่าจะได้พบคุณในบล็อกของเราในสัปดาห์หน้า!