🧐 ริจะใช้ Index ให้เหนือกว่า VLookup ... อย่าใช้แบบ VLookup
VLookup เป็นสูตรที่มีข้อจำกัดว่าต้องค้นหาค่าจาก column ซ้ายสุดในตารางเท่านั้น แล้วจึงใช้ตำแหน่งรายการที่ค้นหาได้ไปหาคำตอบจาก column ด้านขวาตามเรื่องที่ต้องการ
หากต้องการหลีกพ้นจากข้อจำกัดนี้ให้ใช้ Index แทนโดยจะหาคำตอบจาก column ด้านไหนก็ได้โดยไม่จำกัดว่าจะต้องเป็น column ด้านขวาอีกต่อไป โดยให้ใช้สูตร Match ช่วยหาตำแหน่งรายการนั้นมาให้
นี่คือคำแนะนำโดยทั่วไปว่า ทำไมสูตร Match Index จึงยืดหยุ่นกว่าสูตร VLookup ซึ่งมักจะสอนให้ใช้สูตรตามภาพนี้ในส่วนที่ใส่สีแดงไว้
👉 กรณีใช้ VLookup
G3 : =VLOOKUP(F3,MyData,2,0)
H3 : =VLOOKUP(F3,MyData,3,0)
👉 พอเปลี่ยนไปใช้ Match Index
F9 : =MATCH(F3,Id,0) หาตำแหน่งรายการของ Id a003 ออกมาให้ก่อน
G9 : =INDEX(MyData,F9,2)
H9 : =INDEX(MyData,F9,3)
🧐 พิจารณาดูให้ดีครับว่า ถ้าใช้ Index ตามแบบข้างบนนี้เหมือนกับ VLookup ตรงไหน
ทั้งหมดล้วนอ้างอิงกับพื้นที่ MyData ซึ่งเป็นพื้นที่ตารางทั้งหมดใช่ไหม และพอจะหาค่าจาก column ใดก็ต้องใส่เลข 2 กับ 3 ลงไปเหมือนกันเลยใช่ไหมครับ
🥵 การอ้างอิงกับตารางพื้นที่ MyData ทั้งหมดนี่แหละที่ทำให้ Index มีข้อเสียเหมือนกับ VLookup
หากมีใครก็ไม่รู้ไปจัดสลับ column หรือ insert column แทรกเข้าไปในตาราง MyData จะทำให้ทั้ง VLookup และ Index หาค่าผิดได้ทันที
👉 👉 แทนที่จะไปใช้พื้นที่ตารางทั้งหมดแบบ 2 dimensions ให้เปลี่ยนไปใช้สูตร Index แบบ 1 dimension ดีกว่าครับ
G17 : =INDEX(Name,F17)
H17 : =INDEX(Amount,F17)
อยากจะหาค่าจากเรื่องอะไรก็ให้ใช้ column ของ Name กับ Amount เป็นตารางตามแนวตั้งที่ต้องการหาคำตอบ
... นี่คือสูตร Index แบบที่ผมใช้และแนะนำให้ใช้ครับ Index จึงจะเรียกได้ว่ายืดหยุ่นกว่า VLookup อย่างแท้จริง
- ไม่ต้องห่วงว่าใครจะไปปรับแทรกหรือสลับที่ column ในโครงสร้างตาราง
- ตัวสูตรมีความชัดเจนว่ากำลังหาค่าเรื่องอะไร
- ที่สำคัญ Index แบบนี้จะทำงานได้เร็วกว่าแบบ 2 dimensions ที่มักจะทำงานช้าลงเมื่อตารางมีขนาดใหญ่ขึ้นโดยเฉพาะเมื่อมีหลาย column