---
title: เจาะลึกสูตร VLOOKUP ดูจบใช้เป็นเลย
url: https://www.thepexcel.com/vlookup-function/
type: post
date: 2013-11-17
updated: 2020-05-10
author: Sira Ekabut
categories: [Excel ทั่วไป]
tags: [VLOOKUP]
---

# เจาะลึกสูตร VLOOKUP ดูจบใช้เป็นเลย

VLOOKUP (Vertical Lookup) เป็นฟังก์ชั่นใน Excel ที่จัดอยู่ในประเภทการค้นหาและอ้างอิงข้อมูล เช่น **เอาไว้หาว่ารหัสสินค้าที่กำลังค้นหาคือสินค้าชื่ออะไร (ดูจากตารางอ้างอิงที่เรามีอยู่)** โดยถือว่าเป็นฟังก์ชั่นที่ผู้หัดใช้ Excel แรกๆ อาจรู้สึกว่ามันใช้ยาก ซึ่งก็จริง แต่ถ้าหากว่าเราใช้ฟังก์ชั่นนี้เป็นแล้ว เราจะใช้งาน Excel ทำอะไรได้อีกมากเลยทีเดียว ดังนั้นเรามาหัดใช้กันให้คล่องเถอะครับ

    

## วิธีการใช้งาน

 

การใช้ VLOOKUP นั้นจะมีสิ่งที่ต้องกรอกหลายช่องหน่อยนะครับ อย่าเพิ่งตกใจ ลองค่อยๆอ่านตามไปเรื่อยๆ นะครับ จะมีตัวอย่างให้ดูที่ทำให้เห็นภาพมากขึ้นแน่นอน

 

```
= VLOOKUP(lookup_value, table_array, col_index_num,[range_lookup])
```

 =VLOOKUP(ค้นหาคำนี้,จากคอลัมน์แรกในตารางนี้,เมื่อเจอแล้วให้เอาค่าในคอลัมน์ที่ xx ของตารางกลับมา (นับซ้ายไปขวา), [ใช้โหมด Lookup แบบ Approximate Match หรือ Exact Match]) 

## VLOOKUP มี 2 โหมดด้วยกัน

 
1. **Approximate Match** (ตั้งค่า Range Lookup เป็น TRUE หรือ 1 หรือ เว้นไว้ไม่กรอก) แปลว่า แม้ไม่เจอค่าที่ต้องการหาเป๊ะๆ ก็ยังส่งค่าบางอย่างกลับมาได้ (แล้วมันส่งค่าอะไรกลับมาเดี๋ยวจะอธิบายอีกที)
2. **Exact Match** (ตั้งค่า Range Lookup เป็น FALSE หรือ 0) แปลว่า ต้องเจอค่า/คำที่ต้องการเป๊ะๆ จึงจะส่งค่ากลับมา

 

ซึ่งในบทความนี้ผมจะขออธิบายจากตัวที่ง่ายกว่าก่อน นั่นก็คือ VLOOKUP โหมด Exact Match ครับ

 

## VLOOKUP โหมด Exact Match

 

**จุดประสงค์หลัก** : เหมาะกับการ Map ข้อมูล (ดึงค่าจาก Reference ที่กำหนด)  
**มันจะทำงานดังนี้**

 

[![Excel VLOOOKUP exact match](https://www.thepexcel.com/wp-content/uploads/2013/11/vlookup-exact.gif)](https://www.thepexcel.com/wp-content/uploads/2013/11/vlookup-exact.gif)

 
1. หาคำที่ต้องการจากคอลัมน์ซ้ายสุดของตารางที่กำหนด (Table Array) และทำการหาจากบนลงล่าง (Vertical Lookup)
2. ผลมี 2 กรณี 
    1. ถ้าเจอคำที่ต้องการ(ต้องเหมือนเป๊ะๆ) มันจะหยุดที่บรรทัดนั้น 
          - ถ้ามีค่าที่ตรงเงื่อนไขหลายค่าในคอลัมน์ที่ค้นหา มันจะยึดที่เจออันแรกสุด (เฉพาะแบบ Exact Match นะ)
    2. ไม่เจอคำที่ต้องการเป๊ะๆ จะแสดงค่า Error กลับมาเป็น #N/A (ย่อมาจาก Not Available แปลว่าหาไม่เจอ)
3. กรณีเจอคำที่ต้องการเป๊ะๆ จะวิ่งไปทางขวา (ในบรรทัดเดียวกับตัวที่เจอ) ตาม Col Index ที่กำหนด **เริ่มนับที่คอลัมน์ซ้ายสุดของ Table_Array เป็น 1**, ถัดไปทางขวา =2, 3, 4… เพื่อเอาค่าใน Col Index ที่กำหนดกลับมาแสดงค่า 
    - ตัวอย่างในรูป ช่อง G3 เกิดจากการใช้ VLOOKUP **ค้นหาทะเบียน นม6666** ว่าอยู่บรรทัดไหน ถ้าเจอ**ให้เอาคอลัมน์ที่ 2 **ของบรรทัดนั้นกลับมา** **(นับเฉพาะขอบเขตตารางที่เลือกไว้ ไม่เกี่ยวว่าคอลัมน์ที่ 2 คือ B) ซึ่งจะ**ได้ค่า BMW**

 

## ทำไมใช้ VLOOKUP แล้วขึ้น #N/A หาไม่เจอ (ทั้งๆ ที่น่าจะเจอ)?

 

คุณอาจเคยเจอปัญหา ว่าเห็น lookup_value ในตารางอ้างอิงอยู่เต็มๆ ตา ทำไม VLOOKUP แล้วกลับขึ้นมาว่าเป็น #N/A ซึ่งอาการที่พบบ่อยมีอยู่ 3 แบบ ดังนี้

 

### ข้อมูลไม่ตรงกันจริงๆ เช่น ติดช่องว่างมา

 

บางครั้งสิ่งที่เราเห็นว่าตรงกัน อาจะไม่ตรงกันจริงๆ ก็ได้ เช่นตัวนึงเป็น AAA อีกอันเป็น AAA mี่มีช่องว่างอยู่ด้านหลัง (เรามองด้วยตาเปล่าไม่เห็นหรอก) วิธีแก้คือ**ใช้ฟังก์ชัน TRIM มาครอบเพื่อตัดช่องว่างส่วนเกินออกซะ** จะได้ใช้ VLOOKUP ได้อย่างไม่มีปัญหา

 

### Data Type ไม่ตรงกัน

 

อาการนี้พบบ่อยที่สุด นั่นคือ ค่า lookup_value ที่เราระบุไว้ในฟังก์ชั่น VLOOKUP กับค่าที่อยู่ในตารางอ้างอิง ( table_array) เป็นข้อมูลคนละประเภทกันนั่นเอง ที่เจอบ่อยๆ คือ ใน Lookup_value เป็นตัวเลข ส่วนตารางอ้างอิงเป็น Text ที่มีหน้าตาเป็นตัวเลข ซึ่งมองด้วยตาเปล่าอาจมองไม่ออก ต้องใช้ฟังก์ชั่น TYPE มาช่วยตรวจถึงรู้ว่าเป็นข้อมูลประเภทไหนกันแน่ เช่น

 

[![vlookup-error](https://www.thepexcel.com/wp-content/uploads/2015/04/vlookup-error.png)](https://www.thepexcel.com/wp-content/uploads/2015/04/vlookup-error.png)

 

=VLOOKUP(30,ตารางอ้างอิง,2,0) จะขึ้น #N/A หากว่าในตารางอ้างอิงเป็นข้อมูลประเภท Text

 

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

 
- ทำให้ Lookup_value เป็น Text ไปด้วย เช่น =VLOOKUP(“30”,ตารางอ้างอิง,2,0) หรือ
- จะ ใช้ cell reference ที่มีข้อมูลเป็น Text เลข 30 ก็ได้ เช่น ถ้าเอา Text เลข 30 ไปไว้ใน B8 ถ้าเขียน =VLOOKUP(B8,ตารางอ้างอิง,2,0) ก็จะเจอ เช่นกัน หรือ
- ทำให้ตารางอ้างอิงเป็นเลขไปเลย ซึ่งทำได้หลายวิธี เช่น ใช้วิธีเอาเลข 1 ไปคูณให้หมด  
  คือ copy เลข 1 –> เลือกตารางอ้างอิงคอลัมน์แรก –> Paste Special –> Multiply

 

[![vlookup-error1](https://www.thepexcel.com/wp-content/uploads/2015/04/vlookup-error1.png)](https://www.thepexcel.com/wp-content/uploads/2015/04/vlookup-error1.png)

 

### Cell Reference เลื่อน

 

[![vlookup-error2-add](https://www.thepexcel.com/wp-content/uploads/2015/04/vlookup-error2-add.png)](https://www.thepexcel.com/wp-content/uploads/2015/04/vlookup-error2-add.png)

 

อาการนี้มักเกิดขึ้นเวลาจะ Lookup ข้อมูลแล้วมีการ Copy สูตรลงมาข้างล่างยาวๆ ไม่ก็ Copy เปลี่ยนคอลัมน์ไปทางแนวนอน แล้วลืมกด Lock ตารางอ้างอิงไว้ ทำให้ตัวที่ถูก Copy ท้ายๆ เลื่อนการอ้างอิงตารางไปผิดตำแหน่ง ทำให้หาข้อมูลไม่เจอ เป็นต้น

 

ทางแก้ คือ เราควรทำการ ตรึงตำแหน่งสูตร Cell Reference ในส่วนของ ตาราง Table__array ทุกครั้ง โดยการกดปุ่ม F4 ให้มีเครื่องหมาย $ ขึ้นมาคลุม

 

หรือไม่ก็ใช้วิธีตั้งชื่อ Defined Name ก็ได้เช่นกัน อันนั้นมันจะ ตรึงตำแหน่งสูตร Cell Reference ด้วยการใช้ชื่อเอง เราไม่ต้องมานั่ง Lock อีกครั้ง สะดวกมาก

 

[![vlookup-error3](https://www.thepexcel.com/wp-content/uploads/2015/04/vlookup-error3.png)](https://www.thepexcel.com/wp-content/uploads/2015/04/vlookup-error3.png)

 

## แล้วยังไงต่อ?

 

และนี่ก็จบแล้วสำหรับการใช้ VLOOKUP พื้นฐานแบบ Exact Match ถ้าใครอยาก[ศึกษา VLOOKUP โหมด Approximate Match ต่อไป สามารถคลิ๊กอ่านได้ที่นี่](https://www.thepexcel.com/vlookup-approximate/)

---

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