---
title: LASTNONBLANKVALUE – ค่าสุดท้ายที่ไม่ว่างของนิพจน์ตามลำดับของคอลัมน์
url: https://www.thepexcel.com/functions/dax/time-intelligence/lastnonblankvalue-dax/
type: function-explainer
program: DAX
syntax: "LASTNONBLANKVALUE(<Column>, <Expression>)"
date: 2025-12-13
updated: 2025-12-25
scores:
  popularity: 5
  difficulty: 4
  usefulness: 5
---

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

> LASTNONBLANKVALUE คืนค่าสุดท้ายที่ไม่เป็น BLANK ของ Expression เมื่อประเมินตามลำดับของ Column ในบริบ

## คำอธิบาย

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

## Syntax

```excel
LASTNONBLANKVALUE(&lt;Column&gt;, &lt;Expression&gt;)
```

## Arguments

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

## เคสการใช้งาน

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

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

_เหมาะกับ:_ last-sales-value

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

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

_เหมาะกับ:_ last-nonblank-status

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

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

_เหมาะกับ:_ last-value-by-group

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: ยอดขายวันล่าสุดที่มีข้อมูล

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

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

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

### 2. ตัวอย่างที่ 2: สถานะล่าสุดที่ไม่ว่าง

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

**ผลลัพธ์:** `ได้สถานะล่าสุดที่ไม่เป็น BLANK ตามลำดับวันที่`

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

### 3. ตัวอย่างที่ 3: ราคาล่าสุดของสินค้าตามกลุ่ม

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

**ผลลัพธ์:** `ได้ราคาล่าสุดของสินค้าที่มีข้อมูล`

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

### 4. ตัวอย่างที่ 4: ใช้ร่วมกับ ALLSELECTED สำหรับช่วงที่ผู้ใช้เลือก

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

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

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

## หมายเหตุเพิ่มเติม

- ผมแนะนำให้ใช้ LASTNONBLANKVALUE กับ "Column ที่เป็น Date หรือ Sequence" ที่มีลำดับธรรมชาติ ถ้าคอลัมน์ไม่มีลำดับ ผลลัพธ์อาจไม่สมเหตุสมผล

- ระวังการทำงานร่วมกับ filter context ถ้า Column มี BLANK หลายช่อง ฟังก์ชันจะข้ามทั้งหมด แต่ถ้า Expression คืน BLANK แทน มันจะหาค่าก่อนหน้านั้น

- ถ้า Expression คำนวณหนัก การไล่ค่าทีละสมาชิกของ Column อาจมีผลกับประสิทธิภาพ ผมแนะนำให้ตรวจสอบ cardinality ของ Column หลังจากใช้ Measure นี้ ถ้าช้าลองจำกัดช่วงข้อมูลให้แคบลง

- ส่วนตัวผมมักใช้ LASTNONBLANKVALUE ร่วมกับ VAR เพื่อเก็บผลลัพธ์กลาง แล้วค่อยใช้มันในการคำนวณต่อไป จะ debug ได้ง่ายกว่า

- ผมแนะนำให้ทดสอบกับข้อมูลตัวอย่างที่มี BLANK อยู่จริง ๆ เพื่อให้แน่ใจว่ายังทำงานตามที่คาดหวัง

## คำถามที่พบบ่อย

**Q: ต่างจาก LASTNONBLANK อย่างไร?**

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

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

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

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

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

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

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

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

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

## ฟังก์ชันที่เกี่ยวข้อง

- lastnonblank
- lastdate
- firstnonblankvalue
- selectedvalue
- allselected
- blank
- calculate

## แหล่งข้อมูลเพิ่มเติม

- [DAX Guide: LASTNONBLANKVALUE](https://dax.guide/lastnonblankvalue/) _(guide)_
- [Microsoft Learn: LASTNONBLANKVALUE Function](https://learn.microsoft.com/en-us/dax/lastnonblankvalue-function-dax) _(official)_

---

_Source: [https://www.thepexcel.com/functions/dax/time-intelligence/lastnonblankvalue-dax/](https://www.thepexcel.com/functions/dax/time-intelligence/lastnonblankvalue-dax/)_
