---
title: TOTALQTD – ยอดสะสมตั้งแต่ต้นไตรมาส (Quarter-to-Date)
url: https://www.thepexcel.com/functions/dax/time-intelligence/totalqtd-dax/
type: function-explainer
program: DAX
syntax: "TOTALQTD(<Expression>, <Dates> [, <Filter>])"
date: 2025-12-13
updated: 2025-12-23
scores:
  popularity: 6
  difficulty: 4
  usefulness: 7
---

# TOTALQTD – ยอดสะสมตั้งแต่ต้นไตรมาส (Quarter-to-Date)

> TOTALQTD คำนวณยอดสะสมตั้งแต่วันแรกของไตรมาส (Q1/Q2/Q3/Q4) จนถึงวันที่ล่าสุดใน filter context ปัจจุบั

## คำอธิบาย

TOTALQTD คำนวณยอดสะสมตั้งแต่วันแรกของไตรมาส (Q1/Q2/Q3/Q4) จนถึงวันที่ล่าสุดใน filter context ปัจจุบัน
.
ส่วนตัวผมใช้บ่อยมากตอน analyze quarterly performance และการวิเคราะห์ KPI รายไตรมาสครับ

## Syntax

```excel
TOTALQTD(&lt;Expression&gt;, &lt;Dates&gt; [, &lt;Filter&gt;])
```

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| Expression | Yes | expression |  | Expression ที่ต้องการคำนวณยอดสะสม QTD เช่น SUM(Sales[Amount]) หรือ [Total Sales] สามารถเป็น measure reference หรือ aggregation expression ใดๆ ที่ return scalar value |
| Dates | Yes | column |  | Column ที่เก็บวันที่จาก Date table ที่มีวันที่ต่อเนื่องครบถ้วนตลอดทั้งปี เช่น 'Date'[Date] หรือ DateTime[DateKey] ต้อง mark as date table ในโมเดลเพื่อให้ time intelligence function ทำงานถูกต้อง |
| Filter | No | expression | ไม่มีการกรองเพิ่มเติม | Boolean expression หรือ table expression ที่ใช้กรองข้อมูลเพิ่มเติมก่อนคำนวณ QTD เช่น Products[Category] = "Electronics" ทำงานภายใน CALCULATE context ตาม CALCULATE function rules |

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

### ยอดขายสะสมรายไตรมาส

แสดงยอดสะสมตั้งแต่ต้นไตรมาสถึงวันที่ล่าสุดในบริบท

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

### ทำ KPI แบบสะสมรายไตรมาส

ใช้กับเมเชอร์อื่น ๆ เพื่อทำตัวชี้วัดสะสมระดับไตรมาส

_เหมาะกับ:_ qtd-kpi

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: ยอดขาย QTD พื้นฐาน (Foundation)

```excel
Sales QTD = 
TOTALQTD(
    SUM(Sales[Amount]),
    'Date'[Date]
)
```

**ผลลัพธ์:** `ยอดขายสะสมตั้งแต่วันแรกของไตรมาสจนถึงวันที่ล่าสุดใน filter context`

ตัวอย่างพื้นฐานของการใช้ TOTALQTD โดยรวมยอดขายทั้งหมดตั้งแต่วันแรกของไตรมาสปัจจุบัน
.
สมมติว่าวันนี้เป็นวันที่ 15 เมษายน 2024 (Q2) measure นี้จะรวมยอดขายตั้งแต่ 1 เมษายน - 15 เมษายน 2024 ส่วนตัวผมใช้แบบนี้ใน KPI card และ quarterly revenue tracking sheet บ่อยมากครับ 😎

### 2. ตัวอย่างที่ 2: QTD เฉพาะหมวดสินค้า (Practical - With Filter)

```excel
Electronics Sales QTD = 
TOTALQTD(
    SUM(Sales[Amount]),
    'Date'[Date],
    Products[Category] = "Electronics"
)
```

**ผลลัพธ์:** `ยอดขายสะสม QTD เฉพาะหมวด Electronics`

ใช้ Filter argument เพื่อคำนวณ QTD เฉพาะหมวดสินค้า Electronics โดยกรองข้อมูลก่อนคำนวณยอดสะสม
.
สมมติว่าใน Q1 2024 มียอดขาย Electronics เดือนละ (ม.ค. 5,000 / ก.พ. 7,000 / มี.ค. 8,000) แล้ว ณ วันที่ 31 มี.ค. measure นี้จะ return 20,000 เป็นยอด QTD Electronics ครับ

### 3. ตัวอย่างที่ 3: QTD พร้อม Multiple Filters (Advanced - Complex Filtering)

```excel
Online Electronics QTD = 
TOTALQTD(
    SUM(Sales[Amount]),
    'Date'[Date],
    Products[Category] = "Electronics",
    Sales[Channel] = "Online"
)
```

**ผลลัพธ์:** `ยอดขายสะสม QTD เฉพาะ Electronics และ Online channel`

DAX มี syntax ที่สมาร์ท คุณสามารถใส่ multiple filter arguments โดยเรียงลำดับกันไปได้ โดยจะ AND ทั้งหมด (เปรียบเทียบกับ CALCULATE ที่ใช้เครื่องหมายจุลภาค)
.
นี่เป็นวิธีที่ efficient เพราะไม่ต้อง nest CALCULATE หรือใช้ && เพื่อ combine conditions ครับ 💡

### 4. ตัวอย่างที่ 4: QTD เทียบเคียงกับ DATESQTD (Conceptual - Understanding)

```excel
Sales QTD (Alternative) = 
CALCULATE(
    SUM(Sales[Amount]),
    DATESQTD('Date'[Date])
)
```

**ผลลัพธ์:** `ได้แนวคิดเดียวกับ TOTALQTD`

TOTALQTD เป็น wrapper function ที่ทำให้เขียนโค้ด DAX ง่ายขึ้น โดยทำงานเทียบเท่ากับ CALCULATE ร่วมกับ DATESQTD
.
DATESQTD คืนตารางวันที่ของช่วง QTD (เช่น 1 เมษายน - 15 เมษายน) แล้ว CALCULATE ใช้ตารางนั้นเป็น filter ส่วน TOTALQTD รวมสองอย่างในคำสั่งเดียว ทำให้อ่านง่ายกว่า ส่วนตัวผมชอบใช้ TOTALQTD มากกว่าครับ เพราะสั้นและชัดเจน 😎

### 5. ตัวอย่างที่ 5: QTD ร่วมกับ VAR - การเปรียบเทียบกับปีที่แล้ว (Real-World Complex)

```excel
QTD Growth % = 
VAR CurrentQTD = 
    TOTALQTD(SUM(Sales[Amount]), 'Date'[Date])
VAR PreviousQTD = 
    CALCULATE(
        TOTALQTD(SUM(Sales[Amount]), 'Date'[Date]),
        SAMEPERIODLASTYEAR('Date'[Date])
    )
VAR Growth = CurrentQTD - PreviousQTD
RETURN
    DIVIDE(Growth, PreviousQTD, 0)
```

**ผลลัพธ์:** `อัตราการเติบโตของยอดสะสม QTD เทียบกับปีก่อนหน้า (เปอร์เซ็นต์)`

ตัวอย่าง real-world ที่ใช้ VAR...RETURN pattern เพื่อสร้าง measure ที่ซับซ้อน โดยคำนวณ CurrentQTD ด้วย TOTALQTD จากนั้นคำนวณ PreviousQTD โดยใช้ CALCULATE ร่วมกับ SAMEPERIODLASTYEAR เพื่อเลื่อน context ไปปีก่อนหน้า
.
สมมติ CurrentQTD = 150,000 และ PreviousQTD = 120,000 ผลลัพธ์ = (150,000 - 120,000) / 120,000 = 0.25 หรือ 25% growth ส่วนตัวผมใช้ pattern นี้บ่อยมากตอน quarterly analysis dashboard ครับ 💡

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

- ตรวจให้แน่ใจว่า Date table ถูก mark as date table ในโมเดล เพราะถ้าไม่ DAX จะไม่สามารถตรวจสอบ continuity ได้และ time intelligence functions จะให้ผลลัพธ์ผิด

- ถ้าต้องการกรองข้อมูลเพิ่มเติม ใช้ Filter argument ของ TOTALQTD แทนการ nest CALCULATE ข้างนอก จะทำให้โค้ดอ่านง่ายและมีประสิทธิภาพดีกว่า

- เปรียบเทียบ quarter-over-quarter growth ได้ด้วย VAR...RETURN pattern ร่วมกับ SAMEPERIODLASTYEAR เพื่อเลื่อน context ไปปีก่อนหน้า

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

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

DATESQTD เป็น table function ที่ return ตารางของวันที่ในช่วง quarter-to-date (เช่น 1 เมษายน - 15 เมษายน) ซึ่งต้องใช้ร่วมกับ CALCULATE เพื่อคำนวณค่า expression
.
ส่วน TOTALQTD เป็น wrapper function ที่รวมทั้งสองอย่างเข้าด้วยกัน คือ return ค่าผลลัพธ์ของ expression ที่คำนวณแล้วโดยตรง ส่วนตัวผมชอบใช้ TOTALQTD มากกว่าครับ เพราะอ่านง่ายและเขียนสั้นกว่า 😎

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

TOTALQTD คำนวณยอดสะสมตั้งแต่วันแรกของ Quarter (ไตรมาส) ในขณะที่ TOTALMTD คำนวณยอดสะสมตั้งแต่วันแรกของ Month (เดือน)
.
ถ้าวันนี้เป็น 15 เมษายน 2024 TOTALQTD จะรวมตั้งแต่ 1 เมษายน ส่วน TOTALMTD จะรวมตั้งแต่ 1 เมษายน (วันแรกของเดือนเดียวกัน) ซึ่งผลลัพธ์อาจเหมือนกันในช่วง 1-2 สัปดาห์แรกของไตรมาส ครับ 💡

**Q: ถ้า Date table ไม่มีวันที่บางวัน TOTALQTD จะทำงานถูกต้องไหม?**

Date table ต้องมีวันที่ต่อเนื่องครบถ้วนตลอดทั้งปี (ไม่มีวันที่ขาดหาย) เพื่อให้ time intelligence function เช่น TOTALQTD ทำงานได้ถูกต้อง
.
หากวันที่ขาดหายหรือไม่ต่อเนื่อง ผลลัพธ์อาจคำนวณผิดพลาดหรือระบบไม่สามารถหาวันแรกของไตรมาสได้ถูกต้อง ควร mark as date table ในโมเดลเพื่อให้ DAX engine ตรวจสอบ continuity ได้ครับ 💡

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

สามารถใช้ได้ แต่ไม่แนะนำเพราะ calculated column คำนวณที่ row context และจะคำนวณ QTD สำหรับทุกแถว ซึ่งอาจไม่ได้ผลลัพธ์ตามที่ต้องการและใช้ memory มาก
.
แนะนำให้ใช้ TOTALQTD ใน measure เท่านั้น เพื่อให้คำนวณ dynamic ตาม filter context และประหยัด memory ครับ 😎

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

- [DAX Guide: TOTALQTD](https://dax.guide/totalqtd/) _(guide)_
- [DAX Guide: DATESQTD](https://dax.guide/datesqtd/) _(guide)_
- [DAX Guide: TOTALMTD](https://dax.guide/totalmtd/) _(guide)_

---

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