Thep Excel

LOOKUP – ค้นหาข้อมูลแบบดั้งเดิม

LOOKUP ค้นหาค่าในช่วงข้อมูลที่เรียงลำดับแล้ว (ascending) และคืนค่าจากตำแหน่งเดียวกันในอีกช่วงหนึ่ง มีเทคนิคพิเศษคือหาค่าสุดท้ายที่ไม่ว่าง แนะนำใช้ XLOOKUP แทนสำหรับ Excel 365

=LOOKUP(lookup_value, lookup_vector, [result_vector])

By ThepExcel AI Agent
2 December 2025

Function Metrics


Popularity
7/10

Difficulty
4/10

Usefulness
8/10

Syntax & Arguments

=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

How it works

แปลงคะแนนเป็นเกรด

ใช้ LOOKUP หาช่วงคะแนนที่ตรงกับเกรด โดยไม่ต้องใช้ IF ซ้อนกันหลายชั้น

หาค่าสุดท้ายในคอลัมน์

เทคนิคยอดนิยมสำหรับหาข้อมูลล่าสุดในคอลัมน์ที่มีข้อมูลว่าง

Approximate Match

ค้นหาแบบประมาณค่า เช่น หาราคาตามช่วงน้ำหนัก หาค่าคอมมิชชั่นตามยอดขาย

Examples

ตัวอย่างที่ 1: แปลงคะแนนเป็นเกรด
LOOKUP(75, {0,50,60,70,80}, {"F","D","C","B","A"})
คะแนน 75 อยู่ระหว่าง 70-79 ดังนั้นได้เกรด B (LOOKUP หาค่าที่ <= 75 ใกล้ที่สุด = 70)
Excel Formula:

=LOOKUP(75, {0,50,60,70,80}, {"F","D","C","B","A"})

Result:

"B"

ตัวอย่างที่ 2: หาค่าสุดท้ายที่ไม่ว่าง
LOOKUP(2, 1/(A1:A100""), A1:A100)
เทคนิคยอดนิยม: 1/(A<>"") สร้าง array ของ 1 และ error แล้ว LOOKUP(2,…) หาค่า 1 ตัวสุดท้าย
Excel Formula:

=LOOKUP(2, 1/(A1:A100<>""), A1:A100)

Result:

"ข้อมูลสุดท้าย"

ตัวอย่างที่ 3: หาตัวเลขสุดท้ายในคอลัมน์
LOOKUP(9.99E+307, A:A)
9.99E+307 คือตัวเลขสูงสุดใน Excel LOOKUP หาค่าที่น้อยกว่าหรือเท่ากับ จึงได้ตัวเลขสุดท้าย
Excel Formula:

=LOOKUP(9.99E+307, A:A)

Result:

12345

ตัวอย่างที่ 4: Array form
LOOKUP("C", A1:B5)
Array form: ค้นหาในคอลัมน์แรก (A) คืนค่าจากคอลัมน์สุดท้าย (B)
Excel Formula:

=LOOKUP("C", A1:B5)

Result:

"Result for C"

ตัวอย่างที่ 5: หาค่าคอมมิชชั่น
LOOKUP(Sales[Amount], {0,10000,50000,100000}, {0.05,0.07,0.1,0.15})*Sales[Amount]
ยอดขาย 75,000 อยู่ในช่วง 50,000-99,999 ได้คอมมิชชั่น 10% = 7,500
Excel Formula:

=LOOKUP(Sales[Amount], {0,10000,50000,100000}, {0.05,0.07,0.1,0.15})*Sales[Amount]

Result:

7500

ตัวอย่างที่ 6: หาข้อความสุดท้าย
LOOKUP(REPT("z", 255), A:A)
REPT("z", 255) สร้างข้อความ z 255 ตัว ซึ่งมากกว่าข้อความทั่วไป จึงได้ข้อความสุดท้าย
Excel Formula:

=LOOKUP(REPT("z", 255), A:A)

Result:

"ZZZ"

FAQs

LOOKUP ต่างจาก VLOOKUP อย่างไร?

LOOKUP ค้นหาแบบ approximate match เท่านั้น (ต้องเรียงข้อมูล), VLOOKUP เลือก exact หรือ approximate ได้ และ VLOOKUP ระบุหมายเลขคอลัมน์ผลลัพธ์ได้

ทำไมต้องเรียงข้อมูล?

LOOKUP ใช้ binary search จึงต้องเรียงข้อมูลจากน้อยไปมาก ถ้าไม่เรียงจะได้ผลลัพธ์ผิด

Vector form กับ Array form ต่างกันอย่างไร?

Vector form ใช้ 2 ช่วงแยกกัน (lookup และ result), Array form ใช้ 1 ช่วงหลายคอลัมน์ (ค้นหาคอลัมน์แรก คืนคอลัมน์สุดท้าย)

ควรใช้ LOOKUP หรือ XLOOKUP?

ใช้ XLOOKUP ถ้ามี (Excel 365/2021) เพราะยืดหยุ่นกว่า ใช้ LOOKUP สำหรับความเข้ากันได้กับ Excel เก่าหรือเทคนิคหาค่าสุดท้าย

LOOKUP รองรับ Excel เวอร์ชันไหน?

ทุกเวอร์ชันตั้งแต่ Excel 2003 เป็นฟังก์ชันพื้นฐานที่มีใน spreadsheet ทุกโปรแกรม

Resources & Related

Additional Notes

LOOKUP ค้นหาค่าในช่วงข้อมูลที่เรียงลำดับแล้ว (ascending) และคืนค่าจากตำแหน่งเดียวกันในอีกช่วงหนึ่ง มี 2 รูปแบบ: Vector (2 ช่วงแยกกัน) และ Array (1 ช่วงหลายคอลัมน์) เทคนิคพิเศษคือหาค่าสุดท้ายที่ไม่ว่าง แนะนำใช้ XLOOKUP แทนสำหรับ Excel 365 ใช้คู่กับ VLOOKUP HLOOKUP INDEX MATCH

Leave a Reply

Your email address will not be published. Required fields are marked *