---
title: DATESYTD – ชุดวันที่ตั้งแต่ต้นปี (YTD) เพื่อใช้เป็นตัวกรองเวลา
url: https://www.thepexcel.com/functions/dax/time-intelligence/datesytd-dax/
type: function-explainer
program: DAX
syntax: "DATESYTD(<Dates>[, <YearEndDate>])"
date: 2025-12-13
updated: 2025-12-20
scores:
  popularity: 7
  difficulty: 4
  usefulness: 8
---

# DATESYTD – ชุดวันที่ตั้งแต่ต้นปี (YTD) เพื่อใช้เป็นตัวกรองเวลา

> DATESYTD คืนตารางวันที่ของช่วงตั้งแต่ต้นปีถึงวันที่สุดท้ายที่มองเห็นใน Filter Context ใช้เป็นตัวกรอง

## คำอธิบาย

DATESYTD คืนตารางวันที่ของช่วงตั้งแต่ต้นปีถึงวันที่สุดท้ายที่มองเห็นใน Filter Context ใช้เป็นตัวกรองเวลาใน CALCULATE สำหรับการคำนวณยอดสะสมตั้งแต่ต้นปี รองรับทั้งปีปฏิทินและปีบัญชี (Fiscal Year) ด้วย YearEndDate argument

## Syntax

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

**Variant**

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

คืนชุดวันที่ YTD ตามปีปฏิทินปกติ

**Variant**

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

กำหนดวันสิ้นปีบัญชี (เช่น "03-31") เพื่อให้ YTD อิงปีบัญชี

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| Dates | Yes | column |  | คอลัมน์วันที่จากตารางวันที่ (Date Table) ต้องเป็นคอลัมน์ที่มีวันที่ครบต่อเนื่อง |
| YearEndDate | No | text | "12-31" | วันสิ้นปีบัญชีในรูปแบบ "MM-DD" เช่น "03-31", "06-30", "09-30" ถ้าไม่ระบุจะใช้ปีปฏิทินปกติ |

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

### ทำยอดสะสมตั้งแต่ต้นปี

ใช้เป็นตัวกรองเวลาเพื่อให้มาตรวัดคำนวณเฉพาะช่วงตั้งแต่ต้นปี

_เหมาะกับ:_ ytd-total

### ทำยอดสะสมตามปีบัญชี

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

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

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: ยอดขายสะสมตั้งแต่ต้นปี (พื้นฐาน)

```excel
Sales YTD =
CALCULATE(
    [Sales Amount],
    DATESYTD('Date'[Date])
)
```

**ผลลัพธ์:** `สมมติ Filter Context คือเดือนมีนาคม 2024 จะได้ยอดขายตั้งแต่ 1 ม.ค. - 31 มี.ค. 2024`

DATESYTD('Date'[Date]) คืนชุดวันที่ตั้งแต่ 1 มกราคมถึงวันที่สุดท้ายใน Filter Context แล้ว CALCULATE ใช้ชุดนั้นแทนที่ Filter เดิมครับ

### 2. ตัวอย่างที่ 2: YTD พร้อมเช็ควันที่ในอนาคต (Best Practice)

```excel
Sales YTD =
IF(
    [ShowValueForDates],
    CALCULATE(
        [Sales Amount],
        DATESYTD('Date'[Date])
    )
)
```

**ผลลัพธ์:** `แสดงค่า YTD เฉพาะวันที่มีข้อมูลจริง วันในอนาคตจะเป็น BLANK`

Pattern นี้มาจาก DAX Patterns ครับ โดย [ShowValueForDates] เป็น Measure ที่เช็คว่า Date ในบริบทปัจจุบันมีข้อมูลขายจริงหรือไม่ ป้องกันไม่ให้วันในอนาคตแสดงค่าซ้ำของวันสุดท้าย 💡

### 3. ตัวอย่างที่ 3: ยอดสะสมตามปีบัญชีสิ้นสุด 30 มิถุนายน

```excel
Sales Fiscal YTD =
IF(
    [ShowValueForDates],
    CALCULATE(
        [Sales Amount],
        DATESYTD('Date'[Date], "06-30")
    )
)
```

**ผลลัพธ์:** `ถ้าอยู่เดือนสิงหาคม 2024 จะนับตั้งแต่ 1 ก.ค. 2024 (เริ่มปีบัญชีใหม่)`

เมื่อกำหนด YearEndDate เป็น "06-30" ปีบัญชีจะเริ่ม 1 กรกฎาคม และสิ้นสุด 30 มิถุนายน ปีถัดไป ช่วง YTD จะถูกนับตามปีบัญชีนี้ครับ 😎

### 4. ตัวอย่างที่ 4: เปรียบเทียบ YTD ปีนี้ vs ปีก่อน

```excel
Sales YTD PY =
CALCULATE(
    [Sales YTD],
    SAMEPERIODLASTYEAR('Date'[Date])
)
```

**ผลลัพธ์:** `ยอดขาย YTD ของช่วงเดียวกันในปีที่แล้ว`

ใช้ SAMEPERIODLASTYEAR เลื่อนบริบทกลับไป 1 ปี แล้วคำนวณ [Sales YTD] ได้ยอดสะสมของปีก่อนในช่วงเดียวกัน เหมาะทำ YoY Comparison ครับ

### 5. ตัวอย่างที่ 5: Growth % เทียบ YTD ปีก่อน

```excel
YTD Growth % =
VAR CurrentYTD = [Sales YTD]
VAR PreviousYTD = [Sales YTD PY]
RETURN
    DIVIDE(
        CurrentYTD - PreviousYTD,
        PreviousYTD
    )
```

**ผลลัพธ์:** `เปอร์เซ็นต์การเติบโตของยอด YTD เทียบกับปีก่อน`

ใช้ VAR เก็บค่า YTD ปีปัจจุบันและปีก่อน แล้วคำนวณ % Growth ด้วย DIVIDE (ป้องกัน Error ถ้าหารด้วย 0) ได้ผลลัพธ์เป็น % เช่น 0.15 หมายถึงโต 15%

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

- 💡 **ShowValueForDates Pattern:**

- .

- การใช้ IF([ShowValueForDates], ...) เป็น Best Practice จาก DAX Patterns เพื่อป้องกันไม่ให้วันในอนาคตแสดงค่า YTD ซ้ำ โดย [ShowValueForDates] มักเป็น Measure ที่เช็คว่ามียอดขายในวันนั้นหรือไม่

- .

- ⚠️ **Fiscal Year Tips:**

- .

- Format ของ YearEndDate คือ "MM-DD" เช่น "06-30", "03-31", "09-30" ถ้าบริษัทปิดบัญชีเดือนอื่นที่ไม่ใช่ธันวาคม ต้องระบุ argument นี้เสมอครับ

- .

- 🔍 **Performance Note:**

- .

- DATESYTD เป็นฟังก์ชันที่ Optimized มาดีแล้ว ไม่ต้องกังวลเรื่อง Performance ใช้ได้เลยแม้มีข้อมูลหลายล้านแถว 😎

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

**Q: DATESYTD คืนค่าเป็นตารางหรือค่า Scalar?**

คืนค่าเป็น Table ของวันที่ครับ จึงต้องใช้คู่กับ CALCULATE เพื่อให้ได้ค่า Scalar จาก Measure ถ้าใช้เดี่ยวๆ จะสร้างเป็น Calculated Table ได้ แต่ไม่ค่อยมีประโยชน์

**Q: ทำไมวันที่ในอนาคตถึงแสดงค่า YTD ซ้ำ?**

เพราะ DATESYTD จะคืนวันที่ถึงวันสุดท้ายที่มองเห็นใน Filter Context แม้วันนั้นจะยังไม่มีข้อมูลก็ตาม วิธีแก้คือใช้ Pattern IF([ShowValueForDates], ...) เพื่อเช็คว่ามีข้อมูลจริงก่อนแสดงค่าครับ 😅

**Q: ต้องเตรียม Date Table อย่างไรให้ DATESYTD ทำงานถูกต้อง?**

Date Table ต้อง: 1) มีวันที่ครบต่อเนื่อง ไม่มีวันขาด 2) ครอบคลุมตั้งแต่ 1 ม.ค. ถึง 31 ธ.ค. ของทุกปี 3) Mark as Date Table ใน Power BI ถ้าขาดข้อใดข้อหนึ่ง Time Intelligence จะทำงานผิดพลาดครับ

**Q: DATESYTD กับ TOTALYTD ต่างกันอย่างไร?**

TOTALYTD เป็น Shortcut ที่รวม CALCULATE + DATESYTD ไว้ในฟังก์ชันเดียว เช่น TOTALYTD([Sales], 'Date'[Date]) เท่ากับ CALCULATE([Sales], DATESYTD('Date'[Date])) แต่ถ้าต้องการควบคุมมากขึ้น (เช่น เพิ่ม Filter อื่นๆ) แนะนำใช้ CALCULATE + DATESYTD ครับ

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

- [CALCULATE – ฟังก์ชันหลักของ DAX ที่ควบคุม Filter Context](https://www.thepexcel.com/functions/dax/filter/calculate-dax/)
- [TOTALYTD – ยอดสะสมตั้งแต่ต้นปี (Year-to-Date)](https://www.thepexcel.com/functions/dax/time-intelligence/totalytd-dax/)
- [DATESMTD – ชุดวันที่ตั้งแต่ต้นเดือนถึงปัจจุบัน (MTD)](https://www.thepexcel.com/functions/dax/time-intelligence/datesmtd-dax/)
- [DATESQTD – ชุดวันที่ตั้งแต่ต้นไตรมาสถึงปัจจุบัน (QTD)](https://www.thepexcel.com/functions/dax/time-intelligence/datesqtd-dax/)
- [SAMEPERIODLASTYEAR – คืนช่วงเวลาเดียวกันของปีก่อนหน้า (Year-over-Year)](https://www.thepexcel.com/functions/dax/time-intelligence/sameperiodlastyear-dax/)
- [DATEADD – เลื่อนช่วงเวลาไปข้างหน้าหรือย้อนหลัง (Shift Dates)](https://www.thepexcel.com/functions/dax/time-intelligence/dateadd-dax/)
- [PARALLELPERIOD – เลื่อนช่วงเวลาแบบเต็มเดือน/ไตรมาส/ปี (Full Period Shift)](https://www.thepexcel.com/functions/dax/time-intelligence/parallelperiod-dax/)
- [DIVIDE – ฟังก์ชัน DAX](https://www.thepexcel.com/functions/dax/math-and-trig/divide-dax/)

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

- [DAX Patterns: Standard Time-Related Calculations](https://www.daxpatterns.com/standard-time-related-calculations/) _(article)_
- [DAX Guide: DATESYTD](https://dax.guide/datesytd/) _(guide)_
- [Microsoft Learn: DATESYTD](https://learn.microsoft.com/en-us/dax/datesytd-function-dax) _(official)_
- [SQLBI: Time Intelligence in DAX](https://www.sqlbi.com/articles/time-intelligence-in-power-bi-desktop/) _(guide)_

---

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