สารบัญ
ในขณะที่ทำงานกับข้อมูลจำนวนมากนำไปสู่การสร้างผลลัพธ์ที่หลากหลาย ใน Excel มีวิธีที่สะดวกมากในการแยกผลลัพธ์หลายรายการ ในบทความนี้ เราจะแสดงวิธีใช้ INDEX-MATCH สูตร ใน Excel เพื่อสร้างผลลัพธ์หลายรายการ
ดาวน์โหลด Practice Template
คุณสามารถดาวน์โหลดเทมเพลต Excel แบบฝึกหัดได้ฟรีจากที่นี่ และฝึกฝนด้วยตัวเอง
INDEX MATCH Multiple Results.xlsx
4 วิธีที่มีประโยชน์ในการปรับใช้ INDEX & จับคู่ฟังก์ชันเข้าด้วยกันใน Excel เพื่อแยกผลลัพธ์หลายรายการ
ส่วนนี้จะกล่าวถึงรายละเอียดเกี่ยวกับการใช้ ฟังก์ชัน INDEX และ ฟังก์ชัน MATCH ร่วมกันใน Excel เพื่อ ได้ผลลัพธ์ที่หลากหลาย
1. ค้นหาผลลัพธ์หลายรายการใน Array โดยใช้สูตร INDEX MATCH ใน Excel
พิจารณาชุดข้อมูลต่อไปนี้ ซึ่งเราต้องการหาคะแนนที่แตกต่างกันของนักเรียนจากการสอบต่างๆ
เราสามารถรับสิ่งนั้นได้โดยการเรียกใช้สูตร INDEX-MATCH ในเวิร์กชีตของเรา
ขั้นตอนในการค้นหาผลลัพธ์หลายรายการในชุดของอาร์เรย์โดยใช้ INDEX-MATCH ฟังก์ชันได้รับด้านล่าง
ขั้นตอน:
- เลือกชื่อจากชุดข้อมูล ( B5:B11 ) และใส่ ชื่อในเซลล์อื่นเพื่อใช้หมายเลขอ้างอิงเซลล์ในภายหลัง (เช่น ชื่อ Villiers ใน เซลล์ G4 )
- ในเซลล์อื่นที่คุณต้องการให้เป็นเซลล์ผลลัพธ์ ( เช่น เซลล์ G7 ) เขียนสรุป
บทความนี้อธิบายรายละเอียดวิธีใช้ฟังก์ชัน INDEX MATCH เพื่อแยกผลลัพธ์หลายรายการใน Excel ฉันหวังว่าบทความนี้มีประโยชน์มากสำหรับคุณ อย่าลังเลที่จะถามหากคุณมีคำถามเกี่ยวกับหัวข้อนี้
สูตรต่อไปนี้
=INDEX($C$5:$C$11,SMALL(IF(ISNUMBER(MATCH($B$5:$B$11,$G$4,0)),MATCH(ROW($B$5:$B$11),ROW($B$5:$B$11)),""),ROWS($A$1:A1)))
ที่นี่
$C$5:$C$11 = อาร์เรย์เพื่อค้นหาค่าการค้นหา
$B$5:$B$11 = อาร์เรย์ที่ค่าการค้นหาคือ
- กด Enter .
คุณจะสังเกตเห็นว่าผลลัพธ์ของข้อมูล (เช่น Villiers ) ที่คุณใส่ในเซลล์ที่เลือก ( G4 ) จะปรากฏในเซลล์ผลลัพธ์ (เช่น 65 ใน G7 )
- ลากแถวลงด้านล่าง Fill Handle เพื่อรับผลลัพธ์ที่เหลือจากค่าการค้นหาเดียวกันนั้น
เนื่องจากกระบวนการนี้ไม่คงที่สำหรับค่าใดค่าหนึ่ง ดังนั้นคุณจึงสามารถ เลือกข้อมูลการค้นหาในเซลล์ที่เลือก (เช่น G4 ) และผลลัพธ์สำหรับข้อมูลนั้นจะได้รับการอัปเดตอัตโนมัติในเซลล์ผลลัพธ์ (เช่น G7 )
เพื่อทำความเข้าใจเพิ่มเติมโปรดดู gif ด้านล่าง
การแยกย่อยสูตร:
มาแยกย่อยสูตรเพื่อทำความเข้าใจว่าเราได้มาอย่างไร ผลลัพธ์
- MATCH($B$5:$B$11, $G$4, 0) กลายเป็น
-> MATCH({“ฟลินอฟ”; “ โรนัลโด้”; “พลีซิส”; “วิลเลอร์ส”; “เบ็คแฮม”; “วิลเลอร์ส”; “Plessis”}, “Villiers”, 0)
-> ผลลัพธ์: {#N/A; #ไม่มี; #ไม่มี; 1; #ไม่มี; 1; #N/A}
คำอธิบาย: หากค่าการค้นหาพบข้อมูลที่ตรงกันในอาร์เรย์การค้นหา ฟังก์ชัน MATCH จะส่งกลับ 1 มิฉะนั้นจะส่งกลับ #N/A .
- ISNUMBER(MATCH($B$5:$B$11, $G$4, 0) กลายเป็น
-> ISNUMBER({#N/A; #N/A; #N/A; 1; #N/A; 1; #N/A})
-> เอาต์พุต: {FALSE; เท็จ; เท็จ; จริง; เท็จ; จริง; FALSE}.
คำอธิบาย: เนื่องจาก ฟังก์ชัน IF ไม่สามารถจัดการกับค่าความผิดพลาดได้ ดังนั้น ฟังก์ชัน ISNUMBER จึงถูกใช้ ที่นี่เพื่อแปลงค่าอาร์เรย์เป็นค่าบูลีน
- IF(ISNUMBER(MATCH($B$5:$B$11, $G$4, 0)), MATCH(ROW($B $5:$B$11), ROW($B$5:$B$11)), “”) กลายเป็น,
-> IF({FALSE; FALSE; FALSE ; TRUE; FALSE; TRUE; FALSE}, MATCH(ROW($B$5:$B$11), ROW($B$5:$B$11)), “”)
กลายเป็น<3
-> IF({FALSE; FALSE; FALSE; TRUE; FALSE; TRUE; FALSE}, {1; 2; 3; 4; 5; 6; 7}, “”)
-> เอาต์พุต: {“”; “”; “”; 4; “”; 6}
คำอธิบาย: ประการแรก ฟังก์ชัน IF จะแปลงค่าบูลีนเป็นหมายเลขแถวและช่องว่าง ต่อมา MATCH และ ฟังก์ชัน ROW จะคำนวณอาร์เรย์ที่มีตัวเลขต่อเนื่องกันตั้งแต่ 1 ถึง n โดยที่ n คือเอกลักษณ์ตัวเลขสุดท้ายของขนาดรวมของช่วงเซลล์ เนื่องจาก $B$5:$B$11 มี 7 ค่า ดังนั้นอาร์เรย์จึงกลายเป็น {1; 2; 3; 4; 5; 6; 7} .
- เล็ก(IF(ISNUMBER(MATCH($B$5:$B$11, $G$4, 0)), MATCH(ROW($B$5: $B$11), ROW($B$5:$B$11)), “”), ROWS($A$1:A1))) กลายเป็น
-> ขนาดเล็ก({“”; “”; “”; 4; “”; 6}, แถว ($A$1:A1))
-> ขนาดเล็ก({“”; “”; “”; 4; “”; 6}, 1)
-> ผลลัพธ์: 4
คำอธิบาย: ขั้นแรก ฟังก์ชัน SMALL จะกำหนดค่าที่จะได้รับตามหมายเลขแถว ถัดไป ฟังก์ชัน แถว จะส่งคืนตัวเลขที่เปลี่ยนแปลงทุกครั้งที่เซลล์ถูกคัดลอกและวางลงในเซลล์ด้านล่าง ในขั้นต้น มันส่งคืน 4 ตามชุดข้อมูลของเรา ในเซลล์ถัดไปด้านล่าง ROWS($A$1:A1) เปลี่ยนเป็น ROWS($A$1:A2) และส่งกลับ 6 .
- INDEX($C$5:$C$11, SMALL(IF(ISNUMBER(MATCH($B$5:$B$11, $G$4, 0)), MATCH(ROW($B$5: $B$11), ROW($B$5:$B$11)), “”), ROWS($A$1:A1))) กลายเป็น
-> INDEX($C$5:$C$11, 4)
-> เอาท์พุต: 65
คำอธิบาย: The <1 ฟังก์ชัน>INDEX ส่งกลับค่าจากอาร์เรย์ที่กำหนดตามหมายเลขแถวและคอลัมน์ ค่า ที่ 4 ในอาร์เรย์ $C$5:$C$11 คือ 65 ดังนั้นฟังก์ชัน INDEX จะคืนค่า 65 ในเซลล์ G7 .
อ่านเพิ่มเติม: IF ที่มี INDEX-MATCH ใน Excel (3 แนวทางที่เหมาะสม)
<8 2. ค้นหาผลลัพธ์หลายรายการของชื่อเหตุการณ์ที่จะเกิดขึ้น & amp; วันที่ด้วยสูตร INDEX MATCH ใน Excelบางครั้งเราก็ลืมวันที่ของเหตุการณ์สำคัญ ในกรณีนั้น ฟังก์ชัน INDEX MATCH จะทำงานเสมือนเป็นผู้ช่วยชีวิต
ด้านล่างนี้คือข้อมูลตัวอย่างที่เราต้องการทราบวันเกิดที่กำลังจะเกิดขึ้นในหมู่เพื่อนของเรา
ดังนั้น สิ่งที่เราทำคือ ใช้สูตร INDEX MATCH เพื่อดูว่าวันเกิดใครเป็นวันเกิดครั้งต่อไป และเกิดเมื่อไหร่
ดังนั้น สูตรที่จะรู้ชื่อบุคคลหรือชื่อเหตุการณ์ที่จะเกิดขึ้น
=INDEX($B$5:$B$9,MATCH(F5,$C$5:$C$9,1)+1)
และสูตรรู้วันที่เหตุการณ์ที่จะเกิดขึ้น คือ
=INDEX($C$5:$C$9,MATCH(F5,$C$5:$C$9,1)+1)
การแจกแจงสูตร:
มาแจกแจงสูตรกัน เพื่อทำความเข้าใจว่าเราทราบชื่ออเล็กซ์และวันเกิดของเขาได้อย่างไร
- MATCH(F5,$C$5:$C$9,1) <14
- INDEX($B$5:$B$9,MATCH(F5,$C$5:$C$9,1)+1 ) กลายเป็น
- INDEX($C$5:$C$9,MATCH(F5,$C$5:$C$9,1)+1) กลายเป็น
- INDEX จับคู่หลายเกณฑ์ด้วยสัญลักษณ์แทนใน Excel (คู่มือฉบับสมบูรณ์)
- [แก้ไขแล้ว!] INDEX MATCH ไม่ส่งคืนค่าที่ถูกต้องใน Excel (5 เหตุผล)
- วิธีใช้ INDEX MATCH แทน VLOOKUP ใน Excel (3 วิธี)
- INDEX+MATCH กับค่าที่ซ้ำกันใน Excel (3 วิธีด่วน)
- วิธีเลือกข้อมูลเฉพาะใน Excel (6 วิธีการ)
- เลือกอาชีพจากช่วงข้อมูล ( B5:B11 ) และใส่ข้อมูลในเซลล์อื่นเพื่อใช้หมายเลขอ้างอิงเซลล์ในภายหลัง (เช่น อาชีพ Cricketer ใน เซลล์ E5 )
- ในเซลล์อื่นที่คุณต้องการเป็น เซลล์ผลลัพธ์ของคุณ (เช่น เซลล์ F5 ) เขียนสูตรต่อไปนี้
- กด Enter .
- ลากแถวไปรอบๆ Fill Handle เพื่อรับผลลัพธ์ที่เหลือจากค่าการค้นหาเดียวกันนั้นในหลายๆ คอลัมน์แยกกัน
- อีกครั้ง ลาก เรียงแถวตาม Fill Handle เพื่อรับผลลัพธ์ที่เหลือจากค่าการค้นหาต่างๆ (เช่น Footballer, Wrestlers ) ในหลายๆ คอลัมน์แยกกัน
- ขนาดเล็ก(IF ($B$5:$B$11=$E5,ROW($C$5:$C$11)-MIN(ROW($C$5:$C$11))+1),COLUMNS($E$5:E5))
- INDEX($C$5:$C$11,SMALL(IF($B$5:$B$11 =$E5,ROW($C$5:$C$11)-MIN(ROW($C$5:$C$11))+1),COLUMNS($E$5:E5))) -> ส่งหมายเลขแถวไปยังฟังก์ชัน INDEX เพื่อแยกค่าสำหรับหมายเลขแถวที่เกี่ยวข้อง
- IFERROR(INDEX($C$5:$C$11,SMALL(IF($B$5:$B$11= $E5,ROW(C5:C11)-MIN(ROW(C5:C11))+1),COLUMNS($E$5:E5))),””) -> สังเกตว่าเมื่อคอลัมน์ส่งคืนค่าที่ไม่มีอยู่ส่งข้อผิดพลาด #NUM เพื่อป้องกันข้อผิดพลาด เรารวมสูตรทั้งหมดด้วย ฟังก์ชัน IFERROR เพื่อตรวจจับข้อผิดพลาดและตั้งค่า สตริงว่าง (“”) เป็นการส่งคืน
- เนื่องจากช่วงของอาร์เรย์ตารางข้อมูล หากต้องการค้นหาค่าคงที่ อย่าลืมใส่เครื่องหมาย ดอลล่าร์ ($) หน้าหมายเลขอ้างอิงเซลล์ของตารางอาร์เรย์
- เมื่อทำงานกับค่าอาร์เรย์ อย่าลืมกด Ctrl + Shift + Enter บนแป้นพิมพ์ของคุณ rd ขณะแยกผลลัพธ์ การกด Enter เท่านั้นจะทำงานเมื่อคุณใช้ Microsoft 365 เท่านั้น
- หลังจากกด Ctrl + Shift + Enter คุณจะสังเกตเห็นว่า แถบสูตรปิดสูตรใน วงเล็บปีกกา {} โดยประกาศว่าเป็นสูตรอาร์เรย์ อย่าพิมพ์ วงเล็บปีกกา {} ด้วยตัวคุณเอง Excel จะทำสิ่งนี้ให้คุณโดยอัตโนมัติ
-> เอาต์พุต: 4
คำอธิบาย: ฟังก์ชัน MATCH ค้นหาตำแหน่งของค่าการค้นหา ( เซลล์ F5 = วันพฤหัสบดีที่ 11 พฤศจิกายน 2021 ) ในค่าคงที่อาร์เรย์ ( $C$5:$C$9 = รายการวันที่ ) .
ในตัวอย่างนี้ เราไม่ต้องการการจับคู่แบบตรงทั้งหมด เราต้องการให้ฟังก์ชัน MATCH ส่งกลับค่าการจับคู่โดยประมาณ เราจึงตั้งค่าอาร์กิวเมนต์ที่สามเป็น 1 (หรือ จริง ).
-> INDEX($B$5:$B$9, 4) +1)
-> เอาต์พุต: Alex /(ชื่อเหตุการณ์)
คำอธิบาย: ฟังก์ชัน INDEX รับสองอาร์กิวเมนต์ไปยัง ส่งกลับค่าเฉพาะในช่วงหนึ่งมิติ ที่นี่ ช่วง $B$5:$B$9 เป็นอาร์กิวเมนต์แรกและผลลัพธ์ที่เราได้จากการคำนวณในส่วนก่อนหน้า (MATCH(F5,$C$5:$C$9, 1)) ตำแหน่ง 4 เป็นอาร์กิวเมนต์ที่สอง หมายความว่าเรากำลังค้นหาค่าที่อยู่ในตำแหน่ง 4 ใน $B$5:$B$9 ช่วง
และ,
-> INDEX($B$5:$B$9, 4) +1)
-> เอาต์พุต: วันอังคารที่ 7 ธันวาคม 2021
คำอธิบาย: ฟังก์ชัน INDEX รับสองอาร์กิวเมนต์เพื่อส่งกลับค่าเฉพาะในช่วงหนึ่งมิติ ที่นี่ ช่วง $C$5:$C$9 เป็นอาร์กิวเมนต์แรกและผลลัพธ์ที่เราได้จากการคำนวณในส่วนก่อนหน้า (MATCH(F5,$C$5:$C$9, 1)) ตำแหน่ง 4 เป็นอาร์กิวเมนต์ที่สอง นั่นหมายความว่าเรากำลังค้นหาค่าที่อยู่ในตำแหน่ง 4 ในช่วง $C$5:$C$9
เพื่อให้ได้วันที่ของเหตุการณ์ที่จะมาถึง เราเพิ่งเพิ่ม หนึ่งไปยังตำแหน่งเซลล์ที่ส่งคืนโดยฟังก์ชัน MATCH และทำให้เรามีตำแหน่งเซลล์ของวันที่เหตุการณ์ถัดไป
อ่านเพิ่มเติม: Excel INDEX -MATCH สูตรเพื่อส่งคืนค่าหลายค่าในแนวนอน
การอ่านที่คล้ายกัน
3. สร้างผลลัพธ์หลายรายการแยกเป็นคอลัมน์โดยใช้สูตร INDEX MATCH ใน Excel
จนถึงตอนนี้เรามีได้รับผลลัพธ์เป็นแถว แต่จะทำอย่างไรถ้าคุณต้องการรับผลลัพธ์ใน แยกคอลัมน์
พิจารณาชุดข้อมูลต่อไปนี้ ซึ่งประกอบด้วยอาชีพสามประเภทที่แสดงชื่อบุคคลหลายคน
เราต้องการสร้างกลุ่มคนตามอาชีพ และเราต้องการตั้งชื่อ ตามคอลัมน์ ตามอาชีพของพวกเขา
เพื่อแยกหลายๆ จับคู่ผลลัพธ์ลงในเซลล์ที่แยกจากกันในคอลัมน์แยกกัน คุณสามารถทำเคล็ดลับเล็กๆ น้อยๆ ด้วยฟังก์ชัน INDEX
มาเรียนรู้วิธีแยกผลลัพธ์ที่ตรงกันหลายรายการในหลายๆ คอลัมน์ใน Excel ด้วยการรวมกันของ ดัชนี ฟังก์ชันและอื่นๆ
ขั้นตอน:
=IFERROR(INDEX($C$5:$C$11,SMALL(IF($B$5:$B$11=$E5,ROW(C5:C11)-MIN(ROW(C5:C11))+1),COLUMNS($E$5:E5))),"")
ที่นี่
$C$5:$C$11 = อาร์ ray เพื่อค้นหาค่าการค้นหา
$B$5:$B$11 = อาร์เรย์ที่มีค่าการค้นหาอยู่
คุณจะสังเกตเห็นว่าผลลัพธ์ของข้อมูล (เช่น Cricketers ) ที่คุณใส่ในเซลล์ที่เลือก ( E5 ) จะปรากฏในเซลล์ผลลัพธ์ (เช่น Flintoff ใน เซลล์ F5 ).
<24
รายละเอียดสูตร:
มาแยกย่อยสูตรเพื่อทำความเข้าใจว่าเราได้ผลลัพธ์มาอย่างไร
เรารู้แล้วจากการสนทนาก่อนหน้านี้ว่าฟังก์ชัน SMALL, IF และ ROW ทำงานร่วมกันอย่างไร และเราก็ใช้เคล็ดลับนั้นในการสร้าง หมายเลขแถวที่ตรงกับการแข่งขัน N-th เมื่อได้หมายเลขแถวแล้ว เราก็ส่งต่อไปยังฟังก์ชัน INDEX ซึ่งจะคืนค่าที่แถวนั้น
-> Output: ( ตามภาพด้านล่าง )
-> Output: ( ตามภาพ ด้านล่าง )
-> เอาต์พุต: ( ตามภาพด้านล่าง )
อ่านเพิ่มเติม: Excel INDEX MATCH เพื่อส่งคืนค่าหลายค่าในเซลล์เดียว
4. แยกผลลัพธ์หลายรายการออกเป็นแถวแยกกันโดยใช้ฟังก์ชัน INDEX MATCH ใน Excel
หากคุณสงสัย เกี่ยวกับการแยกผลลัพธ์หลายรายการออกเป็นหลายแถวด้วยวิธีเดียวกับที่เราทำในส่วนที่แล้ว สูตรคือ
=IFERROR(INDEX($C$5:$C$11,SMALL(IF($B$5:$B$11=E$4,ROW(C5:C11)-MIN(ROW(C5:C11))+1),ROWS($E$5:E5))),"")
และรายละเอียดอื่นๆ ทั้งหมด เช่น ขั้นตอนและการแบ่งสูตรจะเหมือนกับในส่วนที่ 3