VLOOKUP เพื่อคืนค่าหลายค่าในแนวนอนใน Excel

  • แบ่งปันสิ่งนี้
Hugh West

ใน 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 ได้ที่เว็บไซต์นี้

Hugh West เป็นผู้ฝึกอบรมและนักวิเคราะห์ Excel ที่มีประสบการณ์สูงและมีประสบการณ์มากกว่า 10 ปีในอุตสาหกรรมนี้ เขาสำเร็จการศึกษาระดับปริญญาตรีสาขาการบัญชีและการเงิน และปริญญาโทสาขาบริหารธุรกิจ Hugh มีความหลงใหลในการสอนและได้พัฒนาแนวทางการสอนที่เป็นเอกลักษณ์ซึ่งง่ายต่อการติดตามและเข้าใจ ความรู้ความเชี่ยวชาญของเขาเกี่ยวกับ Excel ช่วยให้นักเรียนและผู้เชี่ยวชาญหลายพันคนทั่วโลกพัฒนาทักษะและความเป็นเลิศในอาชีพการงาน ฮิวจ์แบ่งปันความรู้ของเขากับคนทั้งโลกผ่านบล็อก โดยเสนอบทช่วยสอน Excel ฟรีและการฝึกอบรมออนไลน์เพื่อช่วยให้บุคคลและธุรกิจบรรลุศักยภาพสูงสุดของตนเอง