ตารางข้อมูลมีหลายหมื่นแถวและต้องสรุปตามหมวด เวลา และพื้นที่อย่างโต้ตอบได้ จึงถามว่า ในไมโครซอฟท์เอกเซล เมื่อต้องการค้นหาว่าชื่อพนักงานใน Sheet2 คอลัมน์ A ปรากฏอยู่ใน Sheet1 คอลัมน์ A หรือไม่ และถ้าพบให้แสดงเงินเดือนจาก Sheet1 คอลัมน์ B สูตรใดถูกต้อง
ก=VLOOKUP(A1,Sheet1!A:B,2,FALSE)
ข=IFERROR(VLOOKUP(A1,Sheet1!$A:$B,2,FALSE),"ไม่พบ")
ค=IF(MATCH(A1,Sheet1!A:A,0),INDEX(Sheet1!B:B,MATCH(A1,Sheet1!A:A,0)),"ไม่พบ")
ง=IFERROR(INDEX(Sheet1!B:B,MATCH(A1,Sheet1!A:A,0)),"ไม่พบ")
เฉลยอธิบาย
=IFERROR(VLOOKUP(A1,Sheet1!$A:$B,2,FALSE),"ไม่พบ") เป็นสูตรที่ถูกต้องและใช้งานง่าย โดย VLOOKUP ค้นหาชื่อใน Sheet1 คอลัมน์ A แล้วดึงคอลัมน์ B (เงินเดือน) และ IFERROR จัดการกรณีไม่พบโดยแสดง 'ไม่พบ' แทนค่า Error ตัวเลือก B ไม่มี IFERROR จะแสดง #N/A เมื่อไม่พบ, ตัวเลือก C ใช้ MATCH เพียงอย่างเดียวในเงื่อนไข IF ซึ่งจะ Error เมื่อไม่พบแทนที่จะ Return FALSE, ตัวเลือก D ก็ถูกต้องเช่นกันแต่ตัวเลือก A ใช้ VLOOKUP ซึ่งเป็นมาตรฐานที่ง่ายกว่า