สรุปสูตร VLookUp and Match-Index เข้าใจง่ายๆ

สวัสดีครับ วันนี้ผมจะแชร์วิธีการใช้สูตร Vlookup กับ match + Index ที่บางคนไม่เข้าใจหรือยังสับสนกับวิธีใช้งาน แล้วทั้งสองสูตรนี้แตกต่างกันอย่างไร ใช้แทนกันเลยได้ไหม ซึ่งผมสรุปให้เข้าใจง่ายๆเรียบร้อยแล้ว ขอเชิญชมได้เลยครับ

VLookUp Formula

เริ่มต้นด้วยสูตร Vlookup ที่เป็นพื้นฐานก่อนเลยนะครับ

=VLOOKUP(รหัสค้นหา, ตารางที่ค้นหาซึ่งคอลัมม์แรกเป็นรหัสค้นหา, ลำดับคอลัมม์ของตารางที่จะแสดงผล,0=ต้องเจอแบบเป๊ะๆ(แนะนำ), 1=แบบไม่เป๊ะ **ข้อมูลตารางต้องเรียงกัน)

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

จากรูปตัวอย่าง คือเราจะใช้รหัสสินค้า B67890 เพื่อค้นหาจากช่วงตาราง H9:I11 และต้องการได้เป็นชื่อสินค้า ซึ่งจะอยู่ในลำดับคอลัมม์ที่ 2 ของช่วงตาราง จึงเขียนสูตรได้ดังนี้
=VLOOKUP(C10,H9:I11,2,0) แล้วจะได้ค่ากลับมาคือ “สินค้า B” นั่นเอง

Match Formula

=MATCH(รหัสค้นหา, ช่วงคอลัมม์ที่ใช้ค้นหาลำดับของรหัส, 0=ต้องเจอแบบเป๊ะๆ(แนะนำ) หรือ 1,-1=แบบไม่เป๊ะ เจอค่าที่มากกว่า/น้อยกว่าย้อนกลับ 1 ช่อง *ข้อมูลตารางต้องเรียงกันให้สอดคล้องการดึงค่ากลับ)

ต่อมาเป็นสูตร Match นะครับ สูตรนี้จะใช้หาลำดับของข้อมูลที่ค้นหา ว่าได้เป็นลำดับที่เท่าไหร่ ซึ่งจากรูปตัวอย่างคือ ใช้รหัสสินค้า B67890 ค้นหาในช่วงคอลัมม์รหัสสินค้า H9:H11 แล้วเราจะได้ผลลัพธ์ว่ารหัส B67890 นั้นเป็นลำดับที่ 3 ของช่วงคอลัมม์ H9:H11 นั่นเอง

Index Formula

=INDEX(ตารางที่ค้นหา, ลำดับข้อมูลค้นหา, ลำดับคอลัมม์ที่ต้องการให้แสดงผล)

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

จากตัวอย่างนั้นก็คือ เราจำเป็นต้องรู้ลำดับค้นหาก่อน โดยผมทราบอยู่แล้วว่ารหัสสินค้า B67890 นั้นอยู่ในลำดับที่ 3 ของตาราง(จากตัวอย่างที่แล้ว) และผมอยากได้ชื่อสินค้าของรหัสนี้ ซึ่งชื่อสินค้านั้นอยู่เป็นลำดับที่สอง อยู่ถัดจากรหัสสินค้านั้นเอง จึงเขียนสูตรได้เป็น =INDEX(H9:H11,3,2) ก็จะได้ผลลัพธ์คือ ชื่อ “สินค้า B”ครับ

Index+Match Formula

ทีนี้เราสามารถนำสองสูตรมาทำงานร่วมกันได้ โดย Index นั้นต้องการลำดับของข้อมูลที่ค้นหา เราจึงแทนค่าลำดับนี้ด้วยสูตร Match ได้ โดยจะหาลำดับออกมาก่อน แล้วค่อยส่งค่านี้ให้ Index นำไปค้นหาข้อมูลอีกที ซึ่งสูตรสำเร็จก็สามารถเขียนได้เป็น =INDEX(H9:I11,MATCH(C10,H9:H11,0),2) เราก็จะได้ ชื่อ “สินค้า B” ออกมาเช่นเดียวกับใช้สูตร VLookUp นั่นเองครับ

แล้วทำไมต้องใช้ INDEX+MATCH ?? ใช้ VLOOKUP สูตรเดียวแทนเลยดีกว่าไหม

มีอยู่สองเหตุผลหลักๆเลยครับที่ Index+Match ดีกว่า VLOOKUP นั่นก็คือ

1. สูตร VLOOKUP ไม่สามารถดึงข้อมูลจากขวาไปซ้ายได้

สมมุติว่าเรารู้แต่ข้อมูลชื่อสินค้า B แต่อยากรู้ว่ารหัสสินค้านั้นคืออะไร สูตร VLookUp ไม่สามารถดึงได้เลยนะครับ ต้องมาสลับตำแหน่งให้ชื่อสินค้าอยู่ก่อนรหัสสินค้าถึงจะดึงได้ เพราะ VLookUp จะดึงจากซ้ายไปขวาเท่านั้นครับ แต่ถ้าใช้ Index+Match ก็สามารถใส่สูตรได้เลย โดยหาลำดับของ สินค้า B ก่อน จะได้เป็นลำดับที่ 3 แล้วจึงใช้ Index ดึงค่าจากคอลัมม์แรกมาแสดงได้เลย ดังตัวอย่างด้านล่างครับ

2. Index+Match ช่วยเรื่องประสิทธิภาพไวกว่ามากๆ

จริงๆแล้วถ้าใช้งานทั่วไปในการดึงข้อมูลเล็กๆ ก็เพียงพอครับ แต่สมมุติว่า เราใช้รหัสสินค้า ไปดึง ชื่อสินค้า, ราคา, ประเภทสินค้า, บริษัท และ อื่นๆ เป็นจำนวนมาก การใช้ VLookUp เพื่อหาข้อมูลแต่ละตัว จะใช้เวลามากๆเลยครับ เพราะสูตรต้องไปไล่หาตำแหน่งของรหัสทุกๆครั้งของแต่ละค่าออกมา เช่น หาสินค้ารหัส A ได้ลำดับที่ 10 แล้วไปดึงชื่อสินค้ามาแสดง จากนั้นไปหาราคาสินค้าก็ไล่หาใหม่ได้ลำดับที่ 10 เหมือนกัน และทำอย่างนี้ไปเรื่อยๆจนครบ ซึ่งจริงๆแล้วเราสามารถใส่สูตร Match เพื่อได้ลำดับทิ้งเอาไว้ก่อน แล้วค่อยเอาสูตร Index ดึงค่าจากลำดับที่หามาไว้แล้วมาแสดงเลย ซึ่งจะมีประสิทธิภาพมากกว่าการใช้ VLOOKUP มากๆเลยครับ

หวังว่าบทความนี้จะมีประโยชน์ไม่มากก็น้อยนะครับ หากมีข้อเสนอแนะหรืออยากทราบเรื่องไหนเป็นพิเศษ สามารถพูดคุยใน Page ได้เลยนะครับ แล้วติดตามต่อในบทความหน้านะครับ ขอบคุณครับ

2 Comments

  • จิราภรณ์ May 13, 2017 at 8:53 pm

    เอาอีก เอาอีก

    Reply
  • chiro November 4, 2017 at 9:19 am

    เลิศๆ ขอบคุณค่ะ จะลองเอาไปใช้ดูค่ะ

    Reply

Leave a Comment