ค้นหาหลายเงื่อนไขด้วย INDEX-MATCH
จับคู่หลายคอลัมน์พร้อมกันเพื่อระบุแถวที่ต้องการ
ค้นหาหลายเงื่อนไขด้วย INDEX-MATCH เป็นบทเรียน Excel Formulas Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Excel Formulas Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Excel Formulas Academy มีบทเรียนทั้งหมด 4 บทเรียน
เมื่อคีย์เดียวไม่เพียงพอ
บางครั้งคอลัมน์เดียวไม่สามารถระบุแถวได้อย่างไม่ซ้ำกัน คุณอาจต้องการราคาของสินค้า ในขนาดที่ระบุ หรือเงินเดือนของพนักงาน ในแผนกที่ระบุ
กรณีนี้ต้องใช้ การค้นหาหลายเงื่อนไข ซึ่งจับคู่จากสองคอลัมน์ขึ้นไปพร้อมกัน เพื่อระบุแถวที่ต้องการได้อย่างแม่นยำ
INDEX-MATCH จัดการเรื่องนี้ได้อย่างยืดหยุ่น โดยรวมเงื่อนไขต่าง ๆ เป็นการทดสอบการจับคู่เพียงครั้งเดียว โดยไม่ต้องเพิ่มคอลัมน์ช่วย
แนวทางใช้คอลัมน์ช่วย
แนวคิดที่เข้าใจง่ายที่สุดคือรวมคอลัมน์คีย์เข้าด้วยกัน เพิ่มคอลัมน์ช่วยที่นำสินค้าและขนาดมาต่อกัน แล้วจึงค้นหาแบบปกติจากคอลัมน์นั้น
ตัวอย่างเช่น เซลล์ช่วยอาจมีค่า =A2&"|"&B2 ซึ่งให้ผลเป็น "Shirt|Large" จากนั้นคุณจึงใช้ MATCH ค้นหา "Shirt|Large" ในคอลัมน์ที่รวมกันนั้น
วิธีนี้ใช้ได้จริง แต่ทำให้แผ่นงานดูรก ฉากถัดไปจะแสดงวิธีข้ามการใช้คอลัมน์ช่วยไปโดยสิ้นเชิง
=A2 & "|" & B2จับคู่สองเงื่อนไขพร้อมกัน
เคล็ดลับสำคัญคือคูณการทดสอบเงื่อนไขทั้งสองภายใน MATCH
(A2:A10=G1) ให้เป็นอาร์เรย์ TRUE/FALSE สำหรับเงื่อนไขแรก ส่วน (B2:B10=G2) ทำเช่นเดียวกันสำหรับเงื่อนไขที่สอง เมื่อนำมาคูณกันเป็น (A2:A10=G1)*(B2:B10=G2) จะได้ค่า 1 เฉพาะตำแหน่งที่ทั้งสองเงื่อนไขเป็น TRUE และได้ค่า 0 ในตำแหน่งอื่น
จากนั้น MATCH จะค้นหาค่า 1 เพื่อหาแถวที่ตรงตามทั้งสองเงื่อนไข
=(A2:A10=G1) * (B2:B10=G2)เหตุใดการคูณจึงหมายถึง AND
ในตารางคำนวณ TRUE จะทำหน้าที่เหมือน 1 และ FALSE จะทำหน้าที่เหมือน 0 การคูณค่าทั้งสองจึงเลียนแบบตรรกะ AND:
- 1 คูณ 1 = 1 (ตรงตามทั้งสองเงื่อนไข)
- 1 คูณ 0 = 0
- 0 คูณ 1 = 0
- 0 คูณ 0 = 0
ดังนั้นเฉพาะแถวที่ตรงตามทั้งสองเกณฑ์เท่านั้นที่จะให้ค่าเป็น 1 แถวอื่นทั้งหมดจะกลายเป็น 0 ค่า 1 เพียงค่าเดียวนั้นจะระบุแถวที่เราต้องการ
ค้นหาแถวด้วย MATCH
ตอนนี้ให้นำอาร์เรย์ที่คูณกันไปครอบด้วย MATCH โดยค้นหาค่าที่ตรงกันทุกประการคือ 1
MATCH(1, (A2:A10=G1)*(B2:B10=G2), 0) จะส่งคืนตำแหน่งของแถวแรกที่ทั้งสองเงื่อนไขเป็น TRUE
หากชุดค่าที่ตรงกันอยู่ในแถวข้อมูลที่สี่ MATCH จะส่งคืนค่า 4 และตำแหน่งนั้นคือสิ่งที่ INDEX ต้องใช้เพื่อดึงคำตอบ
=MATCH(1, (A2:A10=G1)*(B2:B10=G2), 0)ส่งคืนค่าด้วย INDEX
ส่งผลลัพธ์จาก MATCH ให้ INDEX ซึ่งทำงานกับคอลัมน์ที่คุณต้องการจริง ๆ เช่น ราคาใน C2:C10
สูตรสมบูรณ์มีความหมายว่า จาก C2:C10 ให้ส่งคืนค่าที่อยู่ในแถวซึ่งสินค้าตรงกับ G1 และขนาดตรงกับ G2
นี่คือการค้นหาหลายเงื่อนไขอย่างแท้จริง โดยไม่ต้องมีคอลัมน์ช่วยและไม่ต้องจัดเรียงข้อมูลใหม่
=INDEX(C2:C10, MATCH(1, (A2:A10=G1)*(B2:B10=G2), 0))การป้อนสูตรให้ถูกต้อง
สูตรนี้ประมวลผลอาร์เรย์ของเงื่อนไข ใน เอ็กเซลรุ่นใหม่ และ Google ชีต เพียงกด Enter ก็ใช้งานได้
ใน เอ็กเซลรุ่นเก่า (ก่อนมีอาร์เรย์ไดนามิก) คุณต้องยืนยันสูตรนี้เป็นสูตรอาร์เรย์ด้วย Ctrl+Shift+Enter ซึ่งจะเพิ่มวงเล็บปีกกา หากผลลัพธ์ไม่ถูกต้องหรือแสดงข้อผิดพลาดในเอ็กเซลรุ่นเก่า ขั้นตอนการยืนยันนี้มักเป็นสิ่งที่ขาดไป
=INDEX(C2:C10, MATCH(1, (A2:A10=G1)*(B2:B10=G2), 0))เพิ่มเงื่อนไขที่สาม
ต้องการใช้สามเกณฑ์หรือไม่ เพียงคูณการทดสอบเพิ่มอีกหนึ่งรายการ สมมติว่าคุณต้องการจับคู่สีในคอลัมน์ D กับอินพุต G3 ด้วย
ตัวประกอบ (range=criterion) ที่เพิ่มเข้ามาแต่ละรายการจะจำกัดผลลัพธ์ให้แคบลง เฉพาะแถวที่ทุกเงื่อนไขเป็น TRUE เท่านั้นจึงจะยังมีผลคูณเป็น 1 หากมีค่าใดเป็น FALSE ผลคูณทั้งหมดจะกลายเป็น 0
รูปแบบนี้ขยายใช้ได้กับคอลัมน์จำนวนเท่าใดก็ได้ตามต้องการ
=INDEX(C2:C10, MATCH(1, (A2:A10=G1)*(B2:B10=G2)*(D2:D10=G3), 0))ตัวอย่างแบบลงมือทำ
ข้อมูล: A = สินค้า, B = ขนาด, C = ราคา คุณต้องการราคาของ "Shirt" ขนาด "Large"
- G1 = "Shirt", G2 = "Large"
- อาร์เรย์เงื่อนไขจะให้ค่า 1 เฉพาะแถว Shirt+Large เช่น แถวที่ 4
- MATCH(1, ..., 0) ส่งคืนค่า 4
- INDEX(C2:C10, 4) ส่งคืนราคาของแถวนั้น
เมื่อเปลี่ยนอินพุตค่าใดค่าหนึ่ง สูตรจะค้นหาแถวที่ถูกต้องใหม่ทันที
=INDEX(C2:C10, MATCH(1, (A2:A10=G1)*(B2:B10=G2), 0))ข้อควรระวังและความปลอดภัย
โปรดคำนึงถึงเรื่องเหล่านี้:
- ช่วงมีขนาดเท่ากัน: ช่วงเงื่อนไขทุกช่วงและคอลัมน์ของ INDEX ต้องมีความสูงเท่ากัน
- ไม่มีรายการที่ตรงกัน: หากไม่มีแถวใดตรงตามเกณฑ์ทั้งหมด MATCH จะส่งคืน #N/A ให้ครอบสูตรทั้งหมดด้วย
IFERROR - รายการซ้ำ: หากมีมากกว่าหนึ่งแถวที่ตรงกัน MATCH จะส่งคืนเฉพาะรายการแรก โปรดกำหนดเกณฑ์ให้เฉพาะเจาะจงมากพอที่จะไม่ซ้ำกัน
=IFERROR(INDEX(C2:C10, MATCH(1, (A2:A10=G1)*(B2:B10=G2), 0)), "No match")SUMPRODUCT เป็นทางเลือก
หากมีหลายแถวที่ตรงกัน และคุณต้องการ รวมยอด ค่าเหล่านั้นแทนการดึงมาเพียงค่าเดียว SUMPRODUCT ก็เป็นทางเลือกที่เหมาะสมแทน INDEX-MATCH ที่ต้องป้อนเป็นสูตรอาร์เรย์
ฟังก์ชันนี้จะคูณอาร์เรย์เงื่อนไขเข้ากับคอลัมน์ค่า แล้วนำผลลัพธ์มาบวกกัน ดังนั้นจะมีเพียงแถวที่ตรงตามเกณฑ์ทั้งสองข้อเท่านั้นที่มีส่วนในผลรวม ไม่จำเป็นต้องกด Ctrl+Shift+Enter เพราะ SUMPRODUCT รองรับอาร์เรย์โดยตรง
ใช้ INDEX-MATCH เพื่อดึงค่าที่ตรงกันเพียงค่าเดียว และใช้ SUMPRODUCT เพื่อรวมค่าจากรายการที่ตรงกันทั้งหมด
=SUMPRODUCT((A2:A10=G1) * (B2:B10=G2) * C2:C10)ตรวจสอบความเข้าใจอย่างรวดเร็ว
ทดสอบความรู้เกี่ยวกับการค้นหาด้วยหลายเกณฑ์
สรุปบทเรียน
สำหรับการค้นหาด้วยหลายเกณฑ์โดยใช้ INDEX-MATCH:
- คูณอาร์เรย์เงื่อนไขเข้าด้วยกัน:
(A=G1)*(B=G2)จะให้ค่า 1 เฉพาะตำแหน่งที่ตรงตามเงื่อนไขทั้งหมด (ตรรกะ AND) MATCH(1, ..., 0)จะค้นหาตำแหน่งของแถวนั้นINDEX(returnCol, position)จะส่งกลับค่า
เพิ่มตัวประกอบ *(range=criterion) สำหรับเงื่อนไขเพิ่มเติม ตรวจสอบให้ช่วงมีความสูงเท่ากัน ยืนยันสูตรด้วย Ctrl+Shift+Enter ใน Excel รุ่นเก่า และป้องกันข้อผิดพลาดด้วย IFERROR
=INDEX(C2:C10, MATCH(1, (A2:A10=G1)*(B2:B10=G2), 0))คำถามที่พบบ่อย
บทเรียน “ค้นหาหลายเงื่อนไขด้วย INDEX-MATCH” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ค้นหาหลายเงื่อนไขด้วย INDEX-MATCH” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Excel Formulas Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Excel Formulas Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ค้นหาหลายเงื่อนไขด้วย INDEX-MATCH”
จับคู่หลายคอลัมน์พร้อมกันเพื่อระบุแถวที่ต้องการ คุณปฏิบัติ Excel Formulas Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Excel Formulas Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Excel Formulas Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “ค้นหาหลายเงื่อนไขด้วย INDEX-MATCH” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Excel Formulas Academy นี้ได้ไหม
ได้ บทเรียน Excel Formulas Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ค้นหาแบบสองทางด้วย INDEX-MATCH-MATCH
- ค้นหาค่าที่ตรงกันรายการสุดท้าย
- ค้นหาหลายเงื่อนไขด้วย INDEX-MATCH
- การจับคู่โดยประมาณสำหรับตารางแบ่งระดับ