สารบัญ
มีหลายวิธีในการใช้ VLOOKUP หรือการค้นหาแนวตั้งใน Microsoft Excel เพื่อส่งคืนข้อมูลตามการจับคู่หลายรายการ ในบทความนี้ คุณจะได้ทราบวิธีการที่เป็นไปได้ทั้งหมดในการเปิดใช้งาน VLOOKUP และดึงข้อมูลที่มีอยู่ทั้งหมดพร้อมภาพประกอบที่เหมาะสม
ดาวน์โหลดสมุดงานแบบฝึกหัด
คุณสามารถดาวน์โหลดสมุดงาน Excel ที่เราใช้ในการเตรียมบทความนี้
VLOOKUP และ Return All Matches.xlsx
7 วิธี VLOOKUP และส่งคืนค่าที่ตรงกันทั้งหมดใน Excel
ฟังก์ชัน VLOOKUP จะค้นหาค่าในคอลัมน์ซ้ายสุดของตารางและส่งกลับค่าในแถวเดียวกันจากคอลัมน์ที่ระบุ . แต่ฟังก์ชันนี้ไม่สามารถแยกข้อมูลตามการจับคู่มากกว่าหนึ่งรายการจากคอลัมน์หนึ่งๆ ได้ ดังนั้น เราต้องแทรกฟังก์ชันและสูตรอื่นๆ เพื่อค้นหาค่าและส่งคืนค่าที่ตรงกันทั้งหมดที่พบในคอลัมน์
1. VLOOKUP และส่งคืนรายการที่ตรงกันหลายรายการในคอลัมน์
ในภาพต่อไปนี้ เรามีตารางที่มีชื่อพนักงานและแผนกต่างๆ แบบสุ่ม สมมติว่าเราต้องการแสดงชื่อพนักงานในคอลัมน์เดียวที่ทำงานในแผนกการผลิต
หากคุณเป็น Excel 365 ผู้ใช้ จากนั้นคุณสามารถใช้ฟังก์ชัน FILTER ที่นี่เพื่อค้นหาค่าที่ส่งคืนในช่วงเวลาหนึ่ง ด้วยฟังก์ชัน กรอง สูตรที่ต้องการในเอาต์พุต เซลล์ C16 จะเป็น:
=FILTER(C5:C13,C15=B5:B13)
หลังจากกด Enter คุณจะเห็นชื่อพนักงานจาก การผลิต แผนกในอาร์เรย์แนวตั้ง
หรือหากคุณใช้ เวอร์ชันเก่ากว่า ของ Microsoft Excel คุณต้องใช้สูตรรวมต่อไปนี้ :
=INDEX($C$5:$C$13, SMALL(IF(($C$15=$B$5:$B$13), MATCH(ROW($B$5:$B$13), ROW($B$5:$B$13)), ""),ROWS($A$1:A1)))
หลังจากกด Enter คุณจะพบชื่อของพนักงานในเอาต์พุต เซลล์ C16 .
โดยใช้ Fill Handle จาก เซลล์ C16 ลงไปด้านล่าง คุณจะได้รับชื่อที่เหลือของ พนักงานจากแผนกที่ระบุพร้อมกัน
🔎 สูตรนี้ทำงานอย่างไร
- ROW($B$5:$B$13): ฟังก์ชัน ROW แยกหมายเลขแถวของการอ้างอิงเซลล์ที่กำหนดและส่งกลับอาร์เรย์ต่อไปนี้:
- จับคู่(ROW($B$5:$B$13) , ROW($B$5:$B$13)):ฟังก์ชัน MATCH ที่นี่จะแปลงหมายเลขแถวที่แยกออกมาโดยเริ่มจาก 1 ดังนั้น ส่วนนี้ของสูตรจึงส่งคืนอาร์เรย์ของ:
{1;2;3;4;5;6;7;8;9}
- IF(($C$15=$B $5:$B$13), MATCH(ROW($B$5:$B$13), ROW($B$5:$B$13)), “”): ด้วยความช่วยเหลือของ IF ฟังก์ชัน ส่วนนี้ของสูตรจะส่งกลับหมายเลขดัชนีของแถวที่ตรงตามเงื่อนไขที่ระบุ ดังนั้น ส่วนนี้จะส่งคืนอาร์เรย์ของ:
{“”;2;””;4;””;””;””;””;9}
- ฟังก์ชัน SMALL ในสูตรจะดึงค่าเล็กแรกออกมาจำนวนที่พบในขั้นตอนที่แล้ว และกำหนดหมายเลขนี้ให้กับอาร์กิวเมนต์ที่สอง (row_number) ของฟังก์ชัน INDEX
- สุดท้าย INDEX ฟังก์ชันแสดงชื่อของพนักงานตามหมายเลขแถวที่ระบุ
- ฟังก์ชัน ROWS ในสูตรนี้กำหนดตัวเลข k-th สำหรับ SMALL ฟังก์ชัน ในขณะที่ใช้ Fill Handle เพื่อเติมเซลล์ที่เหลือ สูตรจะใช้ตัวเลข k-th เพื่อแยกข้อมูลตามด้วยฟังก์ชัน SMALL <16
อ่านเพิ่มเติม: INDEX MATCH เทียบกับฟังก์ชัน VLOOKUP (9 ตัวอย่าง)
2. VLOOKUP และส่งคืนรายการที่ตรงกันทั้งหมดในแถวใน Excel
หากคุณต้องการดูชื่อของพนักงานในแนวนอน คุณต้องรวมฟังก์ชัน ตัวกรอง เข้ากับ TRANSPOSE ฟังก์ชัน ฟังก์ชัน TRANSPOSE แปลงช่วงแนวตั้งของเซลล์เป็นช่วงแนวนอนหรือกลับกัน และในการใช้สูตรที่รวมกันนี้ คุณต้องเป็นผู้ใช้ Excel 365
ดังนั้น สูตรที่จำเป็นในเอาต์พุต เซลล์ C16 จะเป็น:
=TRANSPOSE(FILTER(C5:C13,C15=B5:B13))
ตอนนี้กด Enter และคุณจะเห็นชื่อของพนักงานจากแผนกการผลิตในแถวแนวนอน
หรือใส่สูตรต่อไปนี้ในเอาต์พุต เซลล์ C16 หากคุณไม่ใช่ผู้ใช้ Excel 365
=INDEX($C$5:$C$13, SMALL(IF($C$15=$B$5:$B$13, ROW($B$5:$B$13)-MIN(ROW($B$5:$B$13))+1, ""), COLUMNS($A$1:A1)))
<2 กด Enter และคุณจะพบชื่อของพนักงานจากที่ระบุแผนก
ตอนนี้ ใช้ Fill Handle แล้วลาก เซลล์ C16 ไปทางขวาจนกว่าคุณจะพบ #NUM แรก ข้อผิดพลาด และคุณจะได้ชื่อทั้งหมดจากแผนก การผลิต ในแนวนอน
สูตรที่ใส่ไว้ที่นี่เกือบจะคล้ายกับสูตรความยาวสูตรแรกที่ใช้ใน ตัวอย่างก่อนหน้าของบทความที่ต้องแสดงข้อมูลที่แยกออกมาในแนวตั้ง ข้อแตกต่างที่สำคัญเพียงอย่างเดียวคือเรากำลังใช้ฟังก์ชัน COLUMNS ที่นี่เพื่อระบุหมายเลขลำดับของฟังก์ชัน SMALL ในขณะที่เติมเซลล์อัตโนมัติในแนวนอน สูตรจะเป็นไปตามหมายเลขลำดับของฟังก์ชัน SMALL เพื่อแยกข้อมูล
อ่านเพิ่มเติม: Excel VLOOKUP ถึง คืนค่าหลายค่าในแนวตั้ง
3. VLOOKUP เพื่อส่งคืนค่าหลายค่าตามเกณฑ์
เราได้เพิ่มคอลัมน์พิเศษตรงกลางตาราง คอลัมน์นี้จัดเก็บรหัสโครงการที่กำหนดให้กับพนักงานที่เกี่ยวข้องซึ่งแสดงอยู่ใน คอลัมน์ D ดังนั้น เราจะป้อนเงื่อนไขที่แตกต่างกัน 2 เงื่อนไขในขณะนี้ และแยกข้อมูลตามที่พบทั้งหมด
ตัวอย่างเช่น เราต้องการทราบชื่อของพนักงานที่กำลังทำงานใน การขาย แผนกบนรหัสโครงการของ DMR 103 .
สูตรที่จำเป็นในเอาต์พุต เซลล์ C17 จะเป็น:
=IFERROR(INDEX($D$5:$D$13, SMALL(IF(1=((--($C$15=$B$5:$B$13)) * (--($C$16=$C$5:$C$13))), ROW($D$5:$D$13)-4,""), ROW()-16)),"")
กด Enter แล้วคุณจะพบชื่อของพนักงานภายใต้เกณฑ์ที่กำหนด
ตอนนี้กรอก เซลล์ C17 เพื่อแสดงชื่อที่เหลือตามเงื่อนไขที่กำหนด
🚩 คุณสมบัติที่สำคัญบางประการของสูตรนี้:
- สูตรนี้ยังค่อนข้างคล้ายกับที่ใช้ใน วิธีการก่อนหน้านี้
- ในสูตรนี้ มีการใช้ฟังก์ชัน IFERROR เพื่อแสดงผลลัพธ์ที่กำหนดเองหากพบข้อผิดพลาดใดๆ
- ฟังก์ชัน IF ฟังก์ชันในสูตรนี้รวมเกณฑ์ที่แตกต่างกันสองเกณฑ์ และด้วยความช่วยเหลือของ double-unary ค่าบูลีน (TRUE หรือ FALSE) เปลี่ยนเป็น 1 หรือ 0 จากนั้นฟังก์ชันจะส่งคืนหมายเลขดัชนีของแถวที่ตรงกับเกณฑ์ที่กำหนด
- ROW($D$5:$D$13)-4: ในส่วนนี้ ตัวเลข '4' คือหมายเลขแถวของส่วนหัว Employee
- ROW()-16: และค่าตัวเลข '16' ใช้ใน ส่วนนี้แสดงถึงหมายเลขแถวก่อนหน้าของเซลล์เอาต์พุตแรก
อ่านเพิ่มเติม: ใช้ VLOOKUP ที่มีหลายเกณฑ์ใน Excel (6 วิธี + ทางเลือก)
4. VLOOKUP และดึงการแข่งขันทั้งหมดด้วยตัวกรองอัตโนมัติ
การใช้ ตัวกรองอัตโนมัติ ทำให้เราสามารถดึงข้อมูลจากการแข่งขันทั้งหมดได้ง่ายขึ้น เนื่องจากเราจะดึงชื่อพนักงานออกจากแผนกการผลิต เราจึงต้องทำตามขั้นตอนต่อไปนี้:
📌 ขั้นตอนที่ 1:
➤ เลือกตารางข้อมูลทั้งหมดแล้วคลิกขวาที่เมาส์
➤ เลือกตัวเลือก 'กรองตามค่าเซลล์ที่เลือก' จากตัวเลือก กรอง
ดังนั้น คุณเพิ่งเปิดใช้งาน กรอง ปุ่มสำหรับส่วนหัวของคุณ
📌 ขั้นตอนที่ 2:
➤ คลิกที่ปุ่ม ตัวกรอง จากส่วนหัว แผนก
➤ ทำเครื่องหมายบนตัวเลือก การผลิต เท่านั้น
➤ กด ตกลง และเสร็จสิ้น
เช่นเดียวกับในภาพหน้าจอด้านล่าง คุณจะแสดงผลผลลัพธ์และข้อมูลที่กรองแล้ว
อ่านเพิ่มเติม: VLOOKUP ที่มีการจับคู่หลายรายการใน Excel
การอ่านที่คล้ายกัน
- วิธีใช้ Double VLOOKUP ใน Excel (4 วิธีด่วน)
- VLOOKUP ไม่ทำงาน (8 เหตุผลและวิธีแก้ไข)
- วิธีการรวม Excel SUMIF & VLOOKUP ข้ามหลายชีต
- VLOOKUP เพื่อส่งคืนหลายคอลัมน์ใน Excel (4 ตัวอย่าง)
- วิธี VLOOKUP ที่มีหลายเงื่อนไขใน Excel (2 วิธี )
5. VLOOKUP เพื่อแยกรายการที่ตรงกันทั้งหมดด้วยตัวกรองขั้นสูงใน Excel
คุณยังสามารถใช้ ตัวกรองขั้นสูง ซึ่งคุณต้องกำหนดเกณฑ์โดยเลือกช่วงเกณฑ์จากสเปรดชีต Excel ของคุณ ในภาพต่อไปนี้ B15:B16 คือช่วงเกณฑ์
📌 ขั้นตอนที่ 1:
➤ เลือก ตารางข้อมูลทั้งหมด
➤ ใต้ริบบิ้น ข้อมูล คลิกคำสั่ง ขั้นสูง จาก เรียงลำดับและกรอง เมนูแบบเลื่อนลง
กล่องโต้ตอบชื่อ ตัวกรองขั้นสูง จะเปิดขึ้น
📌 ขั้นตอนที่ 2:
➤ เลือกตารางข้อมูลทั้งหมดสำหรับอินพุต ช่วงรายการ
➤ เลือก B15:B16 สำหรับ ช่วงเกณฑ์ .
➤ กด ตกลง .
และคุณจะเห็น ผลลัพธ์ที่กรองด้วยชื่อของพนักงานจากแผนก การผลิต เท่านั้น
อ่านเพิ่มเติม: VLOOKUP ที่มีหลายรายการ เกณฑ์ใน Excel (6 ตัวอย่าง)
6. VLOOKUP และส่งคืนค่าทั้งหมดโดยการจัดรูปแบบเป็นตาราง
ตอนนี้เราจะแสดงวิธีง่ายๆ อีกวิธีหนึ่งในการกรองตารางข้อมูลโดยการแปลงให้เป็นตารางที่จัดรูปแบบ
📌 ขั้นตอนที่ 1:
➤ เลือกตารางข้อมูลหลักก่อน
➤ จากเมนูแบบเลื่อนลง จัดรูปแบบเป็นตาราง ใต้ แท็บหน้าแรก เลือกตารางใดก็ได้ที่คุณต้องการ
หลังจากขั้นตอนแรก ตารางข้อมูลของคุณจะมีลักษณะดังที่แสดงในภาพหน้าจอต่อไปนี้พร้อมกับ ส่วนหัวที่กรองแล้ว
📌 ขั้นตอนที่ 2:
➤ เลือกตัวเลือก การผลิต ตัวเลือกหลังจากคลิกที่ปุ่มตัวกรองจากส่วนหัว แผนก
➤ กด ตกลง เป็นอันเสร็จ
ภาพหน้าจอด้านล่างแสดงผลลัพธ์ตามการเลือกที่ระบุ
อ่านเพิ่มเติม: การใช้ VBA VLOOKUP เพื่อ ค้นหาค่าจากแผ่นงานอื่นใน Excel
7.VLOOKUP เพื่อดึงข้อมูลที่ตรงกันทั้งหมดลงในเซลล์เดียวใน Excel
ฟังก์ชัน TEXTJOIN จะเชื่อมรายการหรือช่วงของสตริงข้อความโดยใช้ตัวคั่น ด้วยการรวมฟังก์ชัน TEXTJOIN และ IF เข้าด้วยกัน เราสามารถค้นหาค่าและแยกข้อมูลตามข้อมูลที่ตรงกันทั้งหมดลงในเซลล์เดียว
สูตรที่ต้องการในเอาต์พุต เซลล์ C16 จะเป็น:
=TEXTJOIN(", ",TRUE,IF($B$5:$B$13=$C$15,$C$5:$C$13,""))
หลังจากกด Enter คุณจะพบชื่อพนักงานจากปุ่ม แผนกการผลิต ในเซลล์เดียวคั่นด้วยเครื่องหมายจุลภาค
ในสูตรนี้ ฟังก์ชัน IF จะส่งกลับอาร์เรย์ที่มีชื่อตรงกัน เช่นเดียวกับค่าบูลีน 'FALSE” สำหรับเซลล์ที่ไม่ตรงกัน ฟังก์ชัน TEXTJOIN จะรวมชื่อทั้งหมดที่พบด้วยตัวคั่นที่ระบุ
อ่านเพิ่มเติม: VLOOKUP ข้อความบางส่วนจากเซลล์เดียวใน Excel
บทสรุป
ฉันหวังว่าวิธีการทั้งหมดที่กล่าวถึงข้างต้นจะช่วยให้คุณนำไปใช้ในสเปรดชีต Excel ของคุณได้เมื่อจำเป็น หากคุณมีคำถามหรือข้อเสนอแนะ โปรดแจ้งให้เราทราบในส่วนความคิดเห็น หรือคุณสามารถตรวจสอบบทความอื่น ๆ ของเราเกี่ยวกับฟังก์ชันของ Excel ได้ที่เว็บไซต์นี้