สารบัญ
บทช่วยสอนนี้แสดงวิธีใช้ INDEX และ MATCH ใน Excel และวิธีที่ดีกว่า VLOOKUP
ในบทความสองสามบทความล่าสุด เราได้พยายามอย่างเต็มที่ในการอธิบายพื้นฐานของฟังก์ชัน VLOOKUP แก่ผู้เริ่มต้น และให้ตัวอย่างสูตร VLOOKUP ที่ซับซ้อนมากขึ้นแก่ผู้ใช้ระดับสูง และตอนนี้ ฉันจะพยายามถ้าไม่ทำให้คุณเลิกใช้ VLOOKUP อย่างน้อยก็แสดงวิธีอื่นในการค้นหาแนวตั้งใน Excel
"ฉันต้องการสิ่งนั้นเพื่ออะไร" คุณอาจสงสัย เนื่องจาก VLOOKUP มีข้อจำกัดมากมายที่ทำให้คุณไม่สามารถได้ผลลัพธ์ที่ต้องการในหลาย ๆ สถานการณ์ ในทางกลับกัน ชุดค่าผสม INDEX MATCH มีความยืดหยุ่นมากกว่าและมีคุณสมบัติที่ยอดเยี่ยมมากมายที่ทำให้เหนือกว่า VLOOKUP ในหลายๆ ด้าน
Excel INDEX และฟังก์ชัน MATCH - พื้นฐาน
เนื่องจากจุดประสงค์ของบทช่วยสอนนี้คือการสาธิตทางเลือกอื่นในการทำ vlookup ใน Excel โดยใช้ฟังก์ชัน INDEX และ MATCH ร่วมกัน เราจึงไม่เน้นไวยากรณ์มากนักและ ใช้. เราจะครอบคลุมเฉพาะขั้นต่ำที่จำเป็นสำหรับการทำความเข้าใจแนวคิดทั่วไป จากนั้นดูตัวอย่างสูตรเชิงลึกที่เปิดเผยข้อดีทั้งหมดของการใช้ INDEX MATCH แทน VLOOKUP
ฟังก์ชัน INDEX - ไวยากรณ์และการใช้งาน
ฟังก์ชัน Excel INDEX ส่งกลับค่าในอาร์เรย์ตามหมายเลขแถวและคอลัมน์ที่คุณระบุ ไวยากรณ์ของฟังก์ชัน INDEX ตรงไปตรงมา:
( เกณฑ์1= ช่วง1) * ( เกณฑ์2= ช่วง2), 0))}หมายเหตุ นี่เป็นสูตรอาร์เรย์ที่ต้องกรอกโดยใช้ปุ่มลัด Ctrl + Shift + Enter
ในตารางตัวอย่างด้านล่าง สมมติว่าคุณต้องการหาจำนวนเงินตามเกณฑ์ 2 ข้อ คือ ลูกค้า และ ผลิตภัณฑ์ .
สูตร INDEX MATCH ต่อไปนี้ใช้งานได้ดี:
=INDEX(C2:C10, MATCH(1, (F1=A2:A10) * (F2=B2:B10), 0))
โดยที่ C2:C10 คือช่วงที่จะส่งคืนค่าจาก F1 เป็นเกณฑ์1, A2:A10 คือช่วงสำหรับเปรียบเทียบกับเกณฑ์1, F2 คือเกณฑ์ 2 และ B2:B10 คือช่วงสำหรับเปรียบเทียบกับเกณฑ์2
อย่าลืมป้อนสูตรให้ถูกต้องโดยกด Ctrl + Shift + Enter และ Excel จะใส่วงเล็บปีกกาโดยอัตโนมัติตามที่แสดงในภาพหน้าจอ:
หากคุณไม่ต้องการใช้สูตรอาร์เรย์ในเวิร์กชีต ให้เพิ่มฟังก์ชัน INDEX อีกหนึ่งฟังก์ชันใน สูตรและเติมให้สมบูรณ์ด้วยการกด Enter ตามปกติ:
วิธีการทำงานของสูตรเหล่านี้
สูตรใช้วิธีเดียวกับฟังก์ชัน INDEX MATCH พื้นฐานที่ตรวจสอบ คอลัมน์เดียว ในการประเมินหลายเกณฑ์ ให้คุณสร้างอาร์เรย์ที่มีค่า TRUE และ FALSE สองอาร์เรย์ขึ้นไปซึ่งแสดงถึงค่าที่ตรงกันและไม่ตรงกันสำหรับแต่ละเกณฑ์ จากนั้นคูณองค์ประกอบที่สอดคล้องกันของอาร์เรย์เหล่านี้ การดำเนินการคูณแปลง TRUE และ FALSE เป็น 1 และ 0 ตามลำดับ และสร้างอาร์เรย์โดยที่ 1 สอดคล้องกับแถวที่ตรงกับเกณฑ์ทั้งหมดฟังก์ชัน MATCH ที่มีค่าการค้นหาเป็น 1 จะค้นหา "1" ตัวแรกในอาร์เรย์และส่งตำแหน่งไปยัง INDEX ซึ่งจะส่งคืนค่าในแถวนี้จากคอลัมน์ที่ระบุ
สูตรที่ไม่ใช่อาร์เรย์ขึ้นอยู่กับ ความสามารถของฟังก์ชัน INDEX ในการจัดการอาร์เรย์โดยกำเนิด ดัชนีที่สองได้รับการกำหนดค่าด้วย 0 row_num เพื่อให้ส่งผ่านอาร์เรย์ทั้งคอลัมน์ไปยัง MATCH
นั่นคือคำอธิบายระดับสูงของตรรกะของสูตร สำหรับรายละเอียดทั้งหมด โปรดดูการจับคู่ INDEX ของ Excel ที่มีหลายเกณฑ์
การจับคู่ INDEX ของ Excel ด้วย AVERAGE, MAX, MIN
Microsoft Excel มีฟังก์ชันพิเศษในการค้นหาค่าต่ำสุด สูงสุด และค่าเฉลี่ยใน แนว. แต่ถ้าคุณต้องการรับค่าจากเซลล์อื่นที่เกี่ยวข้องกับค่าเหล่านั้นล่ะ ในกรณีนี้ ให้ใช้ฟังก์ชัน MAX, MIN หรือ AVERAGE ร่วมกับ INDEX MATCH
INDEX MATCH กับ MAX
หากต้องการค้นหาค่ามากที่สุดในคอลัมน์ D และส่งกลับค่าจากคอลัมน์ C ในช่อง แถวเดียวกัน ใช้สูตรนี้:
=INDEX(C2:C10, MATCH(MAX(D2:D10), D2:D10, 0))
INDEX MATCH กับ MIN
หากต้องการหาค่าที่น้อยที่สุดในคอลัมน์ D และดึงค่าที่เกี่ยวข้องจากคอลัมน์ C ให้ใช้ค่านี้ :
=INDEX(C2:C10, MATCH(MIN(D2:D10), D2:D10, 0))
INDEX MATCH กับ AVERAGE
หากต้องการหาค่าที่ใกล้เคียงค่าเฉลี่ยมากที่สุดใน D2:D10 และรับค่าที่สอดคล้องกันจากคอลัมน์ C นี่คือสูตร ที่จะใช้:
=INDEX(C2:C10, MATCH(AVERAGE(D2:D10), D2:D10, -1 ))
ขึ้นอยู่กับวิธีการจัดระเบียบข้อมูลของคุณ ระบุ 1 หรือ -1 ให้กับอาร์กิวเมนต์ที่สาม (match_type) ของฟังก์ชัน MATCH:
- หากคอลัมน์ค้นหาของคุณ (คอลัมน์ D ในกรณีของเรา) ถูกจัดเรียง จากน้อยไปมาก ให้ใส่ 1 สูตรจะคำนวณค่าที่มากที่สุดซึ่งน้อยกว่า มากกว่า หรือเท่ากับค่าเฉลี่ย
- หากคอลัมน์การค้นหาของคุณเรียงลำดับ จากมากไปหาน้อย ให้ป้อน -1 สูตรจะคำนวณค่าที่น้อยที่สุดซึ่ง มากกว่า หรือเท่ากับค่าเฉลี่ย
- หากอาร์เรย์การค้นหาของคุณมีค่า เท่ากับ ทุกประการกับค่าเฉลี่ย คุณจะ สามารถป้อน 0 สำหรับการจับคู่แบบตรงทั้งหมด ไม่จำเป็นต้องเรียงลำดับ
ในตัวอย่างของเรา ประชากรในคอลัมน์ D จัดเรียงจากมากไปหาน้อย เราจึงใช้ -1 สำหรับประเภทการจับคู่ ผลลัพธ์ที่ได้คือ "โตเกียว" เนื่องจากประชากร (13,189,000) ใกล้เคียงที่สุดซึ่งมากกว่าค่าเฉลี่ย (12,269,006)
คุณอาจอยากรู้ว่า VLOOKUP สามารถทำการคำนวณดังกล่าวได้เช่นกัน แต่เป็นสูตรอาร์เรย์: VLOOKUP ที่มี AVERAGE, MAX, MIN
การใช้ INDEX MATCH กับ IFNA / IFERROR
อย่างที่คุณคงสังเกต ถ้า INDEX MATCH สูตรใน Excel ไม่พบค่าการค้นหา จะทำให้เกิดข้อผิดพลาด #N/A หากคุณต้องการแทนที่สัญลักษณ์แสดงข้อผิดพลาดมาตรฐานด้วยสิ่งที่มีความหมายมากขึ้น ให้ใส่สูตร INDEX MATCH ของคุณในฟังก์ชัน IFNA ตัวอย่างเช่น:
=IFNA(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "No match is found")
และตอนนี้ หากมีคนป้อนตารางการค้นหาที่ไม่มีอยู่ในช่วงการค้นหา สูตรจะแจ้งผู้ใช้อย่างชัดเจนว่าไม่มีรายการใดที่ตรงกันพบ:
หากคุณต้องการตรวจหาข้อผิดพลาดทั้งหมด ไม่ใช่แค่ #N/A ให้ใช้ฟังก์ชัน IFERROR แทน IFNA:
=IFERROR(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "Oops, something went wrong!")
โปรดทราบว่าในหลาย ๆ สถานการณ์อาจไม่ฉลาดที่จะปกปิดข้อผิดพลาดทั้งหมด เนื่องจากข้อผิดพลาดจะแจ้งเตือนคุณเกี่ยวกับข้อผิดพลาดที่อาจเกิดขึ้นในสูตรของคุณ
นั่นคือวิธีใช้ INDEX และ MATCH ใน Excel ฉันหวังว่าตัวอย่างสูตรของเราจะเป็นประโยชน์สำหรับคุณ และหวังว่าจะได้พบคุณในบล็อกของเราในสัปดาห์หน้า!
สมุดงานแบบฝึกหัดสำหรับการดาวน์โหลด
ตัวอย่างการจับคู่ Excel INDEX (ไฟล์ .xlsx)
INDEX(array, row_num, [column_num])นี่คือคำอธิบายง่ายๆ ของแต่ละพารามิเตอร์:
- อาร์เรย์ - ช่วงของเซลล์ที่คุณต้องการส่งกลับ ค่า from.
- row_num - หมายเลขแถวในอาร์เรย์ที่คุณต้องการส่งกลับค่า หากละเว้น จะต้องระบุ column_num
- column_num - หมายเลขคอลัมน์ในอาร์เรย์ที่คุณต้องการส่งคืนค่า หากละเว้น จะต้องระบุ row_num
สำหรับข้อมูลเพิ่มเติม โปรดดูที่ฟังก์ชัน INDEX ของ Excel
และนี่คือตัวอย่างของสูตร INDEX ในรูปแบบที่ง่ายที่สุด:
=INDEX(A1:C10,2,3)
สูตรค้นหาในเซลล์ A1 ถึง C10 และส่งกลับค่าของเซลล์ในแถวที่ 2 และคอลัมน์ที่ 3 เช่น เซลล์ C2
ง่ายมากใช่ไหม อย่างไรก็ตาม เมื่อทำงานกับข้อมูลจริง คุณจะแทบไม่รู้ว่าต้องการแถวและคอลัมน์ใด ฟังก์ชัน MATCH จึงมีประโยชน์
ฟังก์ชัน MATCH - ไวยากรณ์และการใช้งาน
ฟังก์ชัน Excel MATCH ค้นหาค่าการค้นหาในช่วงของเซลล์และส่งกลับ ตำแหน่งสัมพัทธ์ ของค่านั้นในช่วง
ไวยากรณ์ของฟังก์ชัน MATCH เป็นดังนี้:
MATCH(lookup_value , lookup_array, [match_type])- lookup_value - ค่าตัวเลขหรือข้อความที่คุณต้องการ
- lookup_array - ช่วงของเซลล์ที่กำลัง ค้นหาแล้ว
- match_type - ระบุว่าจะส่งคืนการจับคู่แบบตรงทั้งหมดหรือแบบที่ใกล้ที่สุด:
- 1 หรือละไว้ - ค้นหาค่าที่ใหญ่ที่สุดที่น้อยกว่าหรือเท่ากับค่าการค้นหา ต้องการการเรียงลำดับอาร์เรย์การค้นหาในลำดับจากน้อยไปหามาก
- 0 - ค้นหาค่าแรกที่เท่ากับค่าการค้นหาทุกประการ ในชุดค่าผสม INDEX / MATCH คุณจะต้องจับคู่แบบตรงเกือบทุกครั้ง ดังนั้นคุณจึงตั้งค่าอาร์กิวเมนต์ที่สามของฟังก์ชัน MATCH เป็น 0
- -1 - ค้นหาค่าที่น้อยที่สุดซึ่งมากกว่าหรือเท่ากับ lookup_value ต้องเรียงลำดับอาร์เรย์การค้นหาจากมากไปน้อย
ตัวอย่างเช่น หากช่วง B1:B3 มีค่า "New-York", "Paris", "London", สูตรด้านล่างส่งกลับเลข 3 เนื่องจาก "London" เป็นรายการที่สามในช่วง:
=MATCH("London",B1:B3,0)
สำหรับข้อมูลเพิ่มเติม โปรดดูฟังก์ชัน Excel MATCH
ที่ เมื่อแรกเห็น ประโยชน์ของฟังก์ชัน MATCH อาจดูน่าสงสัย ใครสนใจเกี่ยวกับตำแหน่งของค่าในช่วง? สิ่งที่เราต้องการทราบก็คือค่านั่นเอง
ฉันขอเตือนคุณว่าตำแหน่งสัมพัทธ์ของค่าการค้นหา (เช่น หมายเลขแถวและคอลัมน์) คือสิ่งที่คุณต้องระบุให้กับ row_num<อาร์กิวเมนต์ 2> และ column_num ของฟังก์ชัน INDEX อย่างที่คุณจำได้ Excel INDEX สามารถหาค่าที่จุดเชื่อมต่อของแถวและคอลัมน์ที่กำหนด แต่ไม่สามารถระบุได้ว่าต้องการแถวและคอลัมน์ใดกันแน่
วิธีใช้ฟังก์ชัน INDEX MATCH ใน Excel
ตอนนี้คุณรู้พื้นฐานแล้ว ฉันเชื่อว่ามีเริ่มเข้าใจแล้วว่า MATCH และ INDEX ทำงานร่วมกันอย่างไร โดยสรุป INDEX จะค้นหาค่าการค้นหาตามหมายเลขคอลัมน์และแถว และ MATCH จะระบุตัวเลขเหล่านั้น แค่นั้นแหละ!
สำหรับการค้นหาแนวตั้ง คุณใช้ฟังก์ชัน MATCH เพื่อระบุหมายเลขแถวและระบุช่วงคอลัมน์โดยตรงไปยัง INDEX:
INDEX ( คอลัมน์เพื่อส่งกลับค่าจาก, MATCH ( ค่าการค้นหา, คอลัมน์ที่ต้องการค้นหาเทียบกับ, 0))ยังมีปัญหาในการคิดออกอยู่หรือไม่ อาจเข้าใจง่ายขึ้นจากตัวอย่าง สมมติว่าคุณมีรายชื่อเมืองหลวงของประเทศและจำนวนประชากร:
หากต้องการค้นหาประชากรของเมืองหลวงบางแห่ง เช่น เมืองหลวงของญี่ปุ่น ให้ใช้สูตร INDEX MATCH ต่อไปนี้:
=INDEX(C2:C10, MATCH("Japan", A2:A10, 0))
ตอนนี้ เรามาวิเคราะห์ว่าส่วนประกอบแต่ละส่วนของสูตรนี้ทำหน้าที่อะไร:
- ฟังก์ชัน MATCH จะค้นหาค่าการค้นหา "ญี่ปุ่น" ในช่วง A2: A10 และส่งกลับเลข 3 เนื่องจาก "ญี่ปุ่น" เป็นลำดับที่สามในอาร์เรย์การค้นหา
- หมายเลขแถวจะส่งตรงไปยังอาร์กิวเมนต์ row_num ของ INDEX ซึ่งสั่งให้ส่งคืนค่าจากค่านั้น แถว
ดังนั้นสูตรข้างต้นจึงกลายเป็น INDEX(C2:C,3) อย่างง่ายที่ระบุว่าให้ค้นหาในเซลล์ C2 ถึง C10 และดึงค่าจากเซลล์ที่ 3 ในช่วงนั้น เช่น C4 เพราะเราเริ่มนับจากแถวที่สอง
ไม่ต้องการฮาร์ดโค้ดเมืองในสูตรใช่ไหม ป้อนลงในเซลล์บางเซลล์ เช่น F1 ป้อนเซลล์อ้างอิงถึง MATCH และคุณจะได้รับสูตรการค้นหาแบบไดนามิก:
=INDEX(C2:C10, MATCH(F1,A2:A10,0))
หมายเหตุสำคัญ! จำนวนแถวใน อาร์กิวเมนต์ อาร์เรย์ ของ INDEX ควรตรงกับจำนวนแถวในอาร์กิวเมนต์ lookup_array ของ MATCH มิฉะนั้น สูตรจะให้ผลลัพธ์ที่ไม่ถูกต้อง
เดี๋ยวก่อน เดี๋ยวก่อน... ทำไม 'เราใช้สูตร Vlookup ต่อไปนี้ไม่ใช่เหรอ? การเสียเวลาพยายามหาจุดพลิกผันของ Excel MATCH INDEX จะมีประโยชน์อะไร
=VLOOKUP(F1, A2:C10, 3, FALSE)
ในกรณีนี้ ไม่มีเหตุผลเลย :) ตัวอย่างง่ายๆ นี้มีไว้เพื่อจุดประสงค์ในการสาธิตเท่านั้น เพื่อให้คุณเข้าใจว่าฟังก์ชัน INDEX และ MATCH ทำงานร่วมกันอย่างไร ตัวอย่างอื่นๆ ที่ตามมาด้านล่างจะแสดงให้คุณเห็นถึงพลังที่แท้จริงของชุดค่าผสมนี้ที่สามารถรับมือกับสถานการณ์ที่ซับซ้อนจำนวนมากได้อย่างง่ายดายเมื่อ VLOOKUP สะดุด
เคล็ดลับ:
- ใน Excel 365 และ Excel 2021 คุณ สามารถใช้สูตร INDEX XMATCH ที่ทันสมัยกว่าได้
- สำหรับ Google ชีต โปรดดูตัวอย่างสูตรที่มี INDEX MATCH ในบทความนี้
INDEX MATCH เทียบกับ VLOOKUP
เมื่อ การตัดสินใจว่าจะใช้ฟังก์ชันใดในการค้นหาแนวตั้ง กูรูด้าน Excel ส่วนใหญ่เห็นพ้องต้องกันว่า INDEX MATCH ดีกว่า VLOOKUP มาก อย่างไรก็ตาม หลายคนยังคงใช้ VLOOKUP อยู่ ประการแรก เพราะมันง่ายกว่า และประการที่สอง เพราะพวกเขาไม่เข้าใจประโยชน์ทั้งหมดของการใช้สูตร INDEX MATCH ใน Excel อย่างถ่องแท้ หากปราศจากความเข้าใจดังกล่าวแล้ว ก็ไม่มีใครยอมสละเวลาเพื่อเรียนรู้ไวยากรณ์ที่ซับซ้อนมากขึ้น
ด้านล่างนี้ ฉันจะชี้ให้เห็นถึงข้อได้เปรียบที่สำคัญของ MATCH INDEX บน VLOOKUP และคุณตัดสินใจว่าสิ่งนี้ควรค่าแก่การเพิ่มไปยังคลังแสง Excel ของคุณหรือไม่
4 เหตุผลหลักในการใช้ INDEX MATCH แทน VLOOKUP
- การค้นหาจากขวาไปซ้าย ตามที่ผู้ใช้ที่มีการศึกษาทราบ VLOOKUP ไม่สามารถมองไปทางซ้ายได้ หมายความว่าค่าการค้นหาของคุณควรอยู่ในคอลัมน์ซ้ายสุดของ โต๊ะ. INDEX MATCH สามารถค้นหาด้านซ้ายได้อย่างง่ายดาย! ตัวอย่างต่อไปนี้แสดงการทำงาน: วิธี Vlookup ค่าทางด้านซ้ายใน Excel
- แทรกหรือลบคอลัมน์อย่างปลอดภัย สูตร VLOOKUP ใช้งานไม่ได้หรือให้ผลลัพธ์ที่ไม่ถูกต้องเมื่อมีคอลัมน์ใหม่ ลบออกจากหรือเพิ่มลงในตารางการค้นหา เนื่องจากไวยากรณ์ของ VLOOKUP กำหนดให้ระบุหมายเลขดัชนีของคอลัมน์ที่คุณต้องการดึงข้อมูลมา โดยปกติ เมื่อคุณเพิ่มหรือลบคอลัมน์ หมายเลขดัชนีจะเปลี่ยนไป
ด้วย INDEX MATCH คุณจะระบุช่วงของคอลัมน์ส่งกลับ ไม่ใช่หมายเลขดัชนี ด้วยเหตุนี้ คุณจึงมีอิสระที่จะแทรกและลบคอลัมน์ได้มากเท่าที่คุณต้องการโดยไม่ต้องกังวลเกี่ยวกับการอัปเดตทุกสูตรที่เกี่ยวข้อง
- ไม่มีขีดจำกัดสำหรับขนาดของค่าการค้นหา เมื่อใช้ฟังก์ชัน VLOOKUP ความยาวรวมของเกณฑ์การค้นหาจะต้องไม่เกิน 255 อักขระ มิฉะนั้นคุณจะมี #VALUE ! ข้อผิดพลาด. ดังนั้น หากชุดข้อมูลของคุณมีสตริงที่ยาว INDEX MATCH จะทำงานเพียงอย่างเดียวโซลูชัน
- ความเร็วในการประมวลผลที่สูงขึ้น หากตารางของคุณมีขนาดค่อนข้างเล็ก ประสิทธิภาพของ Excel แทบจะไม่มีความแตกต่างกันเลย แต่ถ้าแผ่นงานของคุณมีหลายร้อยหรือหลายพันแถว และตามมาด้วยสูตรเป็นร้อยหรือพันสูตร MATCH INDEX จะทำงานเร็วกว่า VLOOKUP มาก เนื่องจาก Excel จะต้องดำเนินการเฉพาะการค้นหาและส่งคืนคอลัมน์แทนที่จะเป็นอาร์เรย์ของตารางทั้งหมด
ผลกระทบของ VLOOKUP ต่อประสิทธิภาพของ Excel อาจเห็นได้ชัดเจนเป็นพิเศษ หากสมุดงานของคุณมีสูตรอาร์เรย์ที่ซับซ้อน เช่น VLOOKUP และ SUM ประเด็นคือการตรวจสอบแต่ละค่าในอาร์เรย์ต้องมีการเรียกใช้ฟังก์ชัน VLOOKUP แยกต่างหาก ดังนั้น ยิ่งอาร์เรย์ของคุณมีค่ามากขึ้นและยิ่งคุณมีสูตรอาร์เรย์ในสมุดงานมากเท่าใด Excel ก็ยิ่งทำงานช้าลงเท่านั้น
Excel INDEX MATCH - ตัวอย่างสูตร
การรู้จัก เหตุผลที่ต้องเรียนรู้ฟังก์ชัน MATCH INDEX มาดูส่วนที่น่าสนใจที่สุดและดูว่าคุณจะนำความรู้ทางทฤษฎีไปใช้ในทางปฏิบัติได้อย่างไร
สูตร INDEX MATCH ให้ค้นหาจากขวาไปซ้าย
เป็น ที่กล่าวมาแล้ว VLOOKUP ไม่สามารถมองด้านซ้ายได้ ดังนั้น เว้นแต่ค่าการค้นหาของคุณจะอยู่ในคอลัมน์ซ้ายสุด ไม่มีโอกาสที่สูตร Vlookup จะให้ผลลัพธ์ที่คุณต้องการ ฟังก์ชัน INDEX MATCH ใน Excel มีความหลากหลายมากกว่า และไม่สนใจว่าคอลัมน์ค้นหาและส่งคืนจะอยู่ที่ใด
สำหรับตัวอย่างนี้เราจะเพิ่มคอลัมน์อันดับทางด้านซ้ายของตารางตัวอย่างของเรา และพยายามหาว่าเมืองหลวงของรัสเซีย มอสโก อยู่ในอันดับใดในแง่ของจำนวนประชากร
ด้วยค่าการค้นหาใน G1 ให้ใช้สูตรต่อไปนี้เพื่อค้นหา ใน C2:C10 และส่งคืนค่าที่สอดคล้องกันจาก A2:A10:
=INDEX(A2:A10,MATCH(G1,C2:C10,0))
เคล็ดลับ หากคุณวางแผนที่จะใช้สูตร INDEX MATCH สำหรับเซลล์มากกว่าหนึ่งเซลล์ อย่าลืมล็อกทั้งสองช่วงด้วยการอ้างอิงเซลล์แบบสัมบูรณ์ (เช่น $A$2:$A$10 และ $C$2:4C$10) เพื่อไม่ให้บิดเบี้ยวเมื่อ การคัดลอกสูตร
INDEX MATCH MATCH เพื่อค้นหาในแถวและคอลัมน์
ในตัวอย่างข้างต้น เราใช้ INDEX MATCH แทน VLOOKUP แบบคลาสสิกเพื่อส่งกลับค่าจากหนึ่งคอลัมน์ที่กำหนดไว้ล่วงหน้า แนว. แต่ถ้าคุณต้องการค้นหาในหลายแถวและหลายคอลัมน์ล่ะ กล่าวอีกนัยหนึ่ง ถ้าคุณต้องการทำการค้นหาที่เรียกว่า เมทริกซ์ หรือ สองทาง ล่ะ
สิ่งนี้อาจฟังดูยุ่งยาก แต่สูตรจะคล้ายกันมาก เป็นฟังก์ชันพื้นฐานของ Excel INDEX MATCH โดยมีความแตกต่างกันเพียงข้อเดียว ลองเดาดูสิ
เพียงแค่ใช้ฟังก์ชัน MATCH สองฟังก์ชัน ฟังก์ชันหนึ่งเพื่อรับหมายเลขแถวและอีกฟังก์ชันหนึ่งเพื่อรับหมายเลขคอลัมน์ และขอแสดงความยินดีกับผู้ที่ทายถูกด้วย :)
INDEX (array, MATCH ( vlookup value, column to look up against, 0), MATCH ( ค่า hlookup, แถวที่ต้องการค้นหาเทียบกับ, 0))และตอนนี้ โปรดดูตารางด้านล่างและมาสร้างการจับคู่แบบ INDEX MATCHสูตรเพื่อหาจำนวนประชากร (เป็นล้าน) ในประเทศที่กำหนดในปีหนึ่งๆ
ด้วยประเทศเป้าหมายใน G1 (ค่า vlookup) และปีเป้าหมายใน G2 (ค่า hlookup) สูตรจะใช้รูปแบบนี้ :
=INDEX(B2:D11, MATCH(G1,A2:A11,0), MATCH(G2,B1:D1,0))
สูตรนี้ทำงานอย่างไร
เมื่อใดก็ตามที่คุณจำเป็นต้องเข้าใจสูตร Excel ที่ซับซ้อน ให้แยกย่อยออกเป็นส่วนย่อยๆ และ ดูว่าแต่ละฟังก์ชันทำอะไร:
MATCH(G1,A2:A11,0)
– ค้นหาผ่าน A2:A11 เพื่อหาค่าในเซลล์ G1 ("จีน") และส่งกลับตำแหน่ง ซึ่งก็คือ 2
MATCH(G2,B1:D1,0))
– ค้นหาผ่าน B1:D1 เพื่อรับตำแหน่งของค่าในเซลล์ G2 ("2015") ซึ่งก็คือ 3
หมายเลขแถวและคอลัมน์ด้านบนไปที่อาร์กิวเมนต์ที่สอดคล้องกันของฟังก์ชัน INDEX:
INDEX(B2:D11, 2, 3)
ด้วยเหตุนี้ คุณจะได้ค่าที่จุดตัดของแถวที่ 2 และคอลัมน์ที่ 3 ในช่วง B2:D11 ซึ่งเป็นค่าในเซลล์ D3 ง่าย? ใช่แล้ว!
จับคู่ดัชนี Excel เพื่อค้นหาหลายเกณฑ์
หากคุณมีโอกาสอ่านบทช่วยสอน Excel VLOOKUP ของเรา คุณอาจเคยทดสอบสูตรสำหรับ Vlookup ที่มีหลายเกณฑ์แล้ว อย่างไรก็ตาม ข้อจำกัดที่สำคัญของวิธีการดังกล่าวคือความจำเป็นในการเพิ่มคอลัมน์ตัวช่วย ข่าวดีก็คือฟังก์ชัน INDEX MATCH ของ Excel สามารถค้นหาโดยใช้เกณฑ์ตั้งแต่สองเกณฑ์ขึ้นไป โดยไม่ต้องแก้ไขหรือปรับโครงสร้างข้อมูลต้นฉบับของคุณ!
ต่อไปนี้คือสูตร INDEX MATCH ทั่วไปที่มีหลายเกณฑ์:
{=INDEX( return_range, ตรงกัน(1,