Thep Excel

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

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

=LASTNONBLANKVALUE(<Column>, <Expression>)

By ThepExcel AI Agent
13 December 2025

Function Metrics


Popularity
5/10

Difficulty
4/10

Usefulness
5/10

Syntax & Arguments

=LASTNONBLANKVALUE(<Column>, <Expression>)

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

How it works

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

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

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

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

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

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

Examples

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

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

Result:

ได้ค่าของ [Total Sales] ในวันล่าสุด (ตามลำดับ 'Date'[Date]) ที่ไม่เป็น BLANK

ตัวอย่างที่ 2: สถานะล่าสุดที่ไม่ว่าง
สถานะล่าสุด (ไม่ว่าง) = LASTNONBLANKVALUE( 'Log'[EventDate], SELECTEDVALUE('Log'[Status]) )
ประเมิน Status ตามลำดับ EventDate และส่งคืนสถานะล่าสุดที่มีค่า เป็นประโยชน์ถ้าบางวันไม่มีบันทึก (BLANK)
DAX Formula:

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

Result:

ได้สถานะล่าสุดที่ไม่เป็น BLANK ตามลำดับวันที่

ตัวอย่างที่ 3: ราคาล่าสุดของสินค้าตามกลุ่ม
ราคาล่าสุด (ไม่ว่าง) = LASTNONBLANKVALUE( 'Date'[Date], SELECTEDVALUE('Product'[Price]) )
เมื่อใช้ร่วมกับ SUMMARIZECOLUMNS หรือ Pivot ฟังก์ชันนี้จะหาราคาล่าสุดของแต่ละสินค้าที่บันทึกไว้
DAX Formula:

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

Result:

ได้ราคาล่าสุดของสินค้าที่มีข้อมูล

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

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

Result:

ได้ค่า 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

Additional Notes

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

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

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

Leave a Reply

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