ฟังก์ชัน VLOOKUP เป็นหนึ่งในฟังก์ชันทรงพลังที่สุดของ Excel สำหรับค้นหาและดึงข้อมูล (Exact match หรือ Approximate match) แต่บางครั้ง VLOOKUP ตัวเดียวไม่พอ เราจึงต้องใช้ Nested VLOOKUP (VLOOKUP ซ้อน VLOOKUP) บทความนี้จะสอนการใช้งานอย่างละเอียด
ดาวน์โหลดไฟล์ฝึกปฏิบัติ
ดาวน์โหลดไฟล์ Excel ฟรีได้ที่นี่
VLOOKUP ใน Excel: สรุปพื้นฐาน
VLOOKUP = Vertical Lookup ค้นหาค่าในแนวตั้ง (คอลัมน์แรกของตาราง) แล้วคืนค่าจากคอลัมน์อื่นในแถวเดียวกัน
สูตรทั่วไป:
=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])| Argument | ความหมาย |
|---|---|
| lookup_value | ค่าที่ต้องการค้นหา |
| table_array | ช่วงข้อมูลที่ค้นหา (คอลัมน์แรกต้องเป็นคอลัมน์ lookup) |
| col_index_num | หมายเลขคอลัมน์ที่ต้องการคืนค่า (นับจากซ้าย) |
| range_lookup | TRUE/1 = Approximate match, FALSE/0 = Exact match |
3 กรณีการใช้ Nested VLOOKUP
1. Nested VLOOKUP ดึงราคาสินค้า (Product Price)
สถานการณ์: ตาราง Result ต้องการ Price จาก ID แต่ง ID อยู่ Table 1 และ Price อยู่ Table 2 ไม่ได้อยู่ตารางเดียวกัน

ขั้นตอน:
- คลิกเซลล์ผลลัพธ์ (เช่น I5 ติด ID A101)
- ใส่สูตร:
=VLOOKUP(VLOOKUP(H5, $B$5:$C$9, 2, FALSE), $E$5:$F$9, 2, FALSE)
โดย: H5 = ID (A101), $B$5:$C$9 = Table 1, $E$5:$F$9 = Table 2, 2 = คอลัมน์ที่ 2, FALSE = Exact match
- กด Ctrl + Shift + Enter (Array Formula - เวอร์ชันเก่า, Excel 365 กด Enter ธรรมดาได้)

- ได้ Price = $50 ของ ID A101
- ลาก Fill Handle ลงไปได้ราคาทุก ID

แยกวิเคราะห์สูตร:
- VLOOKUP(H5, $B$5:$C$9, 2, 0) → ค้นหา ID A101 ใน Table 1 คอลัมน์ 2 → ได้ "Football"
- VLOOKUP("Football", $E$5:$F$9, 2, 0) → ค้นหา "Football" ใน Table 2 คอลัมน์ 2 → ได้ $50
2. Nested VLOOKUP ดึงมูลค่าการขาย (Sales Value)
สถานการณ์: ต้องการ Sales จาก Product Name โดย Product อยู่ Table 1, Sales อยู่ Table 2 (ผ่าน Salesman)

สูตร: =VLOOKUP(VLOOKUP(I5,$B$5:$C$9,2,0),$E$5:$G$9,2,0)
- I5 = Product (Football), Table 1: $B$5:$C$9, Table 2: $E$5:$G$9
- กด Ctrl + Shift + Enter

- ได้ Sales = $1,000 ของ Football
- ลาก Fill Handle ได้ Sales ทุก Product

แยกวิเคราะห์:
- VLOOKUP(I5, $B$5:$C$9, 2, 0) → หา Product "Football" ใน Table 1 คอลัมน์ 2 → ได้ Salesman "David"
- VLOOKUP("David", $E$5:$G$9, 2, 0) → หา "David" ใน Table 2 คอลัมน์ 2 → ได้ $1,000
3. Nested VLOOKUP + IFERROR: ค้นหาจากหลายตาราง
สถานการณ์: Product แบ่งอยู่ 3 ตาราง ต้องการค้นหา Product จาก ID (A106) ทั้ง 3 ตาราง พร้อมกัน

สูตร:
=IFERROR(VLOOKUP(K5,$B$5:$C$7,2,0),IFERROR(VLOOKUP(K5,$E$5:$F$7,2,0),VLOOKUP(K5,$H$5:$I$7,2,0)))โดย: K5 = ID (A106), Table 1: $B$5:$C$7, Table 2: $E$5:$F$7, Table 3: $H$5:$I$7
- กด Ctrl + Shift + Enter

- ได้ Product = Cricket Bat ของ ID A106
แยกวิเคราะห์ (ทำงานจากในออกมา):
- VLOOKUP ใน Table 3 ($H$5:$I$7) → #N/A (ไม่เจอ)
- VLOOKUP ใน Table 2 ($E$5:$F$7) → ได้ "Cricket Bat"
- IFERROR(Table2, Table3) → "Cricket Bat" (เพราะ Table2 ไม่ Error)
- VLOOKUP ใน Table 1 ($B$5:$C$7) → #N/A
- IFERROR(Table1, ผลลัพธ์ก่อนหน้า) → "Cricket Bat" (ผลลัพธ์สุดท้าย)
ข้อควรจำ
- 🔒 ใช้ $ (Absolute Reference) ล็อก table_array เสมอ เพื่อไม่ให้ช่วงข้อมูลเลื่อนตอนลากสูตร
- ⌨️ กด Ctrl + Shift + Enter สำหรับ Array Formula (Excel 365/2021+ กด Enter ปกติได้)
สรุป
บทความนี้อธิบาย Nested VLOOKUP 3 รูปแบบ: 1) ดึงราคาผ่าน ID→Product→Price 2) ดึง Sales ผ่าน Product→Salesman→Sales 3) ค้นหาจากหลายตารางร่วมกับ IFERROR ป้องกัน Error #N/A หวังว่าจะเป็นประโยชน์ครับ
บทความเกี่ยวข้อง
- How to Use VLOOKUP with SUM Function in Excel (6 Methods)
- Excel VLOOKUP to Find the Closest Match (with 5 Examples)
- How to Make VLOOKUP Case Sensitive in Excel (4 Methods)
- Use VLOOKUP with Multiple Criteria in Excel (6 Methods + Alternatives)
- How to Use the VLOOKUP Function in Excel VBA (4 Examples)