สารบัญ
หนึ่งในฟังก์ชันที่น่าทึ่งและใช้กันอย่างแพร่หลายที่สุดของ Excel คือ ฟังก์ชัน VLOOKUP จนถึงตอนนี้ เราได้เรียนรู้ที่จะดึงคู่ที่ตรงกันจากช่วงของเซลล์โดยใช้ฟังก์ชันนี้ คุณมักจะพบกับสถานการณ์ที่คุณจำเป็นต้องได้รับค่าที่ตรงกันทั้งหมดสำหรับตัวระบุเฉพาะ ในบทความนี้ เราจะสาธิตวิธีดึงรายการที่ตรงกันหลายรายการจากช่วงของเซลล์โดยใช้ ฟังก์ชัน VLOOKUP ใน Excel
ดาวน์โหลดสมุดงานแบบฝึกหัด
คุณสามารถ ดาวน์โหลดสมุดงาน Excel ต่อไปนี้เพื่อความเข้าใจที่ดีขึ้นและฝึกฝนด้วยตัวเอง
การแสดง Vlookup ด้วยการจับคู่หลายรายการ.xlsx2 ขั้นตอนในการทำ Vlookup ด้วยการจับคู่หลายรายการใน Excel
เรามี ประวัติหนังสือของร้านหนังสือมาร์ติน ชุดข้อมูลนี้มี ประเภทหนังสือ , ชื่อหนังสือ และ ผู้แต่ง ของหนังสือบางเล่มภายใต้คอลัมน์ B , C , และ D ตามลำดับ
วันนี้เป้าหมายของเราคือดึงข้อมูลที่ตรงกันทั้งหมดของหนังสือแต่ละประเภทออกมาโดยใช้ฟังก์ชัน VLOOKUP . เราจะดำเนินการในสองขั้นตอน เรามาสำรวจทีละรายการ
ที่นี่เราใช้เวอร์ชัน Microsoft Excel 365 คุณสามารถใช้เวอร์ชันอื่นได้ตามสะดวก
📌 ขั้นตอน 01: สร้างชื่อเฉพาะสำหรับแต่ละค่าการค้นหา
- ที่จุดเริ่มต้น ให้แทรกคอลัมน์ใหม่ที่มีส่วนหัว คอลัมน์ตัวช่วย ไปทางซ้ายของคอลัมน์ค้นหา ประเภทหนังสือ และป้อนสูตรนี้ในเซลล์ B5 .
=C5&COUNTIF(C5:$C$25,C5)
รายละเอียดของสูตร- COUNTIF(C5:$C$25,C5) ส่งกลับจำนวนเซลล์ทั้งหมดในช่วง C5:C25 ( ประเภทหนังสือ ) ที่มีค่าในเซลล์ C5 ( นวนิยาย ) ดู ฟังก์ชัน COUNTIF สำหรับรายละเอียด
- พูดง่ายๆ คือ มีนิยายกี่เล่ม มันคือ 7 .
- C5&COUNTIF(C5:$C$25,C5) เชื่อมค่าใน เซลล์ C5 ( นวนิยาย ) ด้วย
- ดังนั้นจึงส่งคืน Novel7 .
เมื่อลากเครื่องมือ Fill Handle C5 เพิ่มขึ้นทีละรายการ เช่น C5 , C6 , C7 ... แต่ C25 คงที่ ดังนั้น สำหรับ ประเภทหนังสือ แต่ละประเภท รายการก่อนหน้านี้จะถูกแยกออกและสร้างชื่อใหม่
ตัวอย่างเช่น ในกรณีของนวนิยาย Novel1 ถึง Novel7 ถูกสร้างขึ้น และคล้ายกับ บทกวี และหนังสือประเภทอื่นๆ
- จากนั้นกด ENTER .
- หลังจากนั้น นำเคอร์เซอร์ไปทางขวา -มุมล่างของเซลล์ B5 และจะมีลักษณะเป็นเครื่องหมายบวก (+) ที่จริงแล้วมันคือเครื่องมือ Fill Handle
- ตอนนี้ ดับเบิลคลิกที่มัน
มันคัดลอกสูตรนี้ ให้กับเซลล์ส่วนที่เหลือ คุณจะพบค่าการค้นหาทั้งหมดที่มีชื่อเฉพาะ เช่น Novel1 , Novel2…, Poetry1 , Poetry2… ,ฯลฯ
📌 ขั้นตอนที่ 02: ใช้ฟังก์ชัน VLOOKUP
- ก่อนอื่น สร้างคอลัมน์ใหม่ด้วย ส่วนหัวของคอลัมน์ เป็นค่าการค้นหา
- อย่างที่สอง ใส่สูตรต่อไปนี้ในเซลล์ G5 ซึ่งเป็นเซลล์แรกของคอลัมน์นี้
=VLOOKUP(G$4&ROW($A$1:INDIRECT("A"&COUNTIF($C$5:$C$25,G$4))),$B$5:$E$25,3,FALSE)
รายละเอียดสูตร- COUNTIF($C$5:$C $25,G$4) บอกจำนวนเซลล์ในช่วง C5:C25 ( Book Type ) ที่มีค่าในเซลล์ G4 ( นวนิยาย ).
- พูดง่ายๆ คือ มีนิยายทั้งหมดกี่เล่ม มันคือ 7 .
เราใช้การอ้างอิงเซลล์สัมบูรณ์ของช่วง C5:C25 ( $C $5:$C$25 ) เนื่องจากเราต้องการให้ไม่เปลี่ยนแปลงหากเราคัดลอกสูตรไปยังเซลล์ใดๆ
- INDIRECT(“A”&COUNTIF($C$5: $C$25,G$4)) กลายเป็น INDIRECT(“A”&7) และส่งกลับการอ้างอิงเซลล์ A7 ดูรายละเอียด ฟังก์ชัน INDIRECT
- ROW($A$1:INDIRECT(“A”&COUNTIF($C$5:$C$25,G$4))) ตอนนี้กลายเป็น ROW(A1:A7) ดูรายละเอียดได้ที่ ฟังก์ชัน ROW
- ส่งคืนอาร์เรย์จาก 1 ถึง 7 เช่น {1, 2, 3, 4, 5, 6, 7} .
เราใช้ $A$1 เพราะเราไม่ต้องการให้สูตรเปลี่ยนแปลงถ้าเราคัดลอกสูตรไปยังเซลล์อื่น
- <14 G$4&ROW($A$1:INDIRECT(“A”&COUNTIF($C$5:$C$25,G$4))) ตอนนี้เชื่อมค่าในเซลล์ G4 ( นวนิยาย ) กับอาร์เรย์ที่ส่งคืนโดย ฟังก์ชัน ROW และส่งคืนอาร์เรย์อื่น
- ดังนั้นจึงคืนค่า {Novel1, Novel2, …, Novel7} .
- VLOOKUP(G$4 &ROW($A$1:INDIRECT(“A”&COUNTIF($C$5:$C$25,G$4))),$B$5:$E$25,3,FALSE) กลายเป็น VLOOKUP({Novel1, Novel2, …, Novel7},$B$5:$E$25,3,FALSE) .
ค้นหาค่าแต่ละค่าของอาร์เรย์ {Novel1 , Novel2, … Novel7} ในคอลัมน์ค้นหา B .
จากนั้นจะส่งกลับชื่อที่สอดคล้องกันของนวนิยายจากคอลัมน์ 3 (เป็น col_index_num คือ 3 ) ดังนั้นเราจึงได้รับรายชื่อนวนิยายทั้งหมด
- ตามปกติ ให้กดปุ่ม ENTER
หมายเหตุ: เป็นสูตรอาร์เรย์ ดังนั้นอย่าลืมกด Ctrl + Shift + Enter เว้นแต่คุณจะอยู่ใน Excel 365 .
และสำหรับ ประเภทหนังสือ ,
- ในตอนแรก ให้ใส่ชื่อของพวกเขาเคียงข้างกันเป็น ส่วนหัวของคอลัมน์ แล้วลาก Fill Handle .
อ่านเพิ่มเติม: INDIRECT VLOOKUP ใน Excel
การอ่านที่คล้ายกัน
- VLOOKUP ไม่ทำงาน (8 เหตุผลและแนวทางแก้ไข)
- Excel LOOKUP เทียบกับ VLOOKUP: ด้วย 3 ตัวอย่าง
- เหตุใด VLOOKUP จึงส่งคืน #N/A เมื่อมีการแข่งขัน? (5 สาเหตุและแนวทางแก้ไข)
- ใช้ VLOOKUP ที่มีหลายเกณฑ์ใน Excel (6 วิธี + ทางเลือก)
- Excel VLOOKUP เพื่อหาค่าสุดท้าย ในคอลัมน์ (ด้วยทางเลือก)
วิธีทางเลือกใน Vlookup ที่มีการจับคู่หลายรายการใน Excel
หากวิธีก่อนหน้านี้ดูอันตราย ไม่ต้องกังวล มีตัวเลือกเพิ่มเติม
1. การใช้ฟังก์ชันตัวกรอง
นี่เป็นวิธีที่ง่ายที่สุด ในที่นี้ เราจะใช้เพียง ฟังก์ชันตัวกรอง ทำตามขั้นตอนง่ายๆ เหล่านี้
📌 ขั้นตอน:
- ขั้นแรก จด ประเภทหนังสือ<10 เป็น ส่วนหัวของคอลัมน์ และป้อนสูตรต่อไปนี้ในเซลล์ F5 .
=FILTER($C$5:$C$25,$B$5:$B$25=F$4)
รายละเอียดสูตรที่นี่
- $C$5:$C$25 ( ชื่อหนังสือ<10 ) คือ lookup_array เรากำลังมองหาชื่อหนังสือ คุณใช้อันของคุณ
- $B$5:$B$25 ( Book Type ) คือ matching_array . เราต้องการจับคู่ประเภทหนังสือ คุณใช้ของคุณตามนั้น
- F4 ( นวนิยาย ) คือ matching_value เราอยากให้เข้ากับนิยาย คุณใช้มันตาม
- จากนั้น กด ENTER .
ตอนนี้ ถ้าคุณต้องการ ชื่อหนังสือ จาก ประเภทหนังสือ ทั้งหมด,
- เริ่มแรก ให้ใส่ชื่อเป็น ส่วนหัวของคอลัมน์ เคียงข้างกันแล้วลากเครื่องมือ Fill Handle
2. การใช้ชุดค่าผสมของ INDEX, SMALL และ ROWS ฟังก์ชัน (เข้ากันได้กับ Excel เวอร์ชันเก่า)
ฟังก์ชัน ตัวกรอง คือมีเฉพาะใน Office 365 ดังนั้น หากคุณใช้ Excel เวอร์ชันเก่า ก็ไม่ต้องกังวล เรามีวิธีแก้ปัญหาอื่นสำหรับคุณ มันง่ายและสะดวก เพียงทำตาม
📌 ขั้นตอน:
- โดยหลัก ให้ใส่ ประเภทหนังสือ เป็น ส่วนหัวของคอลัมน์ ในเซลล์ F4 และป้อนสูตรนี้ในเซลล์ F5
=IFERROR(INDEX($C$5:$C$25,(SMALL(IF($B$5:$B$25=F4,ROW(B5:B25)-ROWS(B1:B4),""),(ROW(B5:B25)-ROWS(B1:B4))))),"")
การแยกสูตร- ROW(B5:B25) ส่งคืนอาร์เรย์ของ {5, 6, 7, …, 25} . และ ROWS(B1:B4) คืนค่า 4 ดังนั้น ROW(B5:B25)-ROWS(B1:B4) จะคืนค่าอาร์เรย์ของ {1, 2, 3, …, 21} ดูฟังก์ชัน ROW และ ROWS สำหรับรายละเอียด
- IF($B$5:$B$25=F4,ROW(B5:B25)-ROWS (B1:B4),””) ส่งกลับตัวเลขที่สอดคล้องกันจากอาร์เรย์ {1, 2, 3, …, 21} ค่าในเซลล์ F4 ( นวนิยาย ) จับคู่ค่าในเซลล์ใดๆ ของช่วง B5:B25 ( ประเภทหนังสือ ) มิฉะนั้นจะส่งกลับเซลล์ว่าง ดูรายละเอียด ฟังก์ชัน IF
- SMALL(IF($B$5:$B$25=F4 ,ROW(B5:B25)-ROWS(B1:B4),””),(ROW(B5:B25)-ROWS(B1:B4))) กลายเป็น SMALL({1, …, 3 , …, 6, …, 20, …},{1, 2, 3, 4, …., 21}) และส่งกลับตัวเลขก่อน จากนั้นส่งข้อผิดพลาด #NUM! ในช่องว่าง เซลล์. ดูรายละเอียด ฟังก์ชัน SMALL
- INDEX($C$5:$C$25,(SMALL( IF($B$5:$B$25=F4,ROW(B5:B25)-ROWS(B1:B4),””),(ROW(B5:B25)-ROWS(B1:B4))))) กลายเป็น INDEX($C$5:$C$25,{1,3,6,11,…,#NUM!}) และส่งกลับค่า ชื่อหนังสือ (ชื่อนวนิยาย) และข้อผิดพลาด #NUM! ดูรายละเอียดใน ฟังก์ชัน INDEX
- สุดท้าย เรารวมสูตรไว้ใน ฟังก์ชัน IFERROR เพื่อเปลี่ยนข้อผิดพลาดให้เป็นเซลล์ว่าง
- หลังจากนั้น กด ENTER .
- ตอนนี้ ถ้าคุณต้องการ ให้แทรก ประเภทหนังสือ อื่นเป็น ส่วนหัวของคอลัมน์ แล้วลาก จุดจับเติม คุณจะได้รับหนังสือประเภทหนังสืออื่นๆ
3. Vlookup ที่มีการจับคู่หลายรายการและส่งคืนผลลัพธ์ในแถว
ในก่อนหน้า วิธีการ เราได้ผลลัพธ์ในคอลัมน์แนวตั้ง แต่ถ้าเราต้องการรับค่าเรียงกันจะทำอย่างไร? ที่นี่ เราจะได้ชื่อ ผู้แต่ง สำหรับ ประเภทหนังสือ ต่างๆ ติดต่อกัน เพียงทำตามขั้นตอนด้านล่างอย่างระมัดระวัง
📌 ขั้นตอน:
- ในตอนแรก ให้ไปที่เซลล์ G5 และจดสูตรด้านล่าง
=IFERROR(INDEX($D$5:$D$19,SMALL(IF($F5=$B$5:$B$19,ROW($D$5:$D$19)-4,""),COLUMN()-6)),"")
สูตรนี้คล้ายกับสูตรก่อนหน้า ดังนั้น หากคุณพบปัญหาใดๆ ในการทำความเข้าใจสูตรนี้ โปรดดู คำอธิบายก่อนหน้า
- จากนั้น แตะปุ่ม ENTER
แต่มีผู้แต่งคนอื่นๆ ที่มีนิยายอยู่ในชุดข้อมูลนี้ แล้วเราจะหาได้อย่างไร
เพียงลาก Fill Handle ไปทางขวาจนถึงเซลล์ K5 เพื่อรับอื่นๆ ผู้เขียน ของ นวนิยาย นอกจากนี้ ลากเครื่องมือ Fill Handle ไปยังเซลล์ K7 เพื่อรับชื่อ ผู้แต่ง สำหรับหนังสือประเภทต่างๆ ดูภาพด้านล่างเพื่อความชัดเจน
วิธี Vlookup การจับคู่จำนวนมากที่มีหลายเกณฑ์
ในตัวอย่างก่อนหน้านี้ เราพบค่าสำหรับเกณฑ์เดียว ตัวอย่างเช่น เราได้รับชื่อหนังสือสำหรับประเภทหนังสือเฉพาะ แต่ในที่นี้ เราจะใช้หลายเกณฑ์ เราจะค้นหา นวนิยาย ของ ชาร์ลส์ ดิกเกนส์ โดยใช้วิธีนี้ เรามาดูกันดีกว่า
📌 ขั้นตอน:
- ก่อนอื่น เลือกเซลล์ H5 และ วางสูตรต่อไปนี้
=IFERROR(INDEX($C$5:$C$25,SMALL(IF(1=((--($F$5=$B$5:$B$25))*(--($G$5=$D$5:$D$25))),ROW($C$5:$C$25)-4,""),ROW()-4)),"")
- จากนั้นกด ENTER .
วิธี Vlookup และส่งคืนค่าที่ตรงกันหลายรายการในเซลล์เดียว
ในแนวทางก่อนหน้านี้ เราได้รับค่าในเซลล์ต่างๆ แต่เราจะแสดงให้เห็นว่าเราสามารถรับผลลัพธ์ในเซลล์เดียวได้อย่างไร ดังนั้น โดยไม่ชักช้า มาดำดิ่งกัน!
📌 ขั้นตอน:
- โดยหลัก ไปที่เซลล์ G5 และป้อนสูตรด้านล่าง
=TEXTJOIN(", ",TRUE,IF($F$5=$B$5:$B$25,C5:C25,""))
ที่นี่ ฟังก์ชัน IF รับค่าจากช่วง C5:C25 โดยที่ค่าที่เกี่ยวข้องในช่วง B5:B25 ตรงกับค่าในเซลล์ F5 จากนั้น ฟังก์ชัน TEXTJOIN จะรวมค่าของอาร์เรย์โดยมีเครื่องหมายจุลภาคเป็นตัวคั่น
- ประการที่สอง กด ENTER .
อ่านเพิ่มเติม: INDEX MATCH เทียบกับฟังก์ชัน VLOOKUP (9 ตัวอย่าง)
สรุป
บทความนี้จะอธิบายวิธีการ vlookup ที่มีการจับคู่หลายรายการใน Excel ในลักษณะที่ง่ายและกระชับ อย่าลืมดาวน์โหลดไฟล์แบบฝึกหัด ขอบคุณที่อ่านบทความนี้ เราหวังว่านี่จะเป็นประโยชน์ โปรดแจ้งให้เราทราบในส่วนความคิดเห็นหากคุณมีข้อสงสัยหรือข้อเสนอแนะ โปรดเยี่ยมชมเว็บไซต์ของเรา ExcelWIKI ผู้ให้บริการโซลูชัน Excel แบบครบวงจร เพื่อสำรวจเพิ่มเติม