Thep Excel

LASTNONBLANKVALUEค่าสุดท้ายที่ไม่ว่างของนิพจน์ตามลำดับของคอลัมน์

LASTNONBLANKVALUE คืนค่าสุดท้ายที่ไม่เป็น BLANK ของ Expression เมื่อประเมินตามลำดับของ Column ในบริบทตัวกรองปัจจุบัน ใช้หา “ค่าล่าสุดที่มีข้อมูล” เช่นยอดขายของวันล่าสุดที่มีค่า

fx
=LASTNONBLANKVALUE(<Column>, <Expression>)

ความนิยม5/10
ความยาก4/10
ประโยชน์5/10

อัปเดต 13 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด คำอธิบาย
Column column คอลัมน์ที่ใช้เป็นลำดับสำหรับการไล่ค่า (มักเป็นวันที่/คีย์ที่เรียงลำดับได้) ฟังก์ชันจะเรียงลำดับค่าของคอลัมน์นี้และไล่ประเมิน Expression ตามลำดับ
Expression expression นิพจน์หรือ Measure ที่ต้องการคืนค่าสุดท้ายที่ไม่เป็น BLANK สามารถเป็น Measure, SELECTEDVALUE, SUM หรือการคำนวณใด ๆ ที่ให้ผลลัพธ์เป็นสเกลาร์

Additional Notes

LASTNONBLANKVALUE เป็นฟังก์ชันที่ออกแบบมาเพื่อหาค่าสุดท้ายที่มีความหมาย (ไม่ใช่ BLANK) ของนิพจน์เมื่อเรียงลำดับตามคอลัมน์ที่กำหนด มันทำงานโดยการไล่ผ่านค่าของคอลัมน์ (เช่นวันที่) ตามลำดับจากน้อยไปมาก แล้วประเมิน Expression สำหรับแต่ละค่า จนกว่าจะพบผลลัพธ์ที่ไม่ใช่ BLANK ตัวสุดท้าย

ที่เจ๋งคือ LASTNONBLANKVALUE นั้นบังคับให้เพิ่มคอลัมน์ลงใน filter context สำหรับการประเมิน Expression โดยอัตโนมัติ ต่างจาก LASTNONBLANK ที่หากคุณต้องการประเมิน Measure บางตัว คุณต้องใช้ CALCULATE เพื่อจัดการ context transition ด้วยตัวเอง แต่กับ LASTNONBLANKVALUE มันช่วยให้สะดวกขึ้นโดยจัดการให้แล้ว

ส่วนตัวผมชอบใช้ LASTNONBLANKVALUE เวลาหา “ข้อมูลล่าสุดที่สมบูรณ์” ในข้อมูลชุดเวลา ถ้าบ้านของคุณมียอดขายทุกวันตั้งแต่จันทร์ถึงวันศุกร์ แต่วันเสาร์ปิดร้าน (ค่า BLANK) ฟังก์ชันนี้จะข้ามวันเสาร์และคืนค่ายอดขายของวันศุกร์ที่ผ่านมา ได้ผลลัพธ์ที่มีความหมายจริง ๆ

How it works

ยอดขายวันล่าสุดที่มียอด (คืนค่าเป็นยอดขาย)

หา “ยอดขาย” ของวันล่าสุดที่ [Total Sales] ไม่เป็น BLANK

คืนค่าสถานะล่าสุดที่ไม่ว่างตามเวลา

คืนค่าสถานะครั้งล่าสุดที่มีข้อมูลในช่วงเวลาที่เลือก

ค่าไม่ว่างล่าสุดภายในกลุ่ม

ใช้กับการกรองตามลูกค้า/สินค้า เพื่อหา “ค่าล่าสุดที่มีข้อมูล” ภายในกลุ่มนั้น

Examples

ตัวอย่างที่ 1: ยอดขายวันล่าสุดที่มีข้อมูลยอดขายวันล่าสุดที่มียอด = LASTNONBLANKVALUE( 'Date'[Date], [Total Sales] )

LASTNONBLANKVALUE ไล่วันที่ตามลำดับจากเก่าไปใหม่ แล้วคืน [Total Sales] ของวันล่าสุดที่มีค่าจริง (ถ้าวันนั้นปิดร้านจะเป็น BLANK ฟังก์ชันจะข้ามไป)

fx
ยอดขายวันล่าสุดที่มียอด =
LASTNONBLANKVALUE(
'Date'[Date],
[Total Sales]
)

ผลลัพธ์ได้ค่าของ [Total Sales] ในวันล่าสุด (ตามลำดับ 'Date'[Date]) ที่ไม่เป็น BLANK
ตัวอย่างที่ 2: สถานะล่าสุดที่ไม่ว่างสถานะล่าสุด (ไม่ว่าง) = LASTNONBLANKVALUE( 'Log'[EventDate], SELECTEDVALUE('Log'[Status]) )

ประเมิน Status ตามลำดับ EventDate และส่งคืนสถานะล่าสุดที่มีค่า เป็นประโยชน์ถ้าบางวันไม่มีบันทึก (BLANK)

fx
=สถานะล่าสุด (ไม่ว่าง) =
LASTNONBLANKVALUE(
'Log'[EventDate],
SELECTEDVALUE('Log'[Status])
)

ผลลัพธ์ได้สถานะล่าสุดที่ไม่เป็น BLANK ตามลำดับวันที่
ตัวอย่างที่ 3: ราคาล่าสุดของสินค้าตามกลุ่มราคาล่าสุด (ไม่ว่าง) = LASTNONBLANKVALUE( 'Date'[Date], SELECTEDVALUE('Product'[Price]) )

เมื่อใช้ร่วมกับ SUMMARIZECOLUMNS หรือ Pivot ฟังก์ชันนี้จะหาราคาล่าสุดของแต่ละสินค้าที่บันทึกไว้

fx
=ราคาล่าสุด (ไม่ว่าง) =
LASTNONBLANKVALUE(
'Date'[Date],
SELECTEDVALUE('Product'[Price])
)

ผลลัพธ์ได้ราคาล่าสุดของสินค้าที่มีข้อมูล
ตัวอย่างที่ 4: ใช้ร่วมกับ ALLSELECTED สำหรับช่วงที่ผู้ใช้เลือกยอดขายล่าสุด (ในช่วงเลือก) = VAR LastDate = CALCULATE( MAX('Date'[Date]), ALLSELECTED('Date') ) RETURN CALCULATE( [Total Sales], 'Date'[Date] = LastDate )

วิธีนี้ใช้ VAR เพื่อหาวันล่าสุด แล้วค่อย CALCULATE เพื่อให้ได้ผลลัพธ์ที่สอดคล้องกับ visual filter ของผู้ใช้

fx
=ยอดขายล่าสุด (ในช่วงเลือก) =
VAR LastDate =
CALCULATE(
MAX('Date'[Date]),
ALLSELECTED('Date')
)
RETURN
CALCULATE(
[Total Sales],
'Date'[Date] = LastDate
)

ผลลัพธ์ได้ค่า Total Sales ของวันล่าสุดภายในช่วงที่ผู้ใช้เลือก

FAQs

ต่างจาก LASTNONBLANK อย่างไร?+

LASTNONBLANK คืนค่า "จากคอลัมน์" ของรายการสุดท้ายที่ไม่ว่าง (เช่นคืนค่าของคอลัมน์ Date เอง) ส่วน LASTNONBLANKVALUE จะคืน "ค่าของ Expression" สำหรับรายการสุดท้ายที่ไม่ว่างตาม Column (เช่นคืน SUM(Sales) ของวันล่าสุด) กล่าวอีกนัยหนึ่ง LASTNONBLANK ให้ key, LASTNONBLANKVALUE ให้ค่า

ฟังก์ชันนี้ขึ้นกับ Filter Context อย่างไร?+

LASTNONBLANKVALUE ทำงานภายใต้ filter context ปัจจุบัน ถ้าผู้ใช้เลือก Category = 'Electronics' ฟังก์ชันจะหาค่าล่าสุดของยอดขาย Electronics เท่านั้น มันจะไม่ข้ามไปหมวดอื่น เพราะ filter context จำกัดได้

ความแตกต่างระหว่าง LASTNONBLANKVALUE และ LASTNONBLANK คืออะไร?+

ผม Recap คืน "ค่าของ Expression" ที่ประเมินสำหรับรายการสุดท้ายที่ไม่เป็น BLANK ตรงนี้คือความแตกต่างสำคัญ LASTNONBLANK ถูกออกแบบเพื่อส่งคืนค่าจากคอลัมน์เอง ขณะที่ LASTNONBLANKVALUE ส่งคืนผลลัพธ์ของนิพจน์ที่ประเมินที่รายการสุดท้ายนั้น

ถ้า Expression เป็น Measure ที่มีการ CALCULATE หลายเลเยอร์จะทำงานถูกต้องหรือ?+

ใช่ได้ แต่ต้องระวังการแชร์ context หากคุณใช้ CALCULATE ซ้อนกัน อาจเกิดสถานการณ์ที่ filter context ถูกปรับเปลี่ยนหลายครั้ง ผมแนะนำให้ใช้ VAR เพื่อสัก simple measure ก่อน แล้วค่อยส่งให้ LASTNONBLANKVALUE

ใช้ได้กับ DirectQuery หรือไม่?+

LASTNONBLANKVALUE ไม่สนับสนุนใน DirectQuery mode บนบางโหมด (เช่นในแถว RLS หรือคอลัมน์คำนวณ) ถ้าคุณใช้ DirectQuery ให้ลองใช้วิธี VAR + MAX + CALCULATE เป็นทางเลือก

Resources & Related

ฟังก์ชันที่ผู้เขียนโยงไว้กับ LASTNONBLANKVALUE จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้LASTNONBLANKVALUETime Intelligence
Filter (3)
ALLSELECTED

ALLSELECTED เป็น DAX function ที่ลบ filter context จาก Visual (row และ column filters) แต่คง filter context จาก Slicer, Page Filter และ Report Filter ไว้ ทำให้สามารถคำนวณ Visual Total ได้ ซึ่งเป็นยอดรวมของข้อมูลที่ผู้ใช้เลือกดูในปัจจุบัน ไม่ใช่ Grand Total ทั้งหมด ฟังก์ชันนี้ทำงานผ่าน Shadow Filter Context ซึ่งเป็น filter context ที่ DAX Engine เก็บไว้ก่อนที่ Visual จะเพิ่ม row/column filter เมื่อเรียก ALLSELECTED จะเรียกคืน shadow context นี้ ใช้ร่วมกับ CALCULATE และ SUM, AVERAGE, DIVIDE เพื่อคำนวณ Visual Total, Percentage of Selected, Dynamic Benchmark, Ranking within Selection และ Time Intelligence ที่เคารพ Slicer ต้องระวังการใช้งานใน iterator functions เช่น SUMX, FILTER เพราะอาจให้ผลลัพธ์ที่ไม่คาดคิด และระวัง Expanded Table Caveat ที่จะลบ filter ของ related table ด้วย

CALCULATE

CALCULATE เป็นฟังก์ชันหลักที่สำคัญที่สุดใน DAX ใช้สำหรับ evaluate expression ภายใต้ filter context ที่ถูกปรับเปลี่ยน สามารถเพิ่มตัวกรองใหม่ ลบตัวกรองเดิม หรือแทนที่ filter ที่มีอยู่ได้ รองรับทั้ง Boolean expression และ table expression เป็น filter arguments พร้อม filter modifier functions เช่น REMOVEFILTERS, ALL, ALLEXCEPT, KEEPFILTERS เพื่อควบคุมการกรองอย่างละเอียด มีพฤติกรรมพิเศษคือ context transition ที่เปลี่ยน row context เป็น filter context โดยอัตโนมัติ ทำให้เป็นเครื่องมือหลักในการสร้าง measure ที่ซับซ้อนและ calculated column ที่ต้องใช้ aggregation

SELECTEDVALUE

SELECTEDVALUE ตรวจสอบว่า Filter Context ลดลงเหลือเพียงค่าเดียวแล้ว ถ้าใช่ให้คืนค่านั้น ถ้าไม่ใช่ให้คืนค่าอื่นแทน

Time Intelligence (3)
FIRSTNONBLANKVALUE

FIRSTNONBLANKVALUE คืนค่าแรกที่ไม่เป็น BLANK ของ Expression เมื่อประเมินตามลำดับของ Column ซึ่งมีประโยชน์ในการหาค่าเริ่มต้นหรือค่าแรกที่มีข้อมูลจริง เช่นยอดขายของวันแรกที่มีการขาย

LASTDATE

LASTDATE คืนค่าตารางที่มีวันที่สุดท้ายในบริบทตัวกรองปัจจุบัน มักใช้เป็นตารางตัวกรองให้ CALCULATE เพื่อคำนวณ measure ณ วันสุดท้ายของช่วงที่เลือก และสามารถใช้ MAXX เพื่อแปลงผลเป็น scalar date ได้

LASTNONBLANK

LASTNONBLANK คืนค่าตัวสุดท้ายจากคอลัมน์ที่ทำให้ expression ไม่เป็น BLANK ใช้บ่อยกับ semi-additive measures และเวลาต้องการหา "วันล่าสุดที่มีข้อมูล" ตามลำดับแถวของคอลัมน์

Other (1)
BLANK

BLANK คืนค่าว่างเปล่า (Empty Value) ในDAX ซึ่งแตกต่างจาก 0 หรือ "" โดยใช้สำหรับระบุว่าไม่มีข้อมูล มักใช้ใน IF เพื่อซ่อนผลลัพธ์ที่ไม่ต้องการ

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่