หน้าแรก บทความ Microsoft
Microsoft

INDEX + MATCH ใน Excel คืออะไร ใช้ยังไงให้ค้นหาข้อมูลได้ยืดหยุ่นกว่า VLOOKUP

เผยแพร่ 13 ส.ค. 69

ใครที่เคยใช้ VLOOKUP มาก่อน คงเจอปัญหากวนใจอยู่บ้าง เช่น หาข้อมูลที่อยู่ทางซ้ายของคอลัมน์ที่ค้นหาไม่ได้ หรือย้ายคอลัมน์แล้วสูตรพัง วันนี้จะพาไปรู้จักคู่สูตรคลาสสิกที่แก้ปัญหาพวกนี้ได้หมด นั่นคือ INDEX + MATCH เทคนิคที่มืออาชีพใช้กันมานาน และยังจำเป็นอยู่แม้ Excel รุ่นใหม่จะมี XLOOKUP แล้วก็ตาม

INDEX คืออะไร

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

=INDEX(array, row_num, [column_num])

จุดสำคัญคือ INDEX เองไม่ได้ “ค้นหา” อะไรเลย มันแค่หยิบค่าตามตำแหน่งที่บอกเท่านั้น ปัญหาคือเราไม่รู้ล่วงหน้าว่าค่าที่ต้องการอยู่แถวไหน นี่คือจุดที่ MATCH เข้ามาช่วย

MATCH คืออะไร

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

=MATCH(lookup_value, lookup_array, [match_type])

เช่น ถ้า A1:A5 คือรายชื่อสินค้า แล้วใช้ =MATCH("คีย์บอร์ด",A1:A5,0) ผลลัพธ์ที่ได้จะเป็นตัวเลขลำดับแถวที่เจอคำว่า “คีย์บอร์ด” เช่น 3 ไม่ใช่ราคาหรือข้อมูลอื่นใดๆ

รวม INDEX + MATCH เข้าด้วยกัน

ทีนี้พอเอา MATCH ไปใส่แทนตำแหน่งแถวใน INDEX ก็จะได้สูตรค้นหาที่ยืดหยุ่นกว่า VLOOKUP มาก รูปแบบมาตรฐานคือ

=INDEX(ช่วงผลลัพธ์, MATCH(ค่าที่หา, ช่วงค้นหา, 0))

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

ตัวอย่างใช้งานจริง: หาราคาสินค้าที่ชื่ออยู่ทางขวาราคาอยู่ทางซ้าย

สมมติมีตารางที่คอลัมน์ A เป็นราคา คอลัมน์ B เป็นชื่อสินค้า (ราคาอยู่ซ้ายมือของชื่อ) กรณีนี้ VLOOKUP ทำไม่ได้ตรงๆ เพราะ VLOOKUP ค้นหาได้แค่จากคอลัมน์ซ้ายสุดไปทางขวาเท่านั้น แต่ INDEX + MATCH ทำได้สบายๆ

E2fx=INDEX(A2:A4,MATCH(D2,B2:B4,0))
A B D E
1 ราคา ชื่อสินค้า ค้นหา ผลลัพธ์
2 590 คีย์บอร์ด เมาส์ไร้สาย 350
3 350 เมาส์ไร้สาย
4 1,200 หูฟังบลูทูธ

สูตรนี้ให้ MATCH หาก่อนว่า “เมาส์ไร้สาย” อยู่แถวที่เท่าไหร่ในช่วง B2:B4 (พบว่าเป็นแถวที่ 2) แล้วส่งเลข 2 นี้ให้ INDEX ไปหยิบค่าจากช่วง A2:A4 แถวที่ 2 ซึ่งก็คือ 350 ได้ผลลัพธ์ถูกต้องแม้ราคาจะอยู่คอลัมน์ซ้ายของชื่อสินค้าก็ตาม

ตัวอย่างใช้งานจริง: ค้นหาแบบสองมิติ (สองทาง) พร้อมกัน

อีกจุดเด่นของ INDEX + MATCH ที่ VLOOKUP ทำไม่ได้ในสูตรเดียวคือการค้นหาแบบสองมิติ เช่น หาคะแนนของนักเรียนคนหนึ่งในวิชาหนึ่ง โดยต้องระบุทั้งชื่อและวิชาพร้อมกัน วิธีทำคือใช้ MATCH สองตัวซ้อนกัน ตัวหนึ่งหาแถว อีกตัวหาคอลัมน์

G2fx=INDEX(B2:C4,MATCH(E2,A2:A4,0),MATCH(F2,B1:C1,0))
A B C
1 ชื่อ คณิตศาสตร์ ภาษาอังกฤษ
2 น้องพลอย 85 78
3 น้องกันต์ 72 90
4 น้องมิว 95 88
E F G
1 ชื่อที่หา วิชาที่หา คะแนน
2 น้องกันต์ ภาษาอังกฤษ 90

MATCH ตัวแรกหาว่า “น้องกันต์” อยู่แถวที่เท่าไหร่ในคอลัมน์ชื่อ (แถวที่ 2 ของช่วง A2:A4) ส่วน MATCH ตัวที่สองหาว่า “ภาษาอังกฤษ” อยู่คอลัมน์ที่เท่าไหร่ในหัวตาราง (คอลัมน์ที่ 2 ของช่วง B1:C1) แล้ว INDEX ก็หยิบค่าจากช่วง B2:C4 ตามแถวและคอลัมน์ที่ MATCH ทั้งสองตัวหาให้ ได้คะแนน 90 ตรงตามจริง

แล้ว XLOOKUP ล่ะ ยังต้องใช้ INDEX + MATCH อยู่ไหม

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

ข้อควรระวังเวลาใช้ INDEX + MATCH

สรุป

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

หมายเหตุ: บทความนี้เขียนและเรียบเรียงโดย AI

← กลับหน้าบทความ
Line