สูตร VLookup เป็นสูตรยอดนิยมในการใช้ค้นหาค่าที่ต้องการจากตารางข้อมูลที่บันทึกไว้เป็นเซลล์ติดต่อกัน ตัวอักษร V นำหน้าย่อมาจากคำว่า Vertical ซึ่งแปลว่า แนวตั้ง สูตรนี้จึงมีลักษณะการทำงานตามชื่อสูตร นั่นคือ ใช้ค้นหาค่าจากตารางที่เก็บข้อมูลแต่ละเรื่องไว้ตามแนวตั้งหรือตามแนว column โดยมีข้อแม้ว่าต้องใช้ข้อมูลแนวตั้งหรือ column ด้านซ้ายสุดเท่านั้นเป็นค่าที่ใช้ค้นหา

image023

ตาราง B2:D7 เป็นตารางฐานข้อมูลที่เก็บข้อมูลไว้เป็นเซลล์ติดต่อกัน โดยตั้งชื่อ Range Name ว่า MyData ให้กับเซลล์ B3:D7 ซึ่งเป็นพื้นที่รายการข้อมูลที่เก็บไว้ ไม่รวมถึงพื้นที่หัวตาราง B2:D2 ซึ่งถูกตั้งชื่อว่า Header

เมื่อต้องการค้นหาว่ารหัส Id a003 ในเซลล์ F3 มีชื่อและยอดสินค้าเท่ากับเท่าใด โดยให้แสดงคำตอบในเซลล์ G3 และ H3 ตามลำดับ ให้เริ่มพิจารณาก่อนว่าข้อมูลรหัส Id ถูกจัดเก็บไว้เป็น column ซ้ายสุดของตาราง MyData ดังนั้นจึงสามารถนำสูตร VLookup มาใช้ค้นหาชื่อและยอดสินค้าได้ตามต้องการดังนี้

  • เซลล์ G3 ใช้สูตร =VLOOKUP( $F$3, MyData, 2 ) ได้คำตอบเป็นชื่อ C
  • เซลล์ H3 ใช้สูตร =VLOOKUP( $F$3, MyData, 3 ) ได้คำตอบเป็นยอดสินค้า 30

เลข 2 และเลข 3 ซึ่งใส่ไว้ในวงเล็บด้านหลังสุด หมายถึง การกำหนดให้สูตร VLookup นำคำตอบจากตาราง MyData ใน column ที่ 2 และ 3 มาแสดง

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

image024

สาเหตุที่เป็นเช่นนี้เพราะสูตร VLookup ที่ใช้อยู่นั้นเป็นสูตรแบบ Approaching Match โดยสูตรแบบนี้จะทำงานได้ถูกต้องต่อเมื่อ column ซ้ายสุดเรียงค่าไว้จากน้อยไปมากเท่านั้น หากค่าที่ต้องการหาคือ a003x ไม่มี ก็จะใช้รหัสอื่นที่น้อยกว่าหรือเท่ากับ a003x มาใช้แทนซึ่งก็คือใช้รหัส a003 แทนนั่นเอง ทำให้ยังใช้ค้นหาได้ตามปกติแต่ได้ผลลัพธ์ไม่ถูกต้อง

สูตรแบบ Approaching Match เหมาะกับการใช้ตัวเลขซึ่งมีค่าต่อเนื่องกันไปใช้ในการค้นหา แต่ตัวอย่างนี้ค่าที่ใช้ค้นหาเป็นรหัส ขอแนะนำให้ปรับสูตรไปใช้แบบ Exact Match แทนโดยเพิ่มเลข 0 ต่อท้ายเข้าไปด้านหลังสุดในสูตรดังนี้

  • เซลล์ G3 ใช้สูตร =VLOOKUP( $F$3, MyData, 2, 0 )
  • เซลล์ H3 ใช้สูตร =VLOOKUP( $F$3, MyData, 3, 0 )

แม้สูตรในเซลล์ G3 และ H3 จะคืนค่าว่า #N/A ก็ตาม แต่เป็นคำตอบที่ถูกต้องเพราะในเมื่อรหัส a003x ไม่มีอยู่จริง ก็ต้องหาคำตอบไม่ได้

image025

ในสูตร VLookup แบบ Exact Match ขอให้สังเกตว่าใน column ของรหัส Id ไม่จำเป็นต้องเรียงจากน้อยไปมาก ซึ่งเลข 0 ที่เพิ่มต่อท้ายลงไปนั้นมีความหมายว่า ไม่ หรือ False (หมายถึงกำหนดให้สูตรหาค่าแบบไม่จำเป็นต้องเรียงลำดับ) หากเปลี่ยนรหัสในเซลล์ F3 เป็นรหัสอื่นที่มีอยู่จริง ก็ย่อมหาคำตอบได้ถูกต้องตามต้องการ

Author: สมเกียรติ ฟุ้งเกียรติEmail: This email address is being protected from spambots. You need JavaScript enabled to view it.

E-Learning

Go to top