สารบัญ
ใน Microsoft Excel มีตัวเลือกไม่กี่ตัวเลือกในการ VLOOKUP และส่งคืนค่าหลายค่า ในแนวนอน แม้ว่าฟังก์ชัน VLOOKUP เองจะไม่สามารถคืนค่าหลายค่าในแนวนอนได้ แต่คุณจะได้รับคำแนะนำเกี่ยวกับตัวเลือกอื่นๆ ในบทความนี้พร้อมภาพประกอบที่เหมาะสม
ดาวน์โหลดสมุดงานแบบฝึกหัด
คุณสามารถดาวน์โหลดสมุดงาน Excel ที่เราใช้ในการเตรียมบทความนี้
VLOOKUP เพื่อส่งกลับค่าหลายค่าในแนวนอน.xlsx
2 วิธีในการ VLOOKUP และส่งคืนค่าหลายค่าในแนวนอน
ฟังก์ชัน VLOOKUP จะค้นหาค่าในคอลัมน์ซ้ายสุดของตาราง แล้วส่งกลับค่าในช่อง แถวเดียวกันจากคอลัมน์ที่ระบุ คุณไม่สามารถแยกค่าหลายค่าโดยใช้ฟังก์ชัน VLOOKUP ในครั้งเดียว หากคุณลากเซลล์ผลลัพธ์ลงมาเพื่อสร้างผลลัพธ์ต่อไปนี้ คุณจะได้รับค่าที่ซ้ำกันสำหรับข้อมูลบางส่วน และท้ายที่สุด คุณจะไม่สามารถแสดงข้อมูลที่แยกออกมาในแนวนอนโดยใช้เพียง VLOOKUP ฟังก์ชัน ใน Excel ดังนั้น มีสองทางเลือกที่เราสามารถใช้ในสเปรดชีต Excel เพื่อตอบสนองวัตถุประสงค์ของเรา
1. การใช้ฟังก์ชัน INDEX, SMALL และ IF เพื่อ VLOOKUP และส่งคืนค่าที่สอดคล้องกันในแนวนอน
ในภาพต่อไปนี้ ตารางแสดงสมาร์ทโฟนหลายรุ่นพร้อมชื่อแบรนด์ เนื่องจากเป็นการสุ่ม เราจะแยกชื่อรุ่นของแบรนด์เฉพาะออกมาและแสดงในแนวนอนติดต่อกัน
เช่น เราต้องการแสดงชื่อรุ่นของสมาร์ทโฟนยี่ห้อ Samsung ใน แถวที่ 16
📌 ขั้นตอนที่ 1:
➤ สูตรที่จำเป็นใน เซลล์ C16 จะเป็น:
=INDEX($C$5:$C$14, SMALL(IF($B$16=$B$5:$B$14,ROW($B$5:$B$14)-ROW($B$5)+1), COLUMN(A1)))
➤ หลังจากกด Enter คุณจะได้รับชื่อรุ่นแรกของ Samsung จากตาราง
📌 ขั้นตอนที่ 2:
➤ ตอนนี้ใช้ Fill Handle จาก เซลล์ C16 แล้วลากไปทางขวาตาม แถวที่ 16 จนกระทั่งข้อผิดพลาด #NUM ปรากฏขึ้น
➤ ข้าม ข้อผิดพลาด #NUM อันดับแรก และหยุดการป้อนอัตโนมัติก่อนที่เซลล์นั้นจะมีข้อผิดพลาด
และคุณจะเห็นชื่อรุ่นทั้งหมดของสมาร์ทโฟน Samsung ในแนวนอนซึ่งมีอยู่ในตารางที่กำหนด
🔎 สูตรทำงานอย่างไร
- ROW($B $5:$B$14)-ROW($B$5)+1: ส่วนนี้กำหนดให้กับอาร์กิวเมนต์ที่สอง ([value_if_true]) ของฟังก์ชัน IF กำหนดหมายเลขแถวของข้อมูลทั้งหมดที่มีในช่วงของเซลล์ B5:B14 และส่งกลับอาร์เรย์ต่อไปนี้:
{1;2;3;4; 5;6;7;8;9;10}
- IF($B$16=$B$5:$B$14, ROW($B$5:$B$14 )-ROW($B$5)+1): สูตรส่วนนี้ตรงกับเกณฑ์สำหรับอุปกรณ์ Samsung เท่านั้น หากพบการจับคู่ สูตรจะส่งกลับหมายเลขแถวเปอร์สเปคทีฟ มิฉะนั้น จะส่งคืน FALSE ดังนั้นอาร์เรย์ส่งคืนโดยรวมจากสูตรนี้จะเป็น:
{1;FALSE;3;FALSE;5;6;FALSE;FALSE;9;FALSE}
- SMALL(IF($B$16=$B$5:$B$14, ROW($B$5:$B$14)-ROW($B$5)+1), COLUMN(A1)): SMALL ฟังก์ชันที่นี่ แยกหมายเลขแถวต่ำสุดหรือเล็กที่สุดที่พบจากขั้นตอนที่แล้ว และจะกำหนดเป็นอาร์กิวเมนต์ที่สอง (row_num) ของฟังก์ชัน INDEX
- สุดท้าย สูตรทั้งหมดและสูตรผสมจะแยกชื่อรุ่นแรกของอุปกรณ์ Samsung จาก คอลัมน์ C
อ่านเพิ่มเติม: ใช้ VLOOKUP ที่มีหลายเกณฑ์ใน Excel (6 วิธี + ทางเลือก)
การอ่านที่คล้ายกัน
- VLOOKUP ไม่ทำงาน (8 เหตุผลและวิธีแก้ไข)
- เหตุใด VLOOKUP จึงส่งคืน #N/A เมื่อตรงกัน (5 สาเหตุและวิธีแก้ไข)
- Excel VLOOKUP เพื่อส่งคืนค่าหลายค่าในแนวตั้ง
- Excel VLOOKUP เพื่อส่งคืนค่าหลายค่าในเซลล์เดียวโดยคั่นด้วยเครื่องหมายจุลภาค
2. VLOOKUP และส่งคืนค่าหลายค่าในแนวนอนจากลำดับข้อมูลใน Excel
ตอนนี้ลองพิจารณาสถานการณ์อื่น ในตารางต่อไปนี้ คอลัมน์ B มีสมาร์ทโฟนสองยี่ห้อเรียงตามลำดับ เช่นเดียวกับก่อนหน้านี้ เราจะแยกชื่อรุ่นของแบรนด์ใดแบรนด์หนึ่งแต่ใช้สูตรอื่น และสูตรนี้จะใช้ได้กับช่วงข้อมูลที่ต่อเนื่องกันเท่านั้น หากชื่อแบรนด์เรียงตามลำดับแบบสุ่มดังที่แสดงในส่วนก่อนหน้า สูตรนี้จะใช้งานไม่ได้อย่างเหมาะสม
สำหรับตัวอย่างเช่น เราจะแยกชื่อรุ่นของสมาร์ทโฟน Xiaomi เท่านั้น และแสดงในแนวนอนใน แถวที่ 16 .
📌 ขั้นตอนที่ 1:
➤ ในเอาต์พุต เซลล์ C16 สูตรที่ต้องการจะเป็น:
=IF(COLUMN()-2<=COUNTIF($B$5:$B$14,$B16), INDEX($C$5:$C$14,MATCH($B16,$B$5:$B$14,0)+COLUMN()-3),"")
➤ กด Enter แล้วคุณจะเห็นชื่อสมาร์ทโฟนรุ่นแรกของ Xiaomi ทันที
<3
📌 ขั้นตอนที่ 2:
➤ ตอนนี้ใช้ Fill Handle เพื่อป้อนอัตโนมัติไปทางขวาตาม แถว 16 จนกว่าจะมีเซลล์ว่างปรากฏขึ้น
และคุณจะเห็นชื่อรุ่นทั้งหมดของแบรนด์ที่เลือกดังภาพหน้าจอด้านล่างเท่านั้น
🔎 สูตรทำงานอย่างไร
- MATCH($B16,$B$5:$B$14,0): ฟังก์ชัน MATCH ภายในฟังก์ชัน INDEX จะส่งคืนหมายเลขแถวแรกของเซลล์ที่มีชื่อ - Xiaomi
- MATCH($B16, $B$5:$B$14,0)+COLUMN()-3: ส่วนนี้เป็นอาร์กิวเมนต์ที่สองของฟังก์ชัน INDEX ซึ่งกำหนดหมายเลขแถวที่ข้อมูลผลลัพธ์แรกจะ b e ค้นหา
- INDEX($C$5:$C$14, MATCH($B16,$B$5:$B$14,0)+COLUMN()-3): สิ่งนี้ ส่วนคืออาร์กิวเมนต์ที่สองของฟังก์ชัน IF ([value_if_TRUE]) ซึ่งจะแยกข้อมูลเอาต์พุตแรกตามหมายเลขแถวที่พบในขั้นตอนก่อนหน้า
- หากไม่พบข้อมูลที่ตรงกัน ฟังก์ชัน IF จะส่งคืนเซลล์ว่าง
💭 หมายเหตุ: หากต้องการส่งคืนข้อมูลด้วยสูตรนี้อย่างถูกต้อง คุณต้องเริ่มต้นตารางจาก คอลัมน์ B โดยที่ คอลัมน์ B จะแสดงถึงเกณฑ์และ คอลัมน์ C จะมีข้อมูลเอาต์พุต คุณต้องกำหนดเกณฑ์ที่เลือกในคอลัมน์ B ใต้หรือเหนือตารางตามที่แสดงใน เซลล์ B16
อ่านเพิ่มเติม: INDEX จับคู่กับฟังก์ชัน VLOOKUP (9 ตัวอย่าง)
บทสรุป
ฉันหวังว่าสองวิธีที่กล่าวถึงข้างต้นจะช่วยให้คุณนำไปใช้ในสเปรดชีต Excel ของคุณได้ ดึงข้อมูลจากตารางและแสดงในแนวนอนเป็นแถว หากคุณมีคำถามหรือข้อเสนอแนะ โปรดแจ้งให้เราทราบในส่วนความคิดเห็น หรือคุณสามารถตรวจสอบบทความอื่น ๆ ของเราเกี่ยวกับฟังก์ชันของ Excel ได้ที่เว็บไซต์นี้