หน้าแรก บทความ Microsoft
Microsoft

หาค่าล่าสุดที่ตรงเงื่อนไขใน Excel (XLOOKUP -1 / LOOKUP trick)

เผยแพร่ 29 ส.ค. 69

บ่อยครั้งที่เรามี “ประวัติ” ยาวๆ เช่น log ราคาสินค้า หรือบันทึกสถานะออร์เดอร์ แล้วอยากได้แค่ “ค่าล่าสุด” ของแต่ละรายการ ไม่ใช่ค่าแรก บทความนี้รวมวิธีหาค่าล่าสุด (และค่าแรก) ที่ตรงเงื่อนไข ตั้งแต่วิธีใหม่ด้วย XLOOKUP จนถึงสูตร LOOKUP trick ที่ใช้ได้ทุกเวอร์ชัน

วิธีที่ 1: XLOOKUP ค้นจากล่างขึ้นบน (Microsoft 365)

F2fx=XLOOKUP(E2, B2:B8, C2:C8, "ไม่พบ", 0, -1)
A B C E F
1 วันที่ สินค้า ราคา สินค้า ราคาล่าสุด
2 1 ส.ค. เมาส์ 450 เมาส์ 420
3 5 ส.ค. คีย์บอร์ด 790
4 9 ส.ค. เมาส์ 430
5 14 ส.ค. เมาส์ 420

อาร์กิวเมนต์สุดท้าย -1 สั่งให้ XLOOKUP ค้นจากรายการสุดท้ายย้อนขึ้นมา จึงเจอ “เมาส์” แถวที่ 5 (ราคา 420) ก่อน ถ้าใช้ค่าเริ่มต้น (1) จะได้ราคาแรก 450

วิธีที่ 2: LOOKUP trick (ใช้ได้ทุกเวอร์ชัน)

F2fx=LOOKUP(2, 1/(B2:B8=E2), C2:C8)
B C E F
1 ออร์เดอร์ สถานะ ออร์เดอร์ สถานะล่าสุด
2 #101 รับออเดอร์ #101 จัดส่งแล้ว
3 #102 รับออเดอร์
4 #101 แพ็คของ
5 #101 จัดส่งแล้ว

หลักการ: 1/(B2:B8=E2) ได้ 1 ตรงแถวที่ตรงเงื่อนไข และ #DIV/0! ตรงที่ไม่ตรง จากนั้น LOOKUP(2, ...) มองหาเลข 2 ซึ่งไม่มีจริง มันจึงเลื่อนไปหยุดที่ค่า 1 ตัวสุดท้าย แล้วคืนค่าคู่กันจากคอลัมน์ C = สถานะล่าสุด

วิธีที่ 3: หาค่าในเซลล์สุดท้ายที่ไม่ว่างของคอลัมน์

E1fx=LOOKUP(2, 1/(A2:A100<>""), A2:A100)
A E
1 ยอดวันที่ ล่าสุด
2 1,200 1,500
3 1,350
4 1,500

ใช้ดึงค่าล่าสุดที่กรอกในคอลัมน์ที่ยังเพิ่มข้อมูลเรื่อยๆ โดยไม่ต้องรู้ว่าตอนนี้มีถึงแถวไหน

วิธีที่ 4: ถ้ามีคอลัมน์วันที่ ใช้ MAXIFS ชี้แถวล่าสุด

F2fx=XLOOKUP(MAXIFS(A2:A8, B2:B8, E2), A2:A8, C2:C8)
A B C E F
1 วันที่ สินค้า ราคา สินค้า ราคา ณ วันล่าสุด
2 14/08/2026 เมาส์ 420 เมาส์ 420

MAXIFS หาวันที่ล่าสุดของสินค้านั้น แล้ว XLOOKUP ดึงราคาของวันนั้น วิธีนี้แม่นกว่าเมื่อข้อมูลไม่ได้เรียงตามเวลา

ข้อควรรู้

หมายเหตุ: บทความนี้เขียนและเรียบเรียงโดย AI

← กลับหน้าบทความ
Line