LOOKUP ค้นหาค่าในช่วงข้อมูลที่เรียงลำดับแล้ว (ascending) และคืนค่าจากตำแหน่งเดียวกันในอีกช่วงหนึ่ง มีเทคนิคพิเศษคือหาค่าสุดท้ายที่ไม่ว่าง แนะนำใช้ XLOOKUP แทนสำหรับ Excel 365
=LOOKUP(lookup_value, lookup_vector, [result_vector])
=LOOKUP(lookup_value, lookup_vector, [result_vector])
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| lookup_value | Any | Yes | ค่าที่ต้องการค้นหา (LOOKUP จะหาค่าที่น้อยกว่าหรือเท่ากับที่ใกล้เคียงที่สุด) | |
| lookup_vector | Range/Array | Yes | ช่วงข้อมูลที่ค้นหา (ต้องเรียงจากน้อยไปมาก) หรือ array 2 มิติสำหรับ Array form | |
| result_vector | Range/Array | Optional | lookup_vector | ช่วงข้อมูลผลลัพธ์ (ต้องมีขนาดเท่ากับ lookup_vector) ถ้าไม่ระบุจะใช้ lookup_vector |
ใช้ LOOKUP หาช่วงคะแนนที่ตรงกับเกรด โดยไม่ต้องใช้ IF ซ้อนกันหลายชั้น
เทคนิคยอดนิยมสำหรับหาข้อมูลล่าสุดในคอลัมน์ที่มีข้อมูลว่าง
ค้นหาแบบประมาณค่า เช่น หาราคาตามช่วงน้ำหนัก หาค่าคอมมิชชั่นตามยอดขาย
LOOKUP(75, {0,50,60,70,80}, {"F","D","C","B","A"})=LOOKUP(75, {0,50,60,70,80}, {"F","D","C","B","A"})
"B"
LOOKUP(2, 1/(A1:A100""), A1:A100)=LOOKUP(2, 1/(A1:A100<>""), A1:A100)
"ข้อมูลสุดท้าย"
LOOKUP(9.99E+307, A:A)=LOOKUP(9.99E+307, A:A)
12345
LOOKUP("C", A1:B5)=LOOKUP("C", A1:B5)
"Result for C"
LOOKUP(Sales[Amount], {0,10000,50000,100000}, {0.05,0.07,0.1,0.15})*Sales[Amount]=LOOKUP(Sales[Amount], {0,10000,50000,100000}, {0.05,0.07,0.1,0.15})*Sales[Amount]
7500
LOOKUP(REPT("z", 255), A:A)=LOOKUP(REPT("z", 255), A:A)
"ZZZ"
LOOKUP ค้นหาแบบ approximate match เท่านั้น (ต้องเรียงข้อมูล), VLOOKUP เลือก exact หรือ approximate ได้ และ VLOOKUP ระบุหมายเลขคอลัมน์ผลลัพธ์ได้
LOOKUP ใช้ binary search จึงต้องเรียงข้อมูลจากน้อยไปมาก ถ้าไม่เรียงจะได้ผลลัพธ์ผิด
Vector form ใช้ 2 ช่วงแยกกัน (lookup และ result), Array form ใช้ 1 ช่วงหลายคอลัมน์ (ค้นหาคอลัมน์แรก คืนคอลัมน์สุดท้าย)
ใช้ XLOOKUP ถ้ามี (Excel 365/2021) เพราะยืดหยุ่นกว่า ใช้ LOOKUP สำหรับความเข้ากันได้กับ Excel เก่าหรือเทคนิคหาค่าสุดท้าย
ทุกเวอร์ชันตั้งแต่ Excel 2003 เป็นฟังก์ชันพื้นฐานที่มีใน spreadsheet ทุกโปรแกรม
LOOKUP ค้นหาค่าในช่วงข้อมูลที่เรียงลำดับแล้ว (ascending) และคืนค่าจากตำแหน่งเดียวกันในอีกช่วงหนึ่ง มี 2 รูปแบบ: Vector (2 ช่วงแยกกัน) และ Array (1 ช่วงหลายคอลัมน์) เทคนิคพิเศษคือหาค่าสุดท้ายที่ไม่ว่าง แนะนำใช้ XLOOKUP แทนสำหรับ Excel 365 ใช้คู่กับ VLOOKUP HLOOKUP INDEX MATCH