VLOOKUP คืออะไร? ทำไมต้องรู้?
ถ้าเคยเจอปัญหาแบบนี้ — มีรายการสินค้าอยู่ชีตหนึ่ง แล้วต้องการดึงราคาจากอีกชีตหนึ่งมาใส่ หรือมีรหัสพนักงานแล้วต้องการหาชื่อและแผนกของคนนั้น — VLOOKUP คือสูตรที่จะช่วยเราได้
VLOOKUP ย่อมาจาก Vertical Lookup หรือ "การค้นหาแนวตั้ง" เป็นสูตรที่ใช้ค้นหาข้อมูลในตารางโดยดูจากคอลัมน์แรก แล้วดึงค่าจากคอลัมน์อื่นในแถวเดียวกันมาแสดง เปรียบเทียบง่ายๆ เหมือนเราเปิดสมุดโทรศัพท์ หาชื่อคนจากคอลัมน์ซ้าย แล้วดูเบอร์โทรจากคอลัมน์ขวา
ทำไม VLOOKUP ถึงสำคัญ?
- เป็นสูตรที่ใช้บ่อยที่สุดในการทำงานกับ Google Sheet
- ช่วยลดการพิมพ์ข้อมูลซ้ำ ลดความผิดพลาด
- เชื่อมข้อมูลจากหลายตารางเข้าด้วยกันได้อัตโนมัติ
- เป็นพื้นฐานสำคัญก่อนเรียนสูตรขั้นสูงอย่าง INDEX MATCH
ในบทความนี้เราจะสอนตั้งแต่โครงสร้างสูตร ตัวอย่างการใช้งานจริง ไปจนถึงข้อผิดพลาดที่พบบ่อยและวิธีแก้ไข เหมาะสำหรับคนที่เพิ่งเริ่มต้นใช้ Google Sheet หรือเคยใช้แต่ยังไม่เข้าใจ VLOOKUP ดีพอ
เนื้อหาในบทความ
โครงสร้างสูตร VLOOKUP
สูตร VLOOKUP ใน Google Sheet มี 4 ส่วนหลัก ลองทำความเข้าใจทีละส่วน:
search_key — ค่าที่ต้องการค้นหา
คือค่าที่ต้องการหาในตาราง เช่น รหัสสินค้า "P001" หรืออ้างอิงจากเซลล์ เช่น A2
range — ช่วงข้อมูลที่จะค้นหา
คือตารางข้อมูลทั้งหมดที่ VLOOKUP จะค้นหา คอลัมน์แรกของช่วงนี้ต้องเป็นคอลัมน์ที่มีค่าที่ต้องการค้นหา
index — เลขคอลัมน์ที่ต้องการดึงค่า
นับจากคอลัมน์แรกของ range เป็น 1 คอลัมน์ถัดไปเป็น 2, 3, ... ไปเรื่อยๆ
is_sorted — ค้นหาแบบตรงหรือประมาณ
FALSE = ค้นหาแบบตรงทุกตัวอักษร (แนะนำสำหรับมือใหม่) / TRUE = ค้นหาแบบประมาณ (ข้อมูลต้องเรียงจากน้อยไปมาก)
จำง่ายๆ แบบนี้:
VLOOKUP = "หาอะไร จากตารางไหน เอาคอลัมน์ที่เท่าไหร่ หาแบบตรงหรือประมาณ"
ตัวอย่าง 1: ค้นหาราคาสินค้า
สมมติเรามีร้านขายของออนไลน์ มีตารางรายการสินค้าพร้อมราคาอยู่แล้ว ต้องการพิมพ์รหัสสินค้าแล้วให้ราคาแสดงขึ้นมาอัตโนมัติ
ตารางสินค้า (A1:C6)
| รหัสสินค้า | ชื่อสินค้า | ราคา (บาท) |
|---|---|---|
| P001 | เสื้อยืดสีขาว | 250 |
| P002 | กางเกงยีนส์ | 890 |
| P003 | หมวกแก๊ป | 199 |
| P004 | รองเท้าผ้าใบ | 1,290 |
| P005 | กระเป๋าสะพาย | 590 |
ดึงราคาสินค้า P003
ผลลัพธ์: 199
อธิบายทีละส่วน:
| ส่วน | ค่า | ความหมาย |
|---|---|---|
| search_key | "P003" | ค้นหารหัสสินค้า P003 |
| range | A2:C6 | ค้นหาในตารางตั้งแต่ A2 ถึง C6 |
| index | 3 | ดึงค่าจากคอลัมน์ที่ 3 (ราคา) |
| is_sorted | FALSE | ค้นหาแบบตรงทุกตัวอักษร |
ดึงชื่อสินค้าแทนราคา
ถ้าต้องการดึงชื่อสินค้าแทนราคา แค่เปลี่ยน index จาก 3 เป็น 2:
ผลลัพธ์: หมวกแก๊ป
เคล็ดลับ
ในการใช้งานจริง แทนที่จะพิมพ์ "P003" ลงในสูตรตรงๆ ให้อ้างอิงจากเซลล์แทน เช่น=VLOOKUP(E2, A2:C6, 3, FALSE)แล้วพิมพ์รหัสสินค้าในเซลล์ E2 จะได้เปลี่ยนค่าค้นหาได้ง่ายโดยไม่ต้องแก้สูตร
ตัวอย่าง 2: ดึงข้อมูลพนักงาน
สมมติเราทำงาน HR มีตารางข้อมูลพนักงานทั้งหมด ต้องการค้นหาข้อมูลจากรหัสพนักงาน
ตารางพนักงาน (A1:D6)
| รหัสพนักงาน | ชื่อ-นามสกุล | แผนก | เงินเดือน |
|---|---|---|---|
| EMP001 | สมชาย ใจดี | การตลาด | 35,000 |
| EMP002 | สมหญิง รักเรียน | บัญชี | 32,000 |
| EMP003 | วิชัย เก่งมาก | IT | 45,000 |
| EMP004 | มานี มีสุข | การตลาด | 38,000 |
| EMP005 | ปิยะ สุขสันต์ | บัญชี | 30,000 |
ค้นหาชื่อพนักงาน EMP003:
ผลลัพธ์: วิชัย เก่งมาก
ค้นหาแผนกของพนักงาน EMP003:
ผลลัพธ์: IT
ค้นหาเงินเดือนของพนักงาน EMP003:
ผลลัพธ์: 45,000
สังเกตเห็นไหม?
สูตรทั้ง 3 ตัวใช้ search_key และ range เหมือนกัน แค่เปลี่ยนตัวเลข index เพื่อดึงข้อมูลจากคอลัมน์ที่ต่างกัน นี่คือความสะดวกของ VLOOKUP — เขียนสูตรครั้งเดียว ดึงได้หลายคอลัมน์
TRUE vs FALSE — ความแตกต่างของ is_sorted
พารามิเตอร์ตัวสุดท้ายของ VLOOKUP คือ is_sorted ซึ่งกำหนดวิธีการค้นหา มือใหม่หลายคนสับสนตรงนี้ มาดูความแตกต่างกัน:
FALSE (Exact Match)
- ค้นหาค่าที่ตรงกันทุกตัวอักษร
- ข้อมูลไม่ต้องเรียงลำดับ
- เหมาะกับ: รหัสสินค้า, ชื่อคน, ID
- แนะนำสำหรับมือใหม่
TRUE (Approximate Match)
- ค้นหาค่าที่ใกล้เคียงที่สุด
- ข้อมูลต้องเรียงจากน้อยไปมาก
- เหมาะกับ: ช่วงคะแนน, ช่วงราคา
- ใช้ผิดจะได้ผลลัพธ์ผิดโดยไม่แจ้งเตือน
ตัวอย่าง TRUE — คำนวณเกรดจากคะแนน
สมมติมีตารางช่วงคะแนน (ต้องเรียงจากน้อยไปมาก):
| คะแนนต่ำสุด | เกรด |
|---|---|
| 0 | F |
| 50 | D |
| 60 | C |
| 70 | B |
| 80 | A |
ผลลัพธ์: B (75 อยู่ในช่วง 70-79 จึงได้เกรด B)
คำเตือนสำหรับมือใหม่
ถ้าไม่แน่ใจว่าจะใช้ TRUE หรือ FALSE ให้ใช้ FALSE เสมอ เพราะ TRUE จะให้ผลลัพธ์ผิดโดยไม่แจ้ง error ถ้าข้อมูลไม่ได้เรียงลำดับ ทำให้ debug ยากมาก
VLOOKUP กับ Data Validation (Dropdown + Auto-fill)
การใช้ VLOOKUP คู่กับ Data Validation (Dropdown) เป็นเทคนิคที่นิยมมากใน Google Sheet เพราะช่วยให้ผู้ใช้เลือกค่าจาก Dropdown แล้วข้อมูลที่เกี่ยวข้องจะแสดงขึ้นมาอัตโนมัติ
สร้าง Dropdown ด้วย Data Validation
เลือกเซลล์ที่ต้องการ (เช่น E2) แล้วไปที่ Data > Data validation > List from a range
ใส่สูตร VLOOKUP อ้างอิงจาก Dropdown
ในเซลล์ F2 (ช่องแสดงชื่อสินค้า) ใส่สูตร:
ในเซลล์ G2 (ช่องแสดงราคา) ใส่สูตร:
ทดสอบ — เลือกสินค้าจาก Dropdown
เมื่อเลือก "P003" จาก Dropdown ในเซลล์ E2 ชื่อสินค้า "หมวกแก๊ป" จะแสดงใน F2 และราคา "199" จะแสดงใน G2 อัตโนมัติ
ประยุกต์ใช้จริง
เทคนิคนี้ใช้ได้กับหลายงาน เช่น:
- ระบบออกใบเสนอราคา — เลือกสินค้าจาก Dropdown แล้วราคาแสดงอัตโนมัติ
- ระบบเช็คชื่อพนักงาน — เลือกรหัสพนักงานแล้วชื่อ-แผนกแสดงอัตโนมัติ
- ระบบสต็อกสินค้า — เลือกสินค้าแล้วจำนวนคงเหลือแสดงอัตโนมัติ
ข้อจำกัดของ VLOOKUP
แม้ VLOOKUP จะเป็นสูตรที่ใช้งานง่ายและได้ผลดี แต่ก็มีข้อจำกัดที่ควรรู้ไว้:
1. ค้นหาได้เฉพาะจากซ้ายไปขวาเท่านั้น
VLOOKUP ค้นหาค่าจากคอลัมน์แรกของ range เสมอ ไม่สามารถค้นหาจากคอลัมน์ขวาแล้วดึงค่าจากคอลัมน์ซ้ายได้
ตัวอย่าง: ถ้าตารางเรียงเป็น ชื่อสินค้า | รหัสสินค้า | ราคา เราไม่สามารถค้นหาจากรหัสสินค้า (คอลัมน์ที่ 2) ได้
2. ดึงได้แค่ค่าแรกที่เจอ
ถ้ามีข้อมูลซ้ำหลายแถว VLOOKUP จะดึงค่าจากแถวแรกที่เจอเท่านั้น ไม่สามารถดึงค่าจากแถวที่ 2, 3 ที่ตรงเงื่อนไขได้
3. ต้องนับเลขคอลัมน์เอง
ถ้าตารางมีหลายคอลัมน์ การนับเลข index อาจผิดพลาดได้ง่าย และถ้ามีการเพิ่ม/ลบคอลัมน์ในภายหลัง เลข index จะเลื่อนทำให้สูตรพัง
ทางออก
เมื่อเจอข้อจำกัดเหล่านี้ ให้ใช้ INDEX + MATCH แทน ซึ่งจะอธิบายในหัวข้อถัดไป
VLOOKUP vs INDEX MATCH — เมื่อไหร่ควรใช้อะไร
INDEX MATCH เป็นสูตรทดแทน VLOOKUP ที่ยืดหยุ่นกว่า มาดูความแตกต่าง:
| คุณสมบัติ | VLOOKUP | INDEX MATCH |
|---|---|---|
| ความง่าย | ง่ายกว่า | ซับซ้อนกว่านิดหน่อย |
| ทิศทางค้นหา | ซ้ายไปขวาเท่านั้น | ทุกทิศทาง |
| เพิ่ม/ลบคอลัมน์ | สูตรอาจพัง | ไม่กระทบ |
| ความเร็ว (ข้อมูลเยอะ) | ช้ากว่านิดหน่อย | เร็วกว่า |
| เหมาะกับ | มือใหม่ งานง่ายๆ | งานซับซ้อน ข้อมูลเยอะ |
เปรียบเทียบสูตร — ค้นหาราคาจากรหัสสินค้า
VLOOKUP:
INDEX MATCH:
คำแนะนำ
สำหรับมือใหม่ แนะนำให้เริ่มจาก VLOOKUP ก่อนเพราะเข้าใจง่ายกว่า เมื่อใช้จนคล่องแล้วและเจอข้อจำกัด ค่อยเรียนรู้ INDEX MATCH เพิ่มเติม ทั้งสองสูตรให้ผลลัพธ์เหมือนกัน แค่วิธีเขียนต่างกัน
ข้อผิดพลาดที่พบบ่อยและวิธีแก้ไข
เมื่อใช้ VLOOKUP ใน Google Sheet เราอาจเจอ error เหล่านี้ มาดูสาเหตุและวิธีแก้ไข:
#N/A — ไม่พบข้อมูลที่ค้นหา
สาเหตุ:
- ค่าที่ค้นหาไม่มีในตาราง (สะกดผิด หรือมีช่องว่างเกิน)
- ช่วง range ไม่ครอบคลุมข้อมูลทั้งหมด
- ชนิดข้อมูลไม่ตรง (ตัวเลข vs ข้อความ)
วิธีแก้:
ใช้ IFERROR ครอบเพื่อแสดงข้อความที่เข้าใจง่ายแทน error
#REF! — อ้างอิงคอลัมน์เกินช่วง
สาเหตุ:
- ตัวเลข index มากกว่าจำนวนคอลัมน์ใน range
- เช่น range มี 3 คอลัมน์ แต่ใส่ index เป็น 4
วิธีแก้:
ตรวจสอบว่า index ไม่เกินจำนวนคอลัมน์ใน range เช่น range เป็น A:C (3 คอลัมน์) index ต้องไม่เกิน 3
ผลลัพธ์ผิด — ได้ค่าไม่ตรงกับที่ต้องการ
สาเหตุ:
- ใช้ TRUE แทน FALSE (หรือไม่ใส่ is_sorted เลย — Google Sheet จะ default เป็น TRUE)
- นับเลข index ผิด
วิธีแก้:
ใส่ FALSE เสมอ (ยกเว้นกรณีช่วงคะแนน) และนับเลข index ให้ถูกต้อง โดยนับจากคอลัมน์แรกของ range เป็น 1
ค้นหาไม่เจอทั้งที่ข้อมูลมีอยู่
สาเหตุ:
- มีช่องว่าง (space) ซ่อนอยู่หน้าหรือหลังข้อความ
- ข้อมูลดูเหมือนกันแต่จริงๆ ไม่ตรงกัน
วิธีแก้:
ใช้ TRIM() ครอบ search_key เพื่อลบช่องว่างส่วนเกินออก
เคล็ดลับใช้ VLOOKUP แบบ Pro
เมื่อเข้าใจพื้นฐานแล้ว ลองใช้เทคนิคเหล่านี้เพื่อทำงานได้เร็วขึ้นและแม่นยำขึ้น:
1. ใช้ $ ล็อคช่วง range
เมื่อต้อง copy สูตร VLOOKUP ไปหลายแถว ให้ใช้ $ ล็อค range เพื่อป้องกันไม่ให้ช่วงข้อมูลเลื่อนตาม:
$A$2:$C$6 จะไม่เปลี่ยนเมื่อ copy สูตรลงแถวอื่น
2. ค้นหาข้ามชีต
VLOOKUP สามารถค้นหาข้อมูลจากชีตอื่นได้ โดยใส่ชื่อชีตนำหน้า:
ค้นหาจากชีตชื่อ "รายการสินค้า" คอลัมน์ A ถึง C
3. ใช้ IFERROR ครอบเสมอ
ในงานจริง ควรครอบ VLOOKUP ด้วย IFERROR เพื่อให้หน้าตาเรียบร้อย:
ถ้าค้นหาไม่เจอจะแสดง "-" แทน #N/A
4. ใช้ Wildcard ค้นหาแบบ "ประมาณ"
ใช้ * (ดอกจัน) เพื่อค้นหาคำที่ขึ้นต้นหรือลงท้ายด้วยคำที่ระบุ:
จะค้นหาค่าที่ขึ้นต้นด้วย "P00" (ได้ผลลัพธ์แรกที่เจอ)
5. ใช้ VLOOKUP กับ ARRAYFORMULA
ถ้าต้องการใส่ VLOOKUP ทั้งคอลัมน์ด้วยสูตรเดียว ใช้ ARRAYFORMULA:
ใส่สูตรครั้งเดียวแล้วจะทำงานทุกแถวอัตโนมัติ
6. ตั้งชื่อ range ด้วย Named Range
แทนที่จะจำ A2:C6 ให้ตั้งชื่อช่วงข้อมูล เช่น "ตารางสินค้า" แล้วใช้ในสูตร:
ไปที่ Data > Named ranges เพื่อตั้งชื่อช่วงข้อมูล อ่านง่ายกว่าใช้ตัวอักษรคอลัมน์
อยากฝึกใช้ VLOOKUP กับข้อมูลจริง?
ลองใช้เทมเพลต Google Sheet สำเร็จรูปของเรา มีสูตร VLOOKUP พร้อมใช้งาน
คำถามที่พบบ่อย
VLOOKUP ใน Google Sheet คืออะไร?
VLOOKUP (Vertical Lookup) คือสูตรใน Google Sheet ที่ใช้ค้นหาข้อมูลในตารางแนวตั้ง โดยค้นหาค่าจากคอลัมน์แรกของช่วงข้อมูล แล้วดึงค่าจากคอลัมน์ที่ต้องการในแถวเดียวกัน เช่น ค้นหารหัสสินค้าแล้วดึงราคามาแสดง
VLOOKUP ใช้ TRUE กับ FALSE ต่างกันยังไง?
FALSE (Exact Match) จะค้นหาค่าที่ตรงกันทุกประการ เหมาะกับข้อมูลเช่น รหัสสินค้า ชื่อพนักงาน ส่วน TRUE (Approximate Match) จะค้นหาค่าที่ใกล้เคียงที่สุด เหมาะกับข้อมูลที่เรียงลำดับแล้ว เช่น ช่วงคะแนนเกรด แนะนำให้มือใหม่ใช้ FALSE เสมอ
VLOOKUP ขึ้น #N/A แก้ยังไง?
Error #N/A เกิดจากค้นหาค่าไม่เจอในตาราง วิธีแก้คือ ตรวจสอบว่าค่าที่ค้นหาสะกดถูกต้อง ตรวจสอบว่าไม่มีช่องว่างเกิน และใช้ IFERROR ครอบเพื่อแสดงข้อความแทน เช่น=IFERROR(VLOOKUP(...), "ไม่พบข้อมูล")
VLOOKUP กับ INDEX MATCH ต่างกันยังไง ควรใช้อะไร?
VLOOKUP ใช้ง่ายกว่าแต่ค้นหาได้เฉพาะจากซ้ายไปขวาเท่านั้น ส่วน INDEX+MATCH ค้นหาได้ทุกทิศทาง ยืดหยุ่นกว่า ไม่ต้องนับเลขคอลัมน์ สำหรับมือใหม่แนะนำเริ่มจาก VLOOKUP ก่อน เมื่อเจอข้อจำกัดค่อยเปลี่ยนไปใช้ INDEX MATCH
VLOOKUP ใช้กับ Data Validation (Dropdown) ได้ไหม?
ได้ เป็นการใช้งานที่นิยมมาก วิธีทำคือสร้าง Dropdown ด้วย Data Validation ในเซลล์หนึ่ง แล้วใช้ VLOOKUP อ้างอิงค่าจาก Dropdown นั้นเพื่อดึงข้อมูลจากตารางมาแสดงอัตโนมัติ เช่น เลือกชื่อสินค้าจาก Dropdown แล้วราคาจะแสดงอัตโนมัติ