---
title: "VLOOKUP หลายเงื่อนไข ง่ายนิดเดียว!"
url: https://www.thepexcel.com/vlookup-multiple-criteria/
type: post
date: 2015-11-05
updated: 2020-03-31
author: Sira Ekabut
categories: [Excel ทั่วไป]
tags: [VLOOKUP, multiple]
---

# VLOOKUP หลายเงื่อนไข ง่ายนิดเดียว!

> มีหลายคนถามผมมาบ่อยมาก ว่าถ้าเราอยากจะ VLOOKUP หลายเงื่อนไข (Lookup_Value มี 2 ช่องขึ้นไป) ต้องทำยังไงดี? ตัวผมเองก็ดันไม่ได้เขียนตัวอย่างนี้ไว้ในหนังสือซะด้วยสิ ก็เลยขอมาเขียนในนี้ให้อ่านกันฟรีๆ เลยแล้วกัน! *สำหรับคนที่อยากรู้วิธี VLOOKUP คำเดียว แต่ได้ผลลัพธ์กลับมาหลายค่า ให้ดูตาม link นี้แทนครับ VLOOKUP...

มีหลายคนถามผมมาบ่อยมาก ว่าถ้าเราอยากจะ VLOOKUP หลายเงื่อนไข (Lookup_Value มี 2 ช่องขึ้นไป) ต้องทำยังไงดี? ตัวผมเองก็ดันไม่ได้เขียนตัวอย่างนี้ไว้ในหนังสือซะด้วยสิ ก็เลยขอมาเขียนในนี้ให้อ่านกันฟรีๆ เลยแล้วกัน!

 

*สำหรับคนที่อยากรู้วิธี VLOOKUP คำเดียว แต่ได้ผลลัพธ์กลับมาหลายค่า [ให้ดูตาม link นี้แทนครับ](https://www.thepexcel.com/vlookup-multiple-value-2-methods/)

 

## VLOOKUP หลายเงื่อนไขหรือมี Lookup_value หลายตัวได้ด้วยเหรอ?

 

ผมจะบอกว่า ไอ้ **lookup_value ของ VLOOKUP เนี่ย มันมีได้แค่ตัวเดียว**แหละครับ  
ก็มันมี Argument เดียวไงจำได้มั้ย?  
มันเขียนว่า =VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)

 

เห็นมั้ยครับว่ามีแค่ตัวเดียว แล้วเราจะใส่เข้าไปหลายเงื่อนไขได้ยังไง?

 

คำตอบก็คือ…มันมี Trick ครับ ถ้าคิดให้ดีๆ

 

> เราสามารถเอาค่าที่เราต้องการจะ Lookup ที่มีหลายๆ เงื่อนไขจับมัดเป็น Lookup_Value ก้อนเดียวก็ได้นี่นา

 

ถ้ารู้แบบนี้แล้ว จะกลัวอะไรครับ? มาลองดูตัวอย่างจริงกันเลยดีกว่า!

 

## สมมติเรามีข้อมูลแบบนี้ครับ

 

[![vlookup-multiple-1fix](https://www.thepexcel.com/wp-content/uploads/2015/11/vlookup-multiple-1fix.png)](https://www.thepexcel.com/wp-content/uploads/2015/11/vlookup-multiple-1fix.png)

 

เราต้องการเอาข้อมูลอ้างอิงข้างบน มาสรุปเป็นตารางข้างล่าง ซึ่งจะเห็นว่าเราไม่สามารถใช้ VLOOKUP ค่า A B C ตรงๆ ได้ เพราะการ Lookup แบบ Exact Match **ถ้าเจอค่าซ้ำกันมันจะได้ค่าแรกสุดกลับมาเสมอ**

 

วิธีแก้ก็คือ ต้องทำให้ค่าที่ Lookup ไม่ซ้ำกันนั่นเอง โดยการจับค่ามามัดรวมกันเป็นค่าเดียว เช่น เอา สินค้า กับ คนขายมาเชื่อมกัน

 

ซึ่งวิธีเชื่อมเราก็ใช้เครื่องหมาย & มาเชื่อมง่ายๆ นี่แหละครับ แต่ที่สำคัญต้องเชื่อมแล้วไม่ซ้ำกับบรรทัดอื่นนะครับ

 

[![vlookup-multiple-2](https://www.thepexcel.com/wp-content/uploads/2015/11/vlookup-multiple-2.png)](https://www.thepexcel.com/wp-content/uploads/2015/11/vlookup-multiple-2.png)

 

### ข้อควรระวัง 1

 

แต่วิธีนี้อาจมีความเสี่ยงตรงที่ ถ้าค่าที่เราเอามาเชื่อมกันแล้วมันอาจไปซ้ำกับค่าอื่นได้ เช่น

 
- เชื่อม AA กับ ข ==> AAข
- เชื่อม A กับ Aข ==> AAข  
  ซึ่งออกมาเหมือนกันทั้งที่ตั้งต้นคนละอันเลย!

 

ดังนั้นผมแนะนำให้ตอนเชื่อมตั่นด้วยสัญลักษณ์แปลกๆ เช่น | เสมอ ซึ่งป้องกันค่าไม่ให้ซ้ำกันโดยไม่ตั้งใจได้ เช่น

 
- เชื่อม AA กับ ข ==> AA|ข
- เชื่อม A กับ Aข ==> A|Aข  
  ออกมาเป็นคนละอันกัน ซึ่งถูกต้อง!

 

ดังนั้นคอลัมน์พิเศษของผมจึงออกมาเป็นแบบนี้

 

[![vlookup-multiple-3](https://www.thepexcel.com/wp-content/uploads/2015/11/vlookup-multiple-3.png)](https://www.thepexcel.com/wp-content/uploads/2015/11/vlookup-multiple-3.png)

 

ทีนี้เราก็สามารถ VLookup ได้แล้วล่ะครับ

 

=VLOOKUP($C13&”|”&D$12,$B$2:$E$9,4,0)

 

ซึ่ง $C13&”|”&D$12 ก็คือ สินค้า|คนขาย นั่นเอง

 

[![VLOOKUP หลายเงื่อนไข](https://www.thepexcel.com/wp-content/uploads/2015/11/vlookup-multiple-4.png)](https://www.thepexcel.com/wp-content/uploads/2015/11/vlookup-multiple-4.png)

 

ตัวที่ออกมาเป็น #N/A แสดงว่าไม่อยู่ในตารางข้างบน ซึ่งเราก็สามารถแปลงให้เป็น 0 ได้ โดยการใช้ IFERROR ซ้อนไปให้แสดง 0 แทน เป็นต้น

 

[![vlookup-multiple-5](https://www.thepexcel.com/wp-content/uploads/2015/11/vlookup-multiple-5.png)](https://www.thepexcel.com/wp-content/uploads/2015/11/vlookup-multiple-5.png)

 

แค่นี้ก็สามารถได้ผลลัพธ์ตามที่ต้องการแล้วครับ

 

อย่าลืมนะครับ หลักการมีอยู่นิดเดียว คือ **ให้จับเงื่อนไขหลายๆ ตัวมามัดกันเป็นก้อนเดียว และเป็นก้อนที่ Unique แบบไม่ซ้ำกันกับบรรทัดอื่น** นั่นเองครับ

 

## เทคนิคเสริมและข้อควรระวัง! กรณีข้อมูลที่สรุปเป็นตัวเลข

 

ขอบคุณ คุณ Songsak YO Kitthawonarcheep มากครับ ที่เข้ามาเตือนในเพจ Facebook เกี่ยวกับตัวอย่างข้างบน ซึ่งอาจผิดได้ในบางกรณี

 

กรณีที่ข้อมูลที่ต้องการนำมาสรุปผล**เป็นข้อมูลตัวเลข** หรือบางทีข้อมูลดิบอาจมี Lookup_Value หลายบรรทัดซ้ำกัน เช่น มีสินค้า A กับ คนขาย นาย ก คู่กันหลายบรรทัด (ทำให้ค่า Lookup_Value ไม่ใช่ค่า unique อย่างแท้จริง) การใช้ VLOOKUP ทำให้ได้มาแต่ค่าแรก ซึ่งจะทำให้ผลสรุปผิดได้

 

วิธีที่ดีกว่าในกรณีที่ข้อมูลเป็นตัวเลขแบบนี้ คือ การใช้พวก SUMIF หรือ SUMIFS มาช่วยแทน (คิดเหมือน Pivot Table) เช่นตามรูปนี้ครับ

 

[![vlookup-multiple-6](https://www.thepexcel.com/wp-content/uploads/2015/11/vlookup-multiple-6.png)](https://www.thepexcel.com/wp-content/uploads/2015/11/vlookup-multiple-6.png)

 

สังเกตว่าได้ค่าเท่ากับวิธี VLOOKUP ข้างบนเป๊ะเลย (ถ้าค่า Lookup_Value ซ้ำกันหลายบรรทัด วิธีนี้จะถูกต้องกว่า เพราะ VLOOKUP จะได้แต่ค่าบนสุดทำให้ผลออกมาน้อยเกินจริง) คำนวณเร็วกว่า แถมไม่ต้องมาดัก Error ด้วย เจ๋งจริงๆ ครับ

 

เพียงแต่วิธีนี้มีข้อจำกัด คือ ใช้ได้เฉพาะกับข้อมูลที่เป็นตัวเลขเท่านั้น ถ้าข้อมูลเป็น Text ต้องใช้พวก VLOOKUP มาช่วย แล้วถ้ามี Text ซ้ำกันหลายบรรทัด ก็ต้องพยายามทำให้ไม่ซ้ำแหละครับ ต้องเพิ่มคอลัมน์เพื่อให้มันไม่ซ้ำให้ได้ แค่นั้นเอง

---

_Source: [https://www.thepexcel.com/vlookup-multiple-criteria/](https://www.thepexcel.com/vlookup-multiple-criteria/)_
