LOOKUP เป็นสูตรค้นหารุ่นเก่าที่ยังเจอบ่อยในไฟล์คนอื่น จุดเด่นคือเขียนสั้น ไม่ต้องระบุเลขคอลัมน์เหมือน VLOOKUP แต่มีข้อจำกัดสำคัญคือข้อมูลต้องเรียงจากน้อยไปมาก และค้นแบบ “ใกล้เคียง” เท่านั้น บทความนี้อธิบายทั้งสองรูปแบบของ LOOKUP และบอกว่าเมื่อไรควรใช้ เมื่อไรควรเลี่ยง
รูปแบบที่ 1: Vector form (ค้นแถว/คอลัมน์เดียว)
=LOOKUP(ค่าที่ค้น, ช่วงที่ค้น, ช่วงผลลัพธ์)
=LOOKUP(D2, A2:A6, C2:C6)| A | C | D | E | ||
|---|---|---|---|---|---|
| 1 | คะแนนขั้นต่ำ | เกรด | คะแนน | เกรด | |
| 2 | 0 | F | 73 | C | |
| 3 | 50 | D | |||
| 4 | 60 | C | |||
| 5 | 70 | B | |||
| 6 | 80 | A |
คะแนน 73 ตกอยู่ระหว่าง 70 กับ 80 LOOKUP คืนค่าของ “ช่วงที่ไม่เกิน” คือแถว 70 → เกรด C เหมาะกับตารางเกณฑ์แบบขั้นบันได (เกรด ค่าคอมมิชชัน อัตราภาษี) โดยคอลัมน์ A ต้องเรียงจากน้อยไปมาก
รูปแบบที่ 2: Array form
=LOOKUP(ค่าที่ค้น, ตาราง) — ค้นในคอลัมน์แรกของตาราง คืนค่าจากคอลัมน์สุดท้าย
=LOOKUP(D2, A2:C6)| A | B | C | D | E | ||
|---|---|---|---|---|---|---|
| 1 | ขั้นต่ำ | ระดับ | ส่วนลด | ยอดซื้อ | ส่วนลด | |
| 2 | 0 | ทั่วไป | 0% | 1,200 | 5% | |
| 3 | 1,000 | เงิน | 5% | |||
| 4 | 5,000 | ทอง | 10% |
ยอดซื้อ 1,200 บาท เข้าเกณฑ์ระดับ “เงิน” ได้ส่วนลด 5% การเขียนแบบนี้สั้น แต่ผูกกับตำแหน่งคอลัมน์แรก/สุดท้ายตายตัว
LOOKUP ต่างจากสูตรค้นหาตัวอื่น
| LOOKUP | VLOOKUP / XLOOKUP | |
| ต้องเรียงข้อมูล | ต้องเรียง (ไม่งั้นผลผิด) | ไม่ต้อง (เมื่อค้นแบบตรงเป๊ะ) |
| ค้นแบบตรงเป๊ะ | ทำไม่ได้ | ทำได้ |
| ระบุคอลัมน์ผลลัพธ์ | อิสระ (vector form) | VLOOKUP ใช้เลขคอลัมน์ / XLOOKUP อิสระ |
ในงานทั่วไปแนะนำ XLOOKUP หรือ INDEX + MATCH เพราะปลอดภัยกว่า LOOKUP ยังมีที่ใช้ 2 กรณีคือ ตารางเกณฑ์ขั้นบันไดที่เรียงอยู่แล้ว และสูตร trick หาค่าล่าสุด
สูตร trick: หาค่าสุดท้ายที่ตรงเงื่อนไข
=LOOKUP(2, 1/(A2:A100=E2), B2:B100) คืนค่า ตัวสุดท้าย ที่ตรงเงื่อนไข โดยไม่ต้องเรียงข้อมูล ใช้ดึงราคาล่าสุดหรือสถานะล่าสุดจาก log — อธิบายละเอียดที่บทความ หาค่าล่าสุดที่ตรงเงื่อนไข
ข้อควรรู้
- ข้อมูลไม่เรียง = ผลลัพธ์ผิดแบบเงียบๆ — LOOKUP จะไม่ฟ้อง Error แต่คืนค่าผิด นี่คือเหตุผลหลักที่คนเลี่ยง
- ค่าที่ค้นน้อยกว่าค่าแรกในช่วง — ได้
#N/A - vector form: สองช่วงต้องยาวเท่ากัน และอยู่แนวเดียวกัน (แถวคู่แถว หรือคอลัมน์คู่คอลัมน์)
- เจอในไฟล์เก่า — ถ้าจะแก้ให้ทันสมัย เปลี่ยนเป็น XLOOKUP ที่ใส่
match_modeเป็น-1(ค่าที่ไม่เกิน) จะได้พฤติกรรมเทียบเท่าแบบปลอดภัยกว่า