---
title: ENDOFYEAR – ชุดวันที่ของวันสิ้นปีในบริบทปัจจุบัน
url: https://www.thepexcel.com/functions/dax/time-intelligence/endofyear-dax/
type: function-explainer
program: DAX
syntax: "ENDOFYEAR(<Dates>[, <YearEndDate>])"
date: 2025-12-13
updated: 2025-12-24
scores:
  popularity: 6
  difficulty: 3
  usefulness: 6
---

# ENDOFYEAR – ชุดวันที่ของวันสิ้นปีในบริบทปัจจุบัน

> ENDOFYEAR คืนตารางวันที่ของวันสิ้นปีตามบริบทวันที่ปัจจุบัน และรองรับการกำหนดวันสิ้นปีบัญชี เหมาะกับก

## คำอธิบาย

ENDOFYEAR คืนตารางวันที่ของวันสิ้นปีตามบริบทวันที่ปัจจุบัน และรองรับการกำหนดวันสิ้นปีบัญชี เหมาะกับการใช้เป็นตัวกรองเวลาใน CALCULATE เพื่อประเมินมาตรวัดที่วันสิ้นปี

## Syntax

```excel
ENDOFYEAR(&lt;Dates&gt;[, &lt;YearEndDate&gt;])
```

**Variant**

```excel
ENDOFYEAR(&lt;Dates&gt;)
```

คืนตารางวันที่ของวันสิ้นปีตามปีปฏิทิน

**Variant**

```excel
ENDOFYEAR(&lt;Dates&gt;, &lt;YearEndDate&gt;)
```

กำหนดวันสิ้นปีบัญชีในรูปแบบ "MM-DD" เช่น "03-31"

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| Dates | Yes | column |  | คอลัมน์วันที่จากตารางวันที่/ปฏิทิน หรือเรียกได้ว่า 'ตารางวันที่' ที่มีหลายแถวของวันที่ต่อเนื่อง |
| YearEndDate | No | text | "12-31" | วันสิ้นปีบัญชีในรูปแบบ "MM-DD" หรือ "M-D" โดยส่วนปีจะถูกละเลย (เช่น "03-31" สำหรับปีบัญชีที่สิ้นสุด 31 มีนาคม) |

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

### ประเมินมาตรวัด ณ วันสิ้นปี

เช่น ยอดคงเหลือสิ้นปีตามบริบทที่เลือก

_เหมาะกับ:_ evaluate-at-year-end

### รองรับปีบัญชี

กำหนด YearEndDate เพื่อให้วันสิ้นปีอิงปีบัญชี

_เหมาะกับ:_ fiscal-year-end

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: ยอดคงเหลือสิ้นปี (ปีปฏิทิน)

```excel
Balance at Year End =
CALCULATE(
    [Balance],
    ENDOFYEAR('DimDate'[Date])
)
```

**ผลลัพธ์:** `ประเมิน [Balance] ที่วันสิ้นปี (31 ธันวาคม) ของบริบทปัจจุบัน`

ENDOFYEAR คืนชุดวันที่ที่เป็นวันสิ้นปี จากนั้น CALCULATE ใช้ผลลัพธ์นี้เป็นตัวกรองเวลา เพื่อประเมินมาตรวัด [Balance] ที่วันเดียวนั้น

### 2. ตัวอย่างที่ 2: วันสิ้นปีบัญชีสิ้นสุด 31 มีนาคม

```excel
Balance at Fiscal Year End =
CALCULATE(
    [Balance],
    ENDOFYEAR('DimDate'[Date], "03-31")
)
```

**ผลลัพธ์:** `ประเมินยอดคงเหลือที่วันสิ้นปีบัญชี (31 มีนาคม)`

เมื่อระบุพารามิเตอร์ YearEndDate เป็น "03-31" ฟังก์ชันจะค้นหาวันที่ 31 มีนาคมในปีเดียวกับบริบทวันที่ปัจจุบัน แล้วคืนวันที่นั้นเป็นตารางสำหรับการกรอง

### 3. ตัวอย่างที่ 3: ดูตารางวันที่ที่ ENDOFYEAR คืนมา (Calculated Column)

```excel
Year End Dates =
ENDOFYEAR('DimDate'[Date])
```

**ผลลัพธ์:** `ได้ผลลัพธ์เป็นตารางวันที่ที่มีวันสิ้นปี สำหรับแต่ละแถวจะแสดงวันสิ้นปีของปีนั้น`

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

### 4. ตัวอย่างที่ 4: เปรียบเทียบยอดสิ้นปีกับยอดเริ่มปี

```excel
Year-over-Year Change =
VAR EndBalance = CALCULATE([Balance], ENDOFYEAR('DimDate'[Date]))
VAR StartBalance = CALCULATE([Balance], STARTOFYEAR('DimDate'[Date]))
RETURN
    EndBalance - StartBalance
```

**ผลลัพธ์:** `ส่วนต่างระหว่างยอดคงเหลือสิ้นปีและต้นปี`

ใช้ VAR เก็บผลลัพธ์ของ ENDOFYEAR และ STARTOFYEAR จากนั้นคำนวณส่วนต่าง โดยวิธีนี้เข้าใจง่ายและไม่ต้องคำนวณ CALCULATE ซ้ำหลายครั้ง

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

- ถ้าต้องการค่า 'snapshot' ของระบบบัญชี ให้จับคู่ ENDOFYEAR กับ CLOSINGBALANCEYEAR เพื่อลดโค้ด

- ใช้ ENDOFYEAR ร่วมกับ STARTOFYEAR เพื่อสร้างช่วงเวลาครบถ้วนของปี

- ถ้าหลายปี ให้ใช้ ENDOFYEAR แต่ละปีแล้ว UNION (หรือ ROW ในเวอร์ชันเก่า) เพื่อรวมผลลัพธ์

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

- ในการรายงาน ถ้าต้องการยอดสิ้นปี ให้ใช้ ENDOFYEAR + CALCULATE เป็นรูปแบบมาตรฐานเพื่อให้โค้ดสม่ำเสมอ

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

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

ENDOFYEAR คืนเพียง 'วันเดียว' (วันสิ้นปี) ส่วน DATESYTD คืน 'ช่วงของวันที่' ตั้งแต่ต้นปีถึงวันปัจจุบัน จึงใช้ประโยชน์ต่างกัน: ENDOFYEAR สำหรับ snapshot ที่จุดเวลาสุดท้าย, DATESYTD สำหรับการสะสมตั้งแต่ต้นปี

**Q: ควรใช้อินพุต Dates จากตารางแบบไหน?**

ควรใช้คอลัมน์วันที่จากตารางวันที่ (date table) ที่ต่อเนื่องและถูกมาร์กเป็น 'Date Table' ในโมเดล Power BI หรือ Analysis Services เพื่อให้การคำนวณช่วงเวลาเชื่อถือได้และเร็ว

**Q: ถ้าไม่มี YearEndDate จะเป็นยังไง?**

ค่าเริ่มต้นคือ "12-31" (31 ธันวาคม) หมายความว่า ENDOFYEAR จะค้นหาวันสิ้นปีตามปีปฏิทินตามปกติ

**Q: เมื่อไหร่ควรใช้ ENDOFYEAR กับ CLOSINGBALANCEYEAR?**

ENDOFYEAR คืนตารางวันที่ที่สามารถใช้เป็นตัวกรองใน CALCULATE ส่วน CLOSINGBALANCEYEAR เป็นแบบ 'ลัดวงจร' ที่ประเมิน Expression ณ วันสิ้นปีโดยตรง หากต้องการควบคุมอย่างละเอียด ใช้ ENDOFYEAR, หากต้องการความสะดวก ใช้ CLOSINGBALANCEYEAR

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

ได้ แต่ต้องเข้าใจว่ากำลังทำงานในระบบ row context ดังนั้น ENDOFYEAR จะคืนตารางวันที่สำหรับแต่ละแถว ปกติใช้เพื่อตรวจสอบ หรือรวมกับ CONTAINS เพื่อเช็คว่าวันในแถวนั้นเป็นวันสิ้นปีหรือไม่

**Q: ถ้ากำหนด YearEndDate ที่ไม่มีข้อมูล จะเป็นอย่างไร?**

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

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

- calculate
- endofmonth
- endofquarter
- datesytd
- closingbalanceyear
- previousyear

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

- [DAX Guide: ENDOFYEAR](https://dax.guide/endofyear/) _(guide)_
- [Microsoft Learn: ENDOFYEAR Function](https://learn.microsoft.com/en-us/dax/endofyear-function-dax) _(official)_
- [SQLBI: Time Intelligence Functions](https://www.sqlbi.com/articles/time-intelligence-in-dax/) _(guide)_

---

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