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 โหมดด้วยกัน
- Approximate Match (ตั้งค่า Range Lookup เป็น TRUE หรือ 1 หรือ เว้นไว้ไม่กรอก) แปลว่า แม้ไม่เจอค่าที่ต้องการหาเป๊ะๆ ก็ยังส่งค่าบางอย่างกลับมาได้ (แล้วมันส่งค่าอะไรกลับมาเดี๋ยวจะอธิบายอีกที)
- Exact Match (ตั้งค่า Range Lookup เป็น FALSE หรือ 0) แปลว่า ต้องเจอค่า/คำที่ต้องการเป๊ะๆ จึงจะส่งค่ากลับมา
ซึ่งในบทความนี้ผมจะขออธิบายจากตัวที่ง่ายกว่าก่อน นั่นก็คือ VLOOKUP โหมด Exact Match ครับ
VLOOKUP โหมด Exact Match
จุดประสงค์หลัก : เหมาะกับการ Map ข้อมูล (ดึงค่าจาก Reference ที่กำหนด)
มันจะทำงานดังนี้
- หาคำที่ต้องการจากคอลัมน์ซ้ายสุดของตารางที่กำหนด (Table Array) และทำการหาจากบนลงล่าง (Vertical Lookup)
- ผลมี 2 กรณี
- ถ้าเจอคำที่ต้องการ(ต้องเหมือนเป๊ะๆ) มันจะหยุดที่บรรทัดนั้น
- ถ้ามีค่าที่ตรงเงื่อนไขหลายค่าในคอลัมน์ที่ค้นหา มันจะยึดที่เจออันแรกสุด (เฉพาะแบบ Exact Match นะ)
- ไม่เจอคำที่ต้องการเป๊ะๆ จะแสดงค่า Error กลับมาเป็น #N/A (ย่อมาจาก Not Available แปลว่าหาไม่เจอ)
- ถ้าเจอคำที่ต้องการ(ต้องเหมือนเป๊ะๆ) มันจะหยุดที่บรรทัดนั้น
- กรณีเจอคำที่ต้องการเป๊ะๆ จะวิ่งไปทางขวา (ในบรรทัดเดียวกับตัวที่เจอ) ตาม 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(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
Cell Reference เลื่อน
อาการนี้มักเกิดขึ้นเวลาจะ Lookup ข้อมูลแล้วมีการ Copy สูตรลงมาข้างล่างยาวๆ ไม่ก็ Copy เปลี่ยนคอลัมน์ไปทางแนวนอน แล้วลืมกด Lock ตารางอ้างอิงไว้ ทำให้ตัวที่ถูก Copy ท้ายๆ เลื่อนการอ้างอิงตารางไปผิดตำแหน่ง ทำให้หาข้อมูลไม่เจอ เป็นต้น
ทางแก้ คือ เราควรทำการ ตรึงตำแหน่งสูตร Cell Reference ในส่วนของ ตาราง Table__array ทุกครั้ง โดยการกดปุ่ม F4 ให้มีเครื่องหมาย $ ขึ้นมาคลุม
หรือไม่ก็ใช้วิธีตั้งชื่อ Defined Name ก็ได้เช่นกัน อันนั้นมันจะ ตรึงตำแหน่งสูตร Cell Reference ด้วยการใช้ชื่อเอง เราไม่ต้องมานั่ง Lock อีกครั้ง สะดวกมาก
แล้วยังไงต่อ?
และนี่ก็จบแล้วสำหรับการใช้ VLOOKUP พื้นฐานแบบ Exact Match ถ้าใครอยากศึกษา VLOOKUP โหมด Approximate Match ต่อไป สามารถคลิ๊กอ่านได้ที่นี่