คลังสูตรExcel 80 · DAX 95 · M 15
ในหน้านี้
หน้าแรก › DAX › เทียบช่วงเวลา (Time Intelligence) › DATESMTD

DATESMTD

DAX · Power BIเทียบช่วงเวลา (Time Intelligence)ระดับกลางแบบ 5 · มีเฉพาะใน DAX

อัปเดต 27 ก.ย. 2569 · ตัวเลขในตัวอย่างตรงกับตัวคำนวณอ้างอิงที่เขียนแยก และสูตร Excel ที่คำนวณจากข้อมูลชุดเดียวกัน · ยังไม่ได้ตรวจใน Power BI Desktop

เอกสารอ้างอิง: DATESMTD (Microsoft Learn) · syntax และหมายเหตุในหน้านี้ตรวจกับหน้านี้ของ Microsoft · ตัวจำลองในหน้านี้รองรับเฉพาะรูปแบบที่ใช้ในตัวอย่าง (เช่น ไม่รองรับ calendar-based time intelligence)

DATESMTD คืออะไร

คืนตารางวันที่ตั้งแต่วันที่ 1 ของเดือนถึงวันสุดท้ายในตัวกรอง ใช้เป็นตัวกรองใน CALCULATE หรือนับจำนวนวันที่ผ่านไป

ใช้เมื่อไหร่

  • นับจำนวนวันที่ผ่านไปในเดือนเพื่อคิดยอดเฉลี่ยต่อวัน
  • ใช้ช่วงต้นเดือนถึงวันนี้เป็นตัวกรองของ Measure อื่น

รูปแบบสูตร

=DATESMTD(<dates> or <calendar>)

Argument แต่ละตัว

ชี้ที่ argument ในรูปแบบสูตรด้านบนเพื่อไฮไลต์แถวนั้น

Argumentจำเป็นไหมความหมาย
datesจำเป็นคอลัมน์วันที่ของตาราง Date เช่น 'วันที่'[Date]

ลองเลย: ยอดสะสมในเดือน จำนวนวันที่ผ่านไป และยอดเฉลี่ยต่อวัน

คลิกตัวเลขในตารางเพื่อดูตัวกรองไหลผ่านโมเดลจนเป็นตัวเลขนั้น เลือกค่าใน Slicer แก้ Measure ได้ หรือกด Excel เพื่อดูสูตร Excel ที่ได้คำตอบเดียวกัน

[ยอดขาย] = SUMX('ยอดขาย', 'ยอดขาย'[จำนวน] * 'ยอดขาย'[ราคาต่อหน่วย] * (1 - 'ยอดขาย'[ส่วนลด]))
[ยอดสะสมในเดือน] = CALCULATE([ยอดขาย], DATESMTD('วันที่'[Date]))
[จำนวนวันที่สะสม] = COUNTROWS(DATESMTD('วันที่'[Date]))
Ctrl + Enter คำนวณ · พิมพ์ ' เลือกตาราง · [ เลือกคอลัมน์หรือ Measure
  • พนักงานขายไม่มีตัวกรอง
  • สินค้าไม่มีตัวกรอง
  • วันที่[ปี] = 2025[ชื่อเดือน] = "มี.ค."[วัน] = 1
  • ยอดขายเหลือ 0 จาก 495 แถว · หนึ่งจุดคือหนึ่งคำสั่งซื้อ
ยอดสะสมในเดือน จำนวนวันที่ผ่านไป และยอดเฉลี่ยต่อวัน
ยอดสะสมในเดือน จำนวนวันที่ผ่านไป และยอดเฉลี่ยต่อวัน · ใช้ลูกศรเลื่อนระหว่างช่อง Enter เพื่อดูว่าตัวเลขนั้นคำนวณอย่างไร
วันยอดขายยอดสะสมในเดือนจำนวนวันที่สะสมยอดเฉลี่ยต่อวันถึงวันนี้
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
ยอดรวม
(ว่าง)ยอดเฉลี่ยต่อวันถึงวันนี้ · 1 · 2025 · มี.ค.
ดูทีละขั้นขั้น 8 / 8

ถ้าคุณเขียน Excel อยู่แล้ว

EXCEL=SUMIFS(ยอดขาย[ยอดสุทธิ], ยอดขาย[วันที่], ">="&DATE(2025,3,1), ยอดขาย[วันที่], "<="&DATE(2025,3,15))

Excel เขียนช่วงวันที่เอง

DAXยอดเฉลี่ยต่อวันถึงวันนี้ = DIVIDE(CALCULATE([ยอดขาย], DATESMTD('วันที่'[Date])), COUNTROWS(DATESMTD('วันที่'[Date])))

DATESMTD เป็นตาราง จึงใช้ได้ทั้งเป็นตัวกรองและนับแถว

ข้อผิดพลาดและเคล็ดลับ

TOTALMTD([ยอดขาย], 'วันที่'[Date]) คือ CALCULATE([ยอดขาย], DATESMTD('วันที่'[Date])) แบบย่อ ใช้ DATESMTD เมื่อต้องการตารางวันที่ไปทำอย่างอื่นด้วย
นับวันจากตาราง Date จึงรวมวันที่ไม่มีคำสั่งซื้อ ยอดเฉลี่ยนี้คือยอดต่อวันปฏิทิน ไม่ใช่ต่อวันที่ขาย
ต้องใช้คอลัมน์วันที่ของตาราง Date ถ้าใช้ 'ยอดขาย'[วันที่] จะได้เฉพาะวันที่มีคำสั่งซื้อ

แบบทดสอบ 3 ข้อ

1. COUNTROWS(DATESMTD('วันที่'[Date])) ในแถววันที่ 10 ได้เท่าใด

2. DATESMTD ให้ผลเป็นอะไร

3. ทำไมควรใช้ 'วันที่'[Date] แทน 'ยอดขาย'[วันที่]

ไฟล์ฝึก DATESMTD

9Expert-DAX-DATESMTD-Practice-v1.0.xlsx

รุ่น 1.0 · 26/9/2026 · 70 KB · ไม่มี Macro · นำเข้า Power BI แล้วทำโจทย์ พิมพ์คำตอบกลับในไฟล์ ตรวจเอง
เริ่มต้นยอดขายสินค้าพนักงานขายวันที่คงคลังเป้าภูมิภาคแบบฝึกหัดเฉลย

โจทย์ในชีตแบบฝึกหัด

  1. ข้อ 1[ยอดเฉลี่ยต่อวันถึงวันนี้] ยอดสะสมในเดือนหารด้วยจำนวนวันที่ผ่านไป · กรอง ปี = 2025, เดือน = มี.ค., วัน = 31
  2. ข้อ 2[ยอดเฉลี่ยต่อวันถึงวันนี้] ยอดสะสมในเดือนหารด้วยจำนวนวันที่ผ่านไป · กรอง ปี = 2024, เดือน = ก.พ., วัน = 20
  3. ข้อ 3[ยอดขาย] ยอดขายสุทธิ (จำนวน × ราคาต่อหน่วย × (1 − ส่วนลด)) · กรอง ปี = 2025, เดือน = ก.ค., วัน = 10
  4. ข้อ 4[ยอดสะสมในเดือน] ยอดขายสะสมตั้งแต่วันที่ 1 ของเดือนถึงวันที่กรอง · กรอง ปี = 2025, เดือน = ธ.ค., วัน = 25
  5. ข้อ 5[จำนวนวันที่สะสม] จำนวนวันตั้งแต่วันที่ 1 ถึงวันที่กรอง · กรอง ปี = 2025, เดือน = มี.ค.

ไปต่อ

อยากเขียน DAX สำหรับรายงานจริงทั้งระบบ

ต่อยอดใน Data Analysis Expression (DAX) for Power BI: Measures, X Aggregation, CALCULATE, Date Table และ Time Intelligence (2 วัน)

ดูหลักสูตร