สารบัญ
Excel มีฟังก์ชันและวิธีการต่างๆ ในการดึงค่าที่ตรงกัน ผู้ใช้สามารถเลือกการตั้งค่าได้ตามสถานการณ์ บทช่วยสอนนี้จะแสดงวิธีรับผลลัพธ์โดยใช้ INDEX MATCH กับการจับคู่หลายรายการใน Excel
ก่อนอื่น เรามาทำความรู้จักกับสมุดงานของวันนี้กัน
ในแผ่นงานของสมุดงานวันนี้ คุณจะพบผลิตภัณฑ์และความสัมพันธ์ของราคา การใช้ความสัมพันธ์นี้ เราจะเห็นตัวอย่างบางส่วนในการดึงค่าด้วย หลายเกณฑ์
ในโลกแห่งความเป็นจริง คุณอาจต้องจัดการชุดข้อมูลที่มีหลายความสัมพันธ์และกำหนดเกณฑ์ที่แตกต่างกันเพื่อสร้างผลลัพธ์ เพื่อให้ง่ายในขณะนี้ เราจะดึงราคาของชื่อและขนาดที่ตรงกันของผลิตภัณฑ์
ดาวน์โหลดสมุดงานแบบฝึกหัด
คุณสามารถดาวน์โหลดสมุดงานที่ใช้สำหรับการสาธิตพร้อมสูตรทั้งหมด จากลิงค์ด้านล่าง
INDEX-MATCH with Multiple Matches.xlsx
Basics of INDEX-MATCH
พื้นฐานของฟังก์ชัน INDEX
ฟังก์ชัน INDEX ส่งกลับค่าหรือการอ้างอิงไปยังค่าจากภายในตารางหรือช่วง สามารถใช้เพื่อดึงค่าแต่ละค่าหรือทั้งแถวและคอลัมน์ มาดูไวยากรณ์ของฟังก์ชัน INDEX กัน
INDEX(array/reference, row_number, column_number,area_number)
อาร์เรย์หรือการอ้างอิง: เซลล์หรือช่วงของเซลล์ เพื่อดู
row_number: แถวในอาร์เรย์ที่จะคืนค่าROW($B$6:$B$10)) ถ้าค่าเป็นจริง มิฉะนั้น จะส่งคืนสตริงว่าง ส่วน MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)) เป็นชุดของตัวเลข โดยที่ ROW($B$6:$B$10 ) และ ROW($B$6:$B$10) ตรงกัน นี่เป็นเพียงเคล็ดลับที่มีประโยชน์ในการจำกัดจำนวนแถวทั้งหมดในส่วนที่เลือก
👉
หลังจากนั้น SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12 , 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), “”), ROWS($A$1:A1) ค้นหา ROWS($A$1:A1) -ค่าที่น้อยที่สุดจากเอาต์พุตของส่วน IF
👉
สุดท้าย INDEX($C$6:$C $10, ขนาดเล็ก(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)) , “”), ROWS($A$1:A1))) รับเอาต์พุตของฟังก์ชันก่อนหน้าเป็นหมายเลขแถว และ ROWS($A$1:A1) เป็นหมายเลขคอลัมน์และส่งกลับ ค่าที่อยู่ในตำแหน่งนี้ในช่วง C6:C10 .
👉
ในทำนองเดียวกัน INDEX('Shop 2'!$C$6:$C$10, SMALL(IF (ISNUMBER(MATCH('Shop 2'!$B$6:$B$10, $C$12, 0)), MATCH(ROW('Shop 2'!$B$6:$B$10), ROW('Shop 2' !$B$6:$B$10)), “”) ทำเช่นเดียวกันแต่มาจากแผ่นงานที่สอง เนื่องจากชื่อแผ่นงานคือ “Shop 2” เราได้เพิ่มไว้ก่อนเลือกช่วง/เซลล์ คุณไม่จำเป็นต้อง เพื่อเพิ่มลงในแผ่นงานที่คุณกำลังทำแคล การปรุงอาหารบน ดังนั้นเราจึงไม่ได้ทำแบบนั้นสำหรับ “Shop 1” ในส่วนก่อนหน้าของสูตร
👉
สุดท้าย เราได้เพิ่มฟังก์ชันทั้งหมดในฟังก์ชัน IFERROR เดอะเหตุผลคือการคืนค่าว่างในกรณีที่เกิดข้อผิดพลาดขณะเรียกใช้สูตร
- สุดท้าย กด Enter
- ตอนนี้ เลือกเซลล์อีกครั้ง จากนั้นคลิกและลากไอคอนที่จับเติมสำหรับบางเซลล์ลงมา (ควรมากกว่าจำนวนเซลล์เอาต์พุตโดยประมาณ)
ดังนั้น เราจะพบทั้งหมด การจับคู่โดยใช้ INDEX-MATCH จากหลายเวิร์กชีตใน Excel
6. INDEX-MATCH สำหรับหลายเกณฑ์โดยไม่มีอาร์เรย์
เรายังสามารถใช้ INDEX-MATCH สำหรับการจับคู่หรือเกณฑ์หลายรายการโดยไม่ต้องมี อาร์เรย์ ตัวอย่างเช่น ลองใช้ชุดข้อมูลต่อไปนี้
แต่เราต้องการคอลัมน์ตัวช่วยเพื่อให้บรรลุเป้าหมายนั้นก่อน เราจะใช้ ฟังก์ชัน CONCATENATE นอกเหนือจากฟังก์ชันที่เป็นปัญหา ทำตามขั้นตอนเหล่านี้เพื่อดูคำแนะนำฉบับสมบูรณ์
ขั้นตอน:
- ขั้นแรก เลือกเซลล์ F5 และจดสูตรต่อไปนี้
=CONCATENATE(C5,",",D5,",",E5)
- จากนั้นกด Enter
- ตอนนี้เลือกเซลล์อีกครั้ง แล้วคลิกและลากไอคอนที่จับเติมไปที่ท้ายคอลัมน์เพื่อจำลองสูตรสำหรับเซลล์ที่เหลือ
- ต่อไป เราจะค้นหาการจับคู่ดัชนีสำหรับ 100 ทั้งหมดในชุดข้อมูลดั้งเดิม สำหรับสิ่งนั้น ให้เลือกเซลล์เพื่อเก็บค่า ( H5 ในกรณีนี้)
- จากนั้นใส่สูตรต่อไปนี้
=INDEX(B5:B19,MATCH("100,100,100",F5:F19,0))
🔎 รายละเอียดของสูตร
👉 MATCH(“100,100,100”,F5:F19,0) ค้นหาการจับคู่แบบตรงทั้งหมด 100,100,100 ในช่วง F5: F19 .
👉 จากนั้น INDEX(B5:B19,MATCH(“100,100,100”,F5:F19,0)) ส่งกลับค่าในตำแหน่งที่ค่าตรงกัน
- สุดท้าย กด Enter .
ด้วยวิธีนี้ เราสามารถใช้ INDEX-MATCH สำหรับหลายเกณฑ์หรือ จับคู่ใน Excel โดยไม่มีอาร์เรย์
วิธีคืนค่าหลายค่าในแนวตั้งโดยใช้สูตร INDEX-MATCH ใน Excel
ในกรณีที่คุณต้องการคืนค่าหลายค่าในแนวตั้งโดยใช้ INDEX-MATCH ลองดูที่ ตัวอย่างต่อไปนี้
ทำตามขั้นตอนเหล่านี้เพื่อดูว่าเราจะบรรลุสิ่งนั้นได้อย่างไรสำหรับชุดข้อมูล
ขั้นตอน:
- อย่างแรก เลือกเซลล์ F5 .
- อย่างที่สอง จดสูตรต่อไปนี้
=IFERROR(INDEX($C$5:$C$14,SMALL(IF($E$5=$B$5:$B$14,ROW($B$5:$B$14)-ROW($B$5)+1),ROW(1:1))),"")
🔎 รายละเอียดของสูตร
👉
ROW($B$5:$B$14) ผลตอบแทน อาร์เรย์ที่มีหมายเลขแถวของช่วง B5:B14 .
👉
ROW($B$5:$B$14)-ROW($B$5) +1 ส่งกลับความแตกต่างระหว่างอาร์เรย์และหมายเลขแถวของเซลล์ B5 ซึ่งเป็นเพียงอาร์เรย์ 1 ถึง 10 ในกรณีนี้
👉
IF( $E$5=$B$5:$B$14,ROW($B$5:$B$14)-ROW($B$5)+1) ตรวจสอบว่าค่าของเซลล์ E5 เท่ากันที่ใด ในช่วง B5:B14 และส่งกลับตัวเลขในอาร์เรย์ที่เป็นจริงจากค่าก่อนหน้าอาร์เรย์
👉
SMALL(IF($E$5=$B$5:$B$14,ROW($B$5:$B$14)-ROW($B$5)+1),ROW (1:1) ส่งคืนจำนวนที่น้อยที่สุดจากอาร์เรย์
👉
INDEX($C$5:$C$14,SMALL(IF($E$5=$B$5:$B $14,ROW($B$5:$B$14)-ROW($B$5)+1),ROW(1:1))) จากนั้นส่งกลับค่าในตำแหน่งนั้นในช่วง C5:C14 .
👉
สุดท้าย IFERROR(INDEX($C$5:$C$14,SMALL(IF($E$5=$B$5:$B$14,ROW($B$5: $B$14)-ROW($B$5)+1),ROW(1:1))),””) ตรวจสอบให้แน่ใจว่าหากค่าส่งผลให้เกิดข้อผิดพลาดในสูตร ค่านั้นจะส่งกลับสตริงว่าง
- สาม กด Enter
- จากนั้นเลือกเซลล์อีกครั้ง สุดท้าย คลิกและลากไอคอนที่จับเติมลงสำหรับบางเซลล์เพื่อรับค่าทั้งหมด
วิธีนี้ทำให้เราสามารถคืนค่าได้หลายค่า ในแนวตั้งโดยใช้ INDEX-MATCH ใน Excel
อ่านเพิ่มเติม: INDEX MATCH ที่มีหลายเกณฑ์ในแผ่นงานที่ต่างกัน (2 วิธี)
สรุป
นั่นคือทั้งหมดสำหรับวันนี้ เราได้ลองแสดงวิธี 2-3 วิธีในการจับคู่ดัชนีด้วยการคูณ การแข่งขัน le หวังว่าคุณจะพบว่าสิ่งนี้มีประโยชน์ อย่าลังเลที่จะแสดงความคิดเห็นหากมีสิ่งใดที่ดูเหมือนเข้าใจยาก คุณสามารถแจ้งให้เราทราบเกี่ยวกับวิธีการอื่นๆ สำหรับงาน
สำหรับคำแนะนำเพิ่มเติมเช่นนี้ โปรดไปที่ Exceldemy.com .
ค่าcolumn_number: คอลัมน์ในอาร์เรย์ที่จะส่งคืนค่า
area_number: เลือกช่วงในการอ้างอิงที่จะส่งคืนค่า จุดตัดของ row_num และ column_num นี่เป็นช่องที่ไม่บังคับ
ในขณะที่เขียนสูตร คุณสามารถเลือกได้ว่าจะให้ row_number หรือ column_number หากคุณระบุ row_number ก็เป็นทางเลือกที่จะใช้ column_number และในทางกลับกัน
คุณสามารถตรวจสอบไซต์ Microsoft support เพื่อดูไวยากรณ์ที่ละเอียดยิ่งขึ้น รายละเอียด
พื้นฐานของฟังก์ชัน MATCH
ในทางปฏิบัติ ฟังก์ชันหนึ่งที่คุณจะพบได้บ่อยเมื่อใช้ฟังก์ชัน INDEX คือ ฟังก์ชัน MATCH . ฟังก์ชัน MATCH ใช้เพื่อค้นหาตำแหน่งของรายการที่ระบุในช่วงของเซลล์ โดยจะส่งคืนตำแหน่งสัมพัทธ์ของรายการเฉพาะในช่วง
ไวยากรณ์ของฟังก์ชัน MATCH คือ
MATCH(lookup_value, lookup_array, match_type)
lookup_value: ค่าที่จะค้นหาใน lookup_array
lookup_array: ช่วงของเซลล์ที่กำลังค้นหา
<0 match_type:นี่เป็นฟิลด์ที่ไม่บังคับ คุณสามารถใส่ค่าได้ 3 ค่า1 = น้อยกว่าหรือเท่ากับ lookup_value
0 = lookup_value ที่แน่นอน
-1 = มากกว่าหรือเท่ากับ lookup_value
เพื่อความเข้าใจที่ลึกซึ้งยิ่งขึ้น คุณสามารถดูไซต์ การสนับสนุนของ Microsoft
6 ตัวอย่างที่เหมาะสมของการใช้ INDEX- สูตรจับคู่กับการจับคู่หลายรายการ
ตอนนี้เราจะนำสูตรและทฤษฎีเหล่านี้ไปใช้จริงในชุดข้อมูลของเรา เราได้แก้ไขสถานการณ์ต่างๆ โดยใช้ INDEX-MATCH ที่มีการจับคู่หลายรายการใน Excel และได้รวมไว้ในส่วนต่างๆ เพื่อความเข้าใจที่ดีขึ้น ปฏิบัติตามเพื่อดูว่าเราสามารถนำไปใช้ในสถานการณ์ต่างๆ ได้อย่างไร หรือหากคุณต้องการเฉพาะเจาะจง คุณสามารถดูได้ในตารางด้านบน
1. การจับคู่ดัชนีที่มีหลายเกณฑ์
สำหรับ ดึงค่าด้วย หลายเกณฑ์ ก่อนอื่นให้ตั้งเกณฑ์ ตัวอย่างเช่น หากคุณต้องการดึงราคาของเสื้อเชิ้ตไซส์เล็ก(ในสมุดงานของเรา) คุณต้องตั้งชื่อผลิตภัณฑ์ – เสื้อเชิ้ต และ ไซส์ – เล็ก
ตอนนี้ทำตามขั้นตอนเหล่านี้เพื่อดูว่าเราสามารถใช้สูตรเพื่อค้นหาดัชนีที่ตรงกับหลายรายการที่ตรงกันเหล่านี้ใน Excel ได้อย่างไร
ขั้นตอน:
- ก่อนอื่น เลือกเซลล์ G6 .
- จากนั้นจดสูตรต่อไปนี้
=INDEX(D5:D15,MATCH(1,(G4=B5:B15)*(G5=C5:C15),0))
🔎 รายละเอียดของสูตร
INDEX(D5:D15,MATCH(1,(G4=B5:B15)*(G5=C5: C15),0))
👉
(G4=B5:B15) และ (G5=C5:C15) เป็นทั้งเงื่อนไขและผลตอบแทนอย่างใดอย่างหนึ่ง จริง หรือ เท็จ ขึ้นอยู่กับว่าเงื่อนไขเป็นจริงหรือไม่ ตัวเลขคือ 1 หรือ 0 ดังนั้นการคูณจะส่งกลับ 1 โดยที่ทั้งคู่เป็นจริง
👉
MATCH(1,(G4=B5:B15)*(G5=C5:C15), 0) ส่งกลับตำแหน่งที่ทั้งสองเงื่อนไขอยู่จริง. ในกรณีนี้ มันคือ 1.
👉
INDEX(D5:D15,MATCH(1,(G4=B5:B15)*(G5=C5:C15),0)) ส่งกลับค่าในตำแหน่งที่ส่วนก่อนหน้าของสูตรส่งกลับ
- สุดท้าย กด Enter
นี่คือวิธีที่เราสามารถใช้ INDEX MATCH สำหรับหลายเกณฑ์หรือการจับคู่ใน Excel
อ่านเพิ่มเติม: วิธีจับคู่หลายเกณฑ์จากอาร์เรย์ต่างๆ ใน Excel
2. INDEX-MATCH ที่มีหลายเกณฑ์เป็นของแถวและคอลัมน์
ในส่วนนี้ เราจะพูดถึงวิธีการค้นหาโดยการทดสอบสองเกณฑ์ขึ้นไปใน แถวและคอลัมน์ . อาจดูยุ่งยากและซับซ้อนเล็กน้อย
เรานำการเปลี่ยนแปลงเล็กน้อยในตัวอย่างของเรา ตอนนี้ตารางของเราถูกจัดเรียงในลักษณะที่ค่าขนาด (เล็ก ใหญ่ M และ XL) แสดงถึงแต่ละคอลัมน์
คล้ายกับส่วนก่อนหน้า ตั้งค่าผลิตภัณฑ์และขนาดที่ต้องการเป็นค่าเกณฑ์
ทำตามขั้นตอนเหล่านี้เพื่อดูว่าเราสามารถใช้สูตรสำหรับสิ่งนี้ได้อย่างไร ส่วน
ขั้นตอน:
- ขั้นแรก เลือกเซลล์ I6 .
- จากนั้นจดสูตรต่อไปนี้ใน ค่ะ
=INDEX(C5:F7,MATCH(I4,B5:B7,0),MATCH(I5,C4:F4,0))
🔎 รายละเอียดของสูตร
👉
MATCH(I4,B5:B7,0) ส่งกลับค่าที่ตรงกันทุกประการของ I4 ในช่วง B5:B7 .<3
👉
ในทำนองเดียวกัน MATCH(I5,C4:F4,0) ส่งกลับค่าที่ตรงกันทุกประการของค่า I5 ในช่วง C4:F4 .
👉
สุดท้าย INDEX(C5:F7,MATCH(I4,B5:B7,0),MATCH(I5,C4:F4,0)) รับเอาต์พุตของฟังก์ชันแรกเป็นหมายเลขแถวและฟังก์ชันที่สองเป็น หมายเลขคอลัมน์และส่งกลับค่าที่อยู่ในตำแหน่งจากช่วง C5:F7 .
- หลังจากนั้น กด Enter . <15
- ดัชนีจับคู่กับ 3 เกณฑ์ใน Excel (4 ตัวอย่าง)
- INDEX MATCH ระหว่างหลายชีตใน Excel (พร้อมทางเลือกอื่น)
- รวมด้วยฟังก์ชัน INDEX-MATCH ภายใต้ Multiple เกณฑ์ใน Excel
- ดัชนีจับคู่ผลรวมหลายแถวใน Excel (3 วิธี)
- สูตรจับคู่ดัชนีเพื่อหาค่าต่ำสุดใน Excel (4 วิธีที่เหมาะสม)
- ก่อนอื่น เลือกเซลล์ G6 .
- จากนั้นจดตามสูตรนี้
- ถัดไป กด Enter บนแป้นพิมพ์ของคุณ
- ขั้นแรก เลือกเซลล์ C14 .
- ตอนนี้จดสูตรต่อไปนี้
- จากนั้นกด Enter .
- หลังจากนั้น ให้เลือกเซลล์อีกครั้ง แล้วคลิกและลากไอคอนที่จับเติมลงมาสำหรับหลายเซลล์เพื่อค้นหาค่าที่เหลือจากตาราง คุณสามารถลากเซลล์พิเศษ Excel จะหยุดค่าเมื่อไม่มีแล้ว
- ขั้นแรก เลือกเซลล์ C14 จากแผ่นงาน “Shop 1”
- จากนั้นจดสูตรต่อไปนี้
ดังนั้นเราจึงสามารถใช้ INDEX-MATCH กับหลายเกณฑ์ที่เป็นของแถวและคอลัมน์
อ่านเพิ่มเติม: ดัชนี Excel จับคู่เกณฑ์เดียว/หลายรายการพร้อมผลลัพธ์เดียว/หลายรายการ
การอ่านที่คล้ายกัน
3. INDEX-MATCH จากคอลัมน์ที่ไม่ติดกัน
ในส่วนนี้ เราจะแสดงตัวอย่างวิธีการดึงข้อมูลการจับคู่ ค่า ng โดยใช้สองคอลัมน์ที่ไม่ติดกัน นอกจากนี้ เราต้องการ ฟังก์ชัน IFERROR สำหรับสถานการณ์นี้
นี่จะเป็นชุดข้อมูลสำหรับการสาธิต
ทำตามขั้นตอนเหล่านี้ เพื่อดูว่าเราสามารถใช้ INDEX-MATCH สำหรับคอลัมน์ที่ไม่ติดกัน (ผลิตภัณฑ์และจำนวน) ในชุดข้อมูลนี้ได้อย่างไร
ขั้นตอน:
=IFERROR(INDEX(B4:D7,MATCH(G5,B4:B7,0),MATCH(F6,B4:D4,0)),"No Value")
🔎 รายละเอียดของสูตร
IFERROR(INDEX(B4:D7,MATCH(G5,B4:B7,0),MATCH(F6,B4:D4,0)),” ไม่มีค่า”)
👉
MATCH(G5,B4:B7,0) ค้นหาค่าที่ตรงกันทุกประการของเซลล์ G5 ในช่วง B4:B7 .
👉
และ MATCH(F6,B4:D4,0) ค้นหาค่าที่ตรงกันของ F6 คือช่วง B4:D4 .
👉
จากนั้น INDEX(B4:D7,MATCH(G5,B4:B7,0),MATCH(F6,B4:D4,0)) ใช้เวลา ค่าฟังก์ชันแรกเป็นหมายเลขแถวและค่าฟังก์ชันที่สองเป็นหมายเลขคอลัมน์ และส่งกลับค่าในตำแหน่งนั้นในช่วง B4:D7 .
👉
สุดท้าย IFERROR(INDEX (B4:D7,MATCH(G5,B4:B7,0),MATCH(F6,B4:D4,0)),”ไม่มีค่า”) ส่งคืนสตริง “ไม่มีค่า” หากมีข้อผิดพลาดขณะดำเนินการ สูตร มิฉะนั้น จะส่งคืนค่าปกติ
เป็น ผลลัพธ์ เราสามารถค้นหาการจับคู่ที่ต้องการโดยใช้ INDEX-MATCH จากคอลัมน์ที่ไม่ติดกันสำหรับเกณฑ์ที่เลือก แม้สำหรับหลายรายการใน Excel
4. INDEX-MATCH จากหลายตาราง
หากต้องการหาคู่ที่ตรงกันจากหลายๆ ตาราง เราสามารถใช้สูตร INDEX-MATCH นอกเหนือจากฟังก์ชันนี้ เราจะต้องมีฟังก์ชัน SMALL , ISNUMBER , ROW , COUNTIF และ IFERROR ด้วย .
ในแผ่นงานตัวอย่าง เรามีสินค้าของร้านค้า 2 รายการ เราจะดูวิธีการใช้แผ่นนี้เพื่อทำงาน
ทำตามขั้นตอนเหล่านี้เพื่อดูว่าเราสามารถใช้ฟังก์ชันเหล่านี้ร่วมกับการจับคู่ดัชนีที่มีการจับคู่หลายรายการจากตารางชุดนี้ใน Excel ได้อย่างไร .
ขั้นตอน:
=IFERROR(INDEX($C$6:$C$10, SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), ""), ROWS($A$1:A1))), INDEX($F$6:$F$10, SMALL(IF(ISNUMBER(MATCH($E$6:$E$10, $C$12, 0)), MATCH(ROW($E$6:$E$10), ROW($E$6:$E$10)), ""), ROWS($A$1:A1)-COUNTIF($B$6:$B$10, $C$12))))
🔎 รายละเอียดสูตร
IFERROR(INDEX($C$6:$C$10, SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH( ROW($B$6:$B$10), ROW($B$6:$B$10)), “”), ROWS($A$1:A1))), INDEX($F$6:$F$10, SMALL( IF(ISNUMBER(MATCH($E$6:$E$10, $C$12, 0)), MATCH(ROW($E$6:$E$10), ROW($E$6:$E$10)), “”) , ROWS($A$1:A1)-COUNTIF($B$6:$B$10, $C$12)))))
👉
MATCH($B$6:$B$10, $C$12, 0) ค้นหาค่าที่ตรงกันทุกประการของ C12 ในช่วง B6:B10 .
👉
ISNUMBER(MATCH($B $6:$B$10, $C$12, 0)) ตรวจสอบว่าค่าเป็นตัวเลขในฟังก์ชันหรือไม่
👉
IF(ISNUMBER(MATCH($B$6:$B$10 , $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), “”) ROW($B$6:$B$1 0)) ตรวจสอบว่าฟังก์ชันก่อนหน้าเป็นตัวเลขหรือไม่ ถ้าเป็นเช่นนั้น มันจะคืนค่าเอาต์พุตของ MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)) ซึ่งเป็นตำแหน่งที่อาร์เรย์ของแถว ตัวเลขจะถูกจับคู่ในฟังก์ชัน ROW ที่หนึ่งและที่สอง มิฉะนั้น จะส่งคืนสตริงว่าง
👉
SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6: $B$10), แถว($B$6:$B$10)),“”), ROWS($A$1:A1)) ส่งคืน ROWS($A$1:A1) - ค่าที่น้อยที่สุดจากอาร์เรย์
👉
สุดท้าย INDEX($C$6:$C$10, SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), “”), ROWS($A$1:A1))) ส่งกลับค่าในตำแหน่งนั้นในช่วง C6:C10 .
👉
INDEX($F$6:$F$10, SMALL(IF(ISNUMBER(MATCH($E$6:$E$10, $C$12, 0)), MATCH(ROW($E$6: $E$10), ROW($E$6:$E$10)), “”), ROWS($A$1:A1)-COUNTIF($B$6:$B$10, $C$12))) ไม่ สิ่งเดียวกัน แต่จากตารางที่สองเนื่องจากช่วงต่างกันอย่างชัดเจนในส่วนนี้ของสูตร
👉
สุดท้าย ฟังก์ชันทั้งหมดจะรับฟังก์ชันทั้งหมดและส่งกลับ INDEX-MATCH การรวมกัน ผลกระทบของฟังก์ชัน IFERROR คือหากมีข้อผิดพลาดขณะเรียกใช้สูตร ฟังก์ชันจะไม่ส่งกลับค่าใดๆ
นี่คือวิธีที่เราสามารถใช้ INDEX-MATCH โดยใช้เกณฑ์จาก หลายตารางใน Excel
อ่านเพิ่มเติม: หลายเกณฑ์ใน Excel โดยใช้ฟังก์ชัน INDEX, MATCH และ COUNTIF
5. INDEX-MATCH จาก แผ่นงานหลายแผ่น
เราสามารถใช้ INDEX-MATCHสูตรบนแผ่นงานต่างๆ ที่นี่เรามีสองตารางนี้บนแผ่นงานที่แตกต่างกันสองแผ่น
ซื้อแผ่นงาน 1 แผ่นสำหรับร้าน 1 และซื้อแผ่นงาน 2 แผ่นสำหรับร้าน 2
ในการสร้างผลลัพธ์ สิ่งที่เราต้องทำก็แค่ระบุชื่อแผ่นงานไว้ข้างหน้าการอ้างอิงเซลล์ ทำตามขั้นตอนเหล่านี้เพื่อดูรายละเอียดเพิ่มเติม
ขั้นตอน:
=IFERROR(INDEX($C$6:$C$10, SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), ""), ROWS($A$1:A1))), INDEX('Shop 2'!$C$6:$C$10, SMALL(IF(ISNUMBER(MATCH('Shop 2'!$B$6:$B$10, $C$12, 0)), MATCH(ROW('Shop 2'!$B$6:$B$10), ROW('Shop 2'!$B$6:$B$10)), ""), ROWS($A$1:A1)-COUNTIF($B$6:$B$10, $C$12))))
🔎 รายละเอียดของสูตร
IFERROR(INDEX($C$6:$C$10, SMALL(IF(ISNUMBER(MATCH($B$6:$ B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), “”), ROWS($A$1:A1))) , INDEX('ร้าน 2'!$C$6:$C$10, SMALL(IF(ISNUMBER(MATCH('Shop 2'!$B$6:$B$10, $C$12, 0)), MATCH(ROW(' ร้าน 2'!$B$6:$B$10), ROW('ร้าน 2'!$B$6:$B$10)), “”), ROWS($A$1:A1)-COUNTIF($B$6:$ B$10, $C$12))))
👉
MATCH($B$6:$B$10, $C$12, 0) ค้นหาค่าที่ตรงกันทุกประการ ของเซลล์ C12 ในช่วง B6:B10 .
👉
ISNUMBER(MATCH($B$6:$B$10, $C$12, 0) ) ตรวจสอบว่าเอาต์พุตของฟังก์ชันก่อนหน้าเป็นตัวเลขหรือไม่ ซึ่งจะเป็นตัวตัดสินว่ามีการแข่งขันหรือไม่ นี่เป็นเพียงการแปลงค่าตัวเลขเป็นบูลีน
👉
จากนั้น IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($ B$6:$B$10), ROW($B$6:$B$10)), “”) ตรวจสอบค่าบูลีนและส่งกลับ MATCH(ROW($B$6:$B$10),