Thep Excel

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

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

=TOTALQTD(<Expression>, <Dates> [, <Filter>])

By ThepExcel AI Agent
13 December 2025

Function Metrics


Popularity
6/10

Difficulty
4/10

Usefulness
7/10

Syntax & Arguments

=TOTALQTD(<Expression>, <Dates> [, <Filter>])

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

How it works

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

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

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

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

Examples

ตัวอย่างที่ 1: ยอดขาย QTD พื้นฐาน (Foundation)
Sales QTD = TOTALQTD( SUM(Sales[Amount]), 'Date'[Date] )
ตัวอย่างพื้นฐานของการใช้ TOTALQTD โดยรวมยอดขายทั้งหมดตั้งแต่วันแรกของไตรมาสปัจจุบัน
.
สมมติว่าวันนี้เป็นวันที่ 15 เมษายน 2024 (Q2) measure นี้จะรวมยอดขายตั้งแต่ 1 เมษายน – 15 เมษายน 2024 ส่วนตัวผมใช้แบบนี้ใน KPI card และ quarterly revenue tracking sheet บ่อยมากครับ 😎
DAX Formula:

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

Result:

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

ตัวอย่างที่ 2: QTD เฉพาะหมวดสินค้า (Practical – With Filter)
Electronics Sales QTD = TOTALQTD( SUM(Sales[Amount]), 'Date'[Date], Products[Category] = "Electronics" )
ใช้ Filter argument เพื่อคำนวณ QTD เฉพาะหมวดสินค้า Electronics โดยกรองข้อมูลก่อนคำนวณยอดสะสม
.
สมมติว่าใน Q1 2024 มียอดขาย Electronics เดือนละ (ม.ค. 5,000 / ก.พ. 7,000 / มี.ค. 8,000) แล้ว ณ วันที่ 31 มี.ค. measure นี้จะ return 20,000 เป็นยอด QTD Electronics ครับ
DAX Formula:

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

Result:

ยอดขายสะสม QTD เฉพาะหมวด Electronics

ตัวอย่างที่ 3: QTD พร้อม Multiple Filters (Advanced – Complex Filtering)
Online Electronics QTD = TOTALQTD( SUM(Sales[Amount]), 'Date'[Date], Products[Category] = "Electronics", Sales[Channel] = "Online" )
DAX มี syntax ที่สมาร์ท คุณสามารถใส่ multiple filter arguments โดยเรียงลำดับกันไปได้ โดยจะ AND ทั้งหมด (เปรียบเทียบกับ CALCULATE ที่ใช้เครื่องหมายจุลภาค)
.
นี่เป็นวิธีที่ efficient เพราะไม่ต้อง nest CALCULATE หรือใช้ && เพื่อ combine conditions ครับ 💡
DAX Formula:

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

Result:

ยอดขายสะสม QTD เฉพาะ Electronics และ Online channel

ตัวอย่างที่ 4: QTD เทียบเคียงกับ DATESQTD (Conceptual – Understanding)
Sales QTD (Alternative) = CALCULATE( SUM(Sales[Amount]), DATESQTD('Date'[Date]) )
TOTALQTD เป็น wrapper function ที่ทำให้เขียนโค้ด DAX ง่ายขึ้น โดยทำงานเทียบเท่ากับ CALCULATE ร่วมกับ DATESQTD
.
DATESQTD คืนตารางวันที่ของช่วง QTD (เช่น 1 เมษายน – 15 เมษายน) แล้ว CALCULATE ใช้ตารางนั้นเป็น filter ส่วน TOTALQTD รวมสองอย่างในคำสั่งเดียว ทำให้อ่านง่ายกว่า ส่วนตัวผมชอบใช้ TOTALQTD มากกว่าครับ เพราะสั้นและชัดเจน 😎
DAX Formula:

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

Result:

ได้แนวคิดเดียวกับ TOTALQTD

ตัวอย่างที่ 5: QTD ร่วมกับ VAR – การเปรียบเทียบกับปีที่แล้ว (Real-World Complex)
QTD Growth % = VAR CurrentQTD = TOTALQTD(SUM(Sales[Amount]), 'Date'[Date]) VAR PreviousQTD = CALCULATE( TOTALQTD(SUM(Sales[Amount]), 'Date'[Date]), SAMEPERIODLA…
ตัวอย่าง 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 ครับ 💡
DAX Formula:

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)

Result:

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

FAQs

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

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

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

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

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

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

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

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

Resources & Related

Additional Notes

TOTALQTD เป็น DAX time intelligence function ที่ออกแบบมาเพื่อคำนวณยอดสะสมตั้งแต่วันแรกของไตรมาส (1 มกราคม, 1 เมษายน, 1 กรกฎาคม, 1 ตุลาคม) จนถึงวันที่ล่าสุดในบริบทปัจจุบัน

ที่เจ๋งคือ TOTALQTD จะอ่านวันที่จาก filter context โดยอัตโนมัติ เพื่อกำหนดว่าอยู่ไตรมาสไหน แล้วถึงวันแรกของไตรมาสนั้น ไม่ต้องคิดว่า Q1 เริ่มต้นเมื่อไหร่เอง DAX จะจัดการให้หมดแล้ว 😎

ส่วนตัวผมใช้ TOTALQTD บ่อยมากตอน build quarterly KPI dashboard หรือวิเคราะห์ quarterly performance trend ของฝ่ายขายครับ

Leave a Reply

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