LOOKUP เป็นสูตรค้นหารุ่นเก่าที่ยังเจอบ่อยในไฟล์คนอื่น จุดเด่นคือเขียนสั้น ไม่ต้องระบุเลขคอลัมน์เหมือน VLOOKUP แต่มีข้อจำกัดสำคัญคือข้อมูลต้องเรียงจากน้อยไปมาก และค้นแบบ “ใกล้เคียง” เท่านั้น บทความนี้อธิบายทั้งสองรูปแบบของ LOOKUP และบอกว่าเมื่อไรควรใช้ เมื่อไรควรเลี่ยง
🎬 ดูวิดีโอสอน (57 วินาที) บน Excel จริง หรืออ่านขั้นตอนละเอียดด้านล่าง
รูปแบบที่ 1: Vector form (ค้นแถว/คอลัมน์เดียว)
=LOOKUP(ค่าที่ค้น, ช่วงที่ค้น, ช่วงผลลัพธ์)
ตัวอย่างบน Excel จริง =LOOKUP(D2,A2:A6,B2:B6) คะแนน 73 ได้เกรด B และถ้าค่าที่ค้นน้อยกว่าค่าแรกในช่วง (เช่น -5) จะได้ #N/A


คะแนน 73 ตกอยู่ระหว่าง 70 กับ 80 LOOKUP คืนค่าของ “ช่วงที่ไม่เกิน” คือแถว 70 → เกรด B เหมาะกับตารางเกณฑ์แบบขั้นบันได (เกรด ค่าคอมมิชชัน อัตราภาษี) โดยคอลัมน์ A ต้องเรียงจากน้อยไปมาก
รูปแบบที่ 2: Array form
=LOOKUP(ค่าที่ค้น, ตาราง) — ค้นในคอลัมน์แรกของตาราง คืนค่าจากคอลัมน์สุดท้าย
ตัวอย่างบน Excel จริง =LOOKUP(K2,G2:I4) ยอดซื้อ 1,200 ได้ส่วนลด 5%

ยอดซื้อ 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(ค่าที่ไม่เกิน) จะได้พฤติกรรมเทียบเท่าแบบปลอดภัยกว่า