Thep Excel

DATESQTD – ชุดวันที่ตั้งแต่ต้นไตรมาสถึงปัจจุบัน (QTD)

DATESQTD คืนตารางวันที่ของช่วงตั้งแต่ต้นไตรมาสถึงวันที่ล่าสุดในบริบทปัจจุบัน เหมาะสำหรับสร้างมาตรวัด QTD ใน CALCULATE โดยทำงานร่วมกับ Time Intelligence Functions ตัวอื่นๆ ได้ดี และควรใช้คู่กับ ShowValueForDates pattern เพื่อป้องกันการแสดงค่าในอนาคต

=DATESQTD(<Dates>)

By ThepExcel AI Agent
13 December 2025

Function Metrics


Popularity
5/10

Difficulty
4/10

Usefulness
6/10

Syntax & Arguments

=DATESQTD(<Dates>)

Argument Type Required Default Description
Dates column Yes คอลัมน์วันที่จากตารางวันที่ (Date Table) ที่ต่อเนื่องครบทุกวัน หรือ Calendar reference สำหรับ Fiscal Year

How it works

ยอดขายสะสมตั้งแต่ต้นไตรมาส (Sales QTD)

สร้างมาตรวัดที่คำนวณยอดขายรวมตั้งแต่วันแรกของไตรมาสจนถึงวันปัจจุบัน

เปรียบเทียบ QTD กับไตรมาสเดียวกันปีก่อน (SPLY QTD)

วิเคราะห์การเติบโตเทียบกับช่วงเวลาเดียวกันของปีก่อน

QTD Growth % (อัตราเติบโต QTD)

คำนวณเปอร์เซ็นต์การเติบโตของ QTD เทียบกับ QTD ปีก่อน

KPI ไตรมาสพร้อม ShowValueForDates

แสดง KPI เฉพาะช่วงที่มีข้อมูลจริง ไม่แสดงค่าในอนาคต

Examples

ตัวอย่างที่ 1: Sales QTD พื้นฐาน
Sales QTD = CALCULATE( [Sales Amount], DATESQTD('Date'[Date]) )
DATESQTD คืนชุดวันที่ของไตรมาสปัจจุบันจนถึงวันล่าสุดใน filter context แล้ว CALCULATE ใช้เป็นตัวกรองเวลา สมมติยอดขาย October = 50,000 และ November 1-15 = 30,000 ผลลัพธ์จะได้ 80,000
DAX Formula:

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

Result:

ถ้าวันที่ปัจจุบันคือ 15 November 2024 (Q4) จะคืนยอดขายสะสมตั้งแต่ 1 October 2024 ถึง 15 November 2024

ตัวอย่างที่ 2: Sales QTD พร้อม ShowValueForDates Pattern
-- สร้าง measure ช่วยเช็คว่าควรแสดงค่าหรือไม่ ShowValueForDates = VAR LastDateWithData = CALCULATE( MAX(Sales[OrderDate]), REMOVEFILTERS() ) VAR FirstDateVisibl…
ShowValueForDates เป็น pattern จาก DAXPatterns.com ที่ช่วยป้องกันไม่ให้รายงานแสดงค่าในช่วงอนาคตที่ยังไม่มีข้อมูล ทำให้ Dashboard ดูเป็นมืออาชีพมากขึ้น 💡
DAX Formula:

-- สร้าง measure ช่วยเช็คว่าควรแสดงค่าหรือไม่
ShowValueForDates =
VAR LastDateWithData =
    CALCULATE(
        MAX(Sales[OrderDate]),
        REMOVEFILTERS()
    )
VAR FirstDateVisible =
    MIN('Date'[Date])
RETURN
    FirstDateVisible <= LastDateWithData

-- Sales QTD ที่ปลอดภัย
Sales QTD =
IF(
    [ShowValueForDates],
    CALCULATE(
        [Sales Amount],
        DATESQTD('Date'[Date])
    )
)

Result:

แสดงค่า QTD เฉพาะช่วงที่มีข้อมูลจริง ถ้าเลือกดูเดือนในอนาคตจะคืน BLANK

ตัวอย่างที่ 3: QTD เปรียบเทียบกับไตรมาสเดียวกันปีก่อน (SPLY QTD)
-- QTD ปีปัจจุบัน Sales QTD = CALCULATE( [Sales Amount], DATESQTD('Date'[Date]) ) -- QTD ปีก่อน (Same Period Last Year) Sales QTD SPLY = CALCULATE( [Sales QTD],…
ใช้ SAMEPERIODLASTYEAR ห่อ Sales QTD อีกทีเพื่อเลื่อน filter context ไปปีก่อน ทำให้เปรียบเทียบ QTD แบบ Apple-to-Apple ได้ (เดือนเดียวกัน วันเดียวกัน แต่คนละปี)
DAX Formula:

-- QTD ปีปัจจุบัน
Sales QTD =
CALCULATE(
    [Sales Amount],
    DATESQTD('Date'[Date])
)

-- QTD ปีก่อน (Same Period Last Year)
Sales QTD SPLY =
CALCULATE(
    [Sales QTD],
    SAMEPERIODLASTYEAR('Date'[Date])
)

Result:

ถ้า Q4 2024 QTD = 80,000 และ Q4 2023 QTD = 65,000 จะเห็นทั้งสองค่าเพื่อเปรียบเทียบ

ตัวอย่างที่ 4: QTD Growth % (อัตราเติบโต)
Sales QTD Growth % = VAR CurrentQTD = [Sales QTD] VAR LastYearQTD = [Sales QTD SPLY] VAR Result = DIVIDE( CurrentQTD - LastYearQTD, LastYearQTD, BLANK() ) RETUR…
ใช้ VAR เพื่อเก็บค่า QTD ทั้งสองปี แล้วคำนวณ Growth % ด้วย DIVIDE ที่มี fallback เป็น BLANK เพื่อป้องกัน division by zero ส่วนตัวผมใช้สูตรนี้บ่อยมากในการทำ Executive Dashboard 😎
DAX Formula:

Sales QTD Growth % =
VAR CurrentQTD = [Sales QTD]
VAR LastYearQTD = [Sales QTD SPLY]
VAR Result =
    DIVIDE(
        CurrentQTD - LastYearQTD,
        LastYearQTD,
        BLANK()
    )
RETURN
    Result

Result:

ถ้า QTD ปีนี้ = 80,000 และ QTD ปีก่อน = 65,000 จะได้ (80,000 - 65,000) / 65,000 = 0.2308 หรือ 23.08%

ตัวอย่างที่ 5: Previous Quarter-to-Date (PQTD)
Sales PQTD = CALCULATE( [Sales QTD], DATEADD('Date'[Date], -1, QUARTER) )
DATEADD เลื่อน filter context ย้อนกลับ 1 ไตรมาส ทำให้เปรียบเทียบ Q4 กับ Q3 ได้ในตำแหน่งวันเดียวกัน (day 45 ของไตรมาส เทียบกับ day 45 ของไตรมาสก่อน)
DAX Formula:

Sales PQTD =
CALCULATE(
    [Sales QTD],
    DATEADD('Date'[Date], -1, QUARTER)
)

Result:

ถ้าดู 15 November 2024 (Q4) จะคืน QTD ของ Q3 ณ วันที่ 15 August 2024 (1 July - 15 August)

ตัวอย่างที่ 6: QTD สำหรับ Fiscal Year (ปีงบประมาณ)
-- วิธีที่ 1: ใช้กับตารางวันที่ที่มี Fiscal Quarter column -- สมมติ Fiscal Year เริ่ม April (เดือน 4) -- เพิ่มคอลัมน์ใน Date Table FiscalQuarter = VAR FiscalMon…
DATESQTD ใช้ Calendar Quarter (Jan-Mar = Q1) โดย default ถ้าองค์กรใช้ Fiscal Year ต้องสร้าง Fiscal Quarter column เอง แล้วคำนวณ QTD ด้วย CALCULATE + FILTER แทน หรือใช้ Calendar object ใหม่ของ Power BI (preview 2025)
DAX Formula:

=-- วิธีที่ 1: ใช้กับตารางวันที่ที่มี Fiscal Quarter column
-- สมมติ Fiscal Year เริ่ม April (เดือน 4)

-- เพิ่มคอลัมน์ใน Date Table
FiscalQuarter =
VAR FiscalMonth = MOD(MONTH('Date'[Date]) + 8, 12) + 1
RETURN ROUNDUP(FiscalMonth / 3, 0)

-- สร้าง Fiscal QTD ด้วย CALCULATE + FILTER
Sales Fiscal QTD =
VAR CurrentFiscalQtr = SELECTEDVALUE('Date'[FiscalQuarter])
VAR FiscalQtrStart =
    CALCULATE(
        MIN('Date'[Date]),
        ALLEXCEPT('Date', 'Date'[FiscalQuarter])
    )
RETURN
CALCULATE(
    [Sales Amount],
    'Date'[Date] >= FiscalQtrStart &&
    'Date'[Date] <= MAX('Date'[Date])
)

Result:

ถ้า Fiscal Year เริ่ม April และดู June 2024 (Fiscal Q1) จะคืนยอดสะสมตั้งแต่ 1 April 2024 ถึง 30 June 2024

FAQs

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

DATESQTD คืน “ตารางของวันที่” เพื่อใช้เป็น filter ใน CALCULATE ส่วน TOTALQTD คืน “ค่าผลลัพธ์” โดยตรงเลย ถ้าแค่ต้องการยอดรวม QTD ใช้ TOTALQTD สะดวกกว่า แต่ถ้าต้องการ flexibility มากขึ้น (เช่น combine กับ filter อื่น) ใช้ DATESQTD ในCALCULATE จะดีกว่าครับ

ทำไมต้องใช้ ShowValueForDates pattern ด้วย?

เพราะ DATESQTD จะทำงานแม้เลือกดูวันที่ในอนาคตที่ยังไม่มีข้อมูล ทำให้รายงานแสดงค่าผิดพลาดได้ ShowValueForDates เช็คว่าวันที่ที่เลือกมีข้อมูลจริงหรือไม่ ถ้าไม่มีจะคืน BLANK แทน เป็น Best Practice จาก DAXPatterns.com ครับ 😎

DATESQTD ใช้กับ Fiscal Quarter ได้ไหม?

DATESQTD ใช้ Calendar Quarter โดย default (Q1 = Jan-Mar) ถ้าองค์กรใช้ Fiscal Year ที่เริ่มเดือนอื่น มี 2 วิธี: 1) ใช้ Calendar object ใหม่ของ Power BI (preview 2025) หรือ 2) สร้าง Fiscal Quarter column ใน Date Table แล้วคำนวณ QTD เองด้วย CALCULATE + FILTER

ต้องมี Date Table แบบไหนถึงจะใช้ DATESQTD ได้?

Date Table ต้อง: 1) มีวันที่ต่อเนื่องครบทุกวันตั้งแต่ 1 January ถึง 31 December ของทุกปีที่ต้องการ 2) Mark เป็น Date Table ใน Power BI 3) มี unique date column ไม่ซ้ำกัน ถ้า Date Table ไม่สมบูรณ์ Time Intelligence functions ทั้งหมดจะทำงานผิดพลาดครับ

จะเปรียบเทียบ QTD กับ QTD ปีก่อนแบบ fair comparison ได้อย่างไร?

ใช้ SAMEPERIODLASTYEAR ห่อ measure QTD อีกทีครับ เช่น Sales QTD SPLY = CALCULATE([Sales QTD], SAMEPERIODLASTYEAR(‘Date'[Date])) แต่ถ้าปีปัจจุบันยังไม่ครบไตรมาส ต้องใช้ DateWithSales pattern เพิ่มเพื่อให้เปรียบเทียบเฉพาะช่วงที่มีข้อมูลจริงทั้งสองปี

DATESQTD ใช้ใน Calculated Column ได้ไหม?

ไม่แนะนำครับ DATESQTD ออกแบบมาสำหรับ Measures ที่ทำงานกับ filter context ถ้าใช้ใน Calculated Column จะไม่มี filter context ให้อ้างอิง และยังมีข้อจำกัดเรื่อง DirectQuery mode ด้วย

Resources & Related

Related functions

Additional Notes

DATESQTD คืนค่าเป็น “ตารางของวันที่” ตั้งแต่วันแรกของไตรมาสจนถึงวันที่ล่าสุดในบริบทปัจจุบัน (Quarter-to-Date) ใช้เป็น filter argument ใน CALCULATE เพื่อให้มาตรวัดคำนวณเฉพาะช่วง QTD ได้

.

ที่เจ๋งคือ DATESQTD ทำงานอัตโนมัติตาม filter context ที่เลือกอยู่ในรายงาน เช่น ถ้าผู้ใช้เลือกดู November 2024 ฟังก์ชันจะคืนวันที่ตั้งแต่ 1 October 2024 ถึง 30 November 2024 (เพราะ Q4 เริ่มจาก October)

.

ส่วนตัวผมแนะนำให้ใช้ร่วมกับ ShowValueForDates pattern เสมอ เพื่อป้องกันไม่ให้แสดงค่าในช่วงอนาคตที่ยังไม่มีข้อมูลจริง ซึ่งเป็น Best Practice จาก DAXPatterns.com เลยครับ 😎

Leave a Reply

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