TOTALQTD คำนวณยอดสะสมตั้งแต่วันแรกของไตรมาส (Q1/Q2/Q3/Q4) จนถึงวันที่ล่าสุดใน filter context ปัจจุบัน
.
ส่วนตัวผมใช้บ่อยมากตอน analyze quarterly performance และการวิเคราะห์ KPI รายไตรมาสครับ
=TOTALQTD(<Expression>, <Dates> [, <Filter>])
=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 |
แสดงยอดสะสมตั้งแต่ต้นไตรมาสถึงวันที่ล่าสุดในบริบท
ใช้กับเมเชอร์อื่น ๆ เพื่อทำตัวชี้วัดสะสมระดับไตรมาส
Sales QTD = TOTALQTD( SUM(Sales[Amount]), 'Date'[Date] )Sales QTD =
TOTALQTD(
SUM(Sales[Amount]),
'Date'[Date]
)
ยอดขายสะสมตั้งแต่วันแรกของไตรมาสจนถึงวันที่ล่าสุดใน filter context
Electronics Sales QTD = TOTALQTD( SUM(Sales[Amount]), 'Date'[Date], Products[Category] = "Electronics" )Electronics Sales QTD =
TOTALQTD(
SUM(Sales[Amount]),
'Date'[Date],
Products[Category] = "Electronics"
)
ยอดขายสะสม QTD เฉพาะหมวด Electronics
Online Electronics QTD = TOTALQTD( SUM(Sales[Amount]), 'Date'[Date], Products[Category] = "Electronics", Sales[Channel] = "Online" )Online Electronics QTD =
TOTALQTD(
SUM(Sales[Amount]),
'Date'[Date],
Products[Category] = "Electronics",
Sales[Channel] = "Online"
)
ยอดขายสะสม QTD เฉพาะ Electronics และ Online channel
Sales QTD (Alternative) = CALCULATE( SUM(Sales[Amount]), DATESQTD('Date'[Date]) )=Sales QTD (Alternative) =
CALCULATE(
SUM(Sales[Amount]),
DATESQTD('Date'[Date])
)
ได้แนวคิดเดียวกับ TOTALQTD
QTD Growth % = VAR CurrentQTD = TOTALQTD(SUM(Sales[Amount]), 'Date'[Date]) VAR PreviousQTD = CALCULATE( TOTALQTD(SUM(Sales[Amount]), 'Date'[Date]), SAMEPERIODLA…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 เทียบกับปีก่อนหน้า (เปอร์เซ็นต์)
DATESQTD เป็น table function ที่ return ตารางของวันที่ในช่วง quarter-to-date (เช่น 1 เมษายน – 15 เมษายน) ซึ่งต้องใช้ร่วมกับ CALCULATE เพื่อคำนวณค่า expression
.
ส่วน TOTALQTD เป็น wrapper function ที่รวมทั้งสองอย่างเข้าด้วยกัน คือ return ค่าผลลัพธ์ของ expression ที่คำนวณแล้วโดยตรง ส่วนตัวผมชอบใช้ TOTALQTD มากกว่าครับ เพราะอ่านง่ายและเขียนสั้นกว่า 😎
TOTALQTD คำนวณยอดสะสมตั้งแต่วันแรกของ Quarter (ไตรมาส) ในขณะที่ TOTALMTD คำนวณยอดสะสมตั้งแต่วันแรกของ Month (เดือน)
.
ถ้าวันนี้เป็น 15 เมษายน 2024 TOTALQTD จะรวมตั้งแต่ 1 เมษายน ส่วน TOTALMTD จะรวมตั้งแต่ 1 เมษายน (วันแรกของเดือนเดียวกัน) ซึ่งผลลัพธ์อาจเหมือนกันในช่วง 1-2 สัปดาห์แรกของไตรมาส ครับ 💡
Date table ต้องมีวันที่ต่อเนื่องครบถ้วนตลอดทั้งปี (ไม่มีวันที่ขาดหาย) เพื่อให้ time intelligence function เช่น TOTALQTD ทำงานได้ถูกต้อง
.
หากวันที่ขาดหายหรือไม่ต่อเนื่อง ผลลัพธ์อาจคำนวณผิดพลาดหรือระบบไม่สามารถหาวันแรกของไตรมาสได้ถูกต้อง ควร mark as date table ในโมเดลเพื่อให้ DAX engine ตรวจสอบ continuity ได้ครับ 💡
สามารถใช้ได้ แต่ไม่แนะนำเพราะ calculated column คำนวณที่ row context และจะคำนวณ QTD สำหรับทุกแถว ซึ่งอาจไม่ได้ผลลัพธ์ตามที่ต้องการและใช้ memory มาก
.
แนะนำให้ใช้ TOTALQTD ใน measure เท่านั้น เพื่อให้คำนวณ dynamic ตาม filter context และประหยัด memory ครับ 😎
TOTALQTD เป็น DAX time intelligence function ที่ออกแบบมาเพื่อคำนวณยอดสะสมตั้งแต่วันแรกของไตรมาส (1 มกราคม, 1 เมษายน, 1 กรกฎาคม, 1 ตุลาคม) จนถึงวันที่ล่าสุดในบริบทปัจจุบัน
ที่เจ๋งคือ TOTALQTD จะอ่านวันที่จาก filter context โดยอัตโนมัติ เพื่อกำหนดว่าอยู่ไตรมาสไหน แล้วถึงวันแรกของไตรมาสนั้น ไม่ต้องคิดว่า Q1 เริ่มต้นเมื่อไหร่เอง DAX จะจัดการให้หมดแล้ว 😎
ส่วนตัวผมใช้ TOTALQTD บ่อยมากตอน build quarterly KPI dashboard หรือวิเคราะห์ quarterly performance trend ของฝ่ายขายครับ