DATESINPERIOD
อัปเดต 27 ก.ย. 2569 · ตัวเลขในตัวอย่างตรงกับตัวคำนวณอ้างอิงที่เขียนแยก และสูตร Excel ที่คำนวณจากข้อมูลชุดเดียวกัน · ยังไม่ได้ตรวจใน Power BI Desktop
เอกสารอ้างอิง: DATESINPERIOD (Microsoft Learn) · syntax และหมายเหตุในหน้านี้ตรวจกับหน้านี้ของ Microsoft · ตัวจำลองในหน้านี้รองรับเฉพาะรูปแบบที่ใช้ในตัวอย่าง (เช่น ไม่รองรับ calendar-based time intelligence)
DATESINPERIOD คืออะไร
คืนตารางวันที่ย้อนหลังหรือไปข้างหน้าจากวันที่กำหนด ตามจำนวนวัน เดือน ไตรมาส หรือปี ใช้ทำยอดย้อนหลัง 3 เดือน (rolling)
ใช้เมื่อไหร่
- ยอดย้อนหลัง 3 เดือนหรือ 12 เดือน (rolling) ของแต่ละเดือน
- ค่าเฉลี่ยเคลื่อนที่ (moving average) ที่ลดความผันผวนรายเดือน
รูปแบบสูตร
Argument แต่ละตัว
ชี้ที่ argument ในรูปแบบสูตรด้านบนเพื่อไฮไลต์แถวนั้น
| Argument | จำเป็นไหม | ความหมาย |
|---|---|---|
| dates | จำเป็น | คอลัมน์วันที่ของตาราง Date |
| start_date | จำเป็น | วันที่ตั้งต้น มักใช้ MAX('วันที่'[Date]) |
| number_of_intervals | จำเป็น | จำนวนช่วง ติดลบ = ย้อนหลัง |
| interval | จำเป็น | DAY, MONTH, QUARTER หรือ YEAR (คำสงวน) |
| [endbehavior] | ไม่บังคับ | ใช้กับการอ้าง calendar เท่านั้น |
ลองเลย: ยอดขาย 3 เดือนย้อนหลัง (rolling) รายเดือน
คลิกตัวเลขในตารางเพื่อดูตัวกรองไหลผ่านโมเดลจนเป็นตัวเลขนั้น เลือกค่าใน Slicer แก้ Measure ได้ หรือกด Excel เพื่อดูสูตร Excel ที่ได้คำตอบเดียวกัน
- พนักงานขายไม่มีตัวกรอง
- สินค้าไม่มีตัวกรอง
- วันที่[Date] 1/11/2024 ถึง 31/1/2025
- ยอดขายเหลือ 59 จาก 495 แถว · หนึ่งจุดคือหนึ่งคำสั่งซื้อ
| เดือน | ยอดขาย | ยอด 3 เดือนย้อนหลัง | เฉลี่ยต่อเดือน (3 เดือน) |
|---|---|---|---|
| ม.ค. | |||
| ก.พ. | |||
| มี.ค. | |||
| เม.ย. | |||
| พ.ค. | |||
| มิ.ย. | |||
| ก.ค. | |||
| ส.ค. | |||
| ก.ย. | |||
| ต.ค. | |||
| พ.ย. | |||
| ธ.ค. | |||
| ยอดรวม |
ถ้าคุณเขียน Excel อยู่แล้ว
=SUMIFS(ยอดขาย[ยอดสุทธิ], ยอดขาย[วันที่], ">="&EDATE(DATE(2025,3,31),-3)+1, ยอดขาย[วันที่], "<="&DATE(2025,3,31))Excel ใช้ EDATE ย้อนหลังจากวันสุดท้ายเอง
ยอด 3 เดือนย้อนหลัง = CALCULATE([ยอดขาย], DATESINPERIOD('วันที่'[Date], MAX('วันที่'[Date]), -3, MONTH))นับรวมวันตั้งต้น ย้อนไปไม่รวมวันที่ครบ 3 เดือนพอดี
ข้อผิดพลาดและเคล็ดลับ
แบบทดสอบ 3 ข้อ
1. DATESINPERIOD('วันที่'[Date], MAX('วันที่'[Date]), -3, MONTH) ในแถว มิ.ย. คือช่วงใด
ย้อน 3 เดือนจาก 30 มิ.ย. ได้ 30 มี.ค. ซึ่งไม่นับรวม ช่วงจึงเริ่ม 31 มี.ค.
2. number_of_intervals เป็นค่าลบหมายความว่าอะไร
ค่าบวกนับไปข้างหน้า ค่าลบนับย้อนหลัง
3. ต้องการค่าเฉลี่ยย้อนหลัง 3 เดือน ควรเขียนอย่างไร
หรือใช้ AVERAGEX กับรายการเดือนในช่วงนั้น
ไฟล์ฝึก DATESINPERIOD
9Expert-DAX-DATESINPERIOD-Practice-v1.0.xlsx
โจทย์ในชีตแบบฝึกหัด
- ข้อ 1[ยอด 3 เดือนย้อนหลัง] ยอดขาย 3 เดือนล่าสุดนับถึงสิ้นเดือนที่กรอง · กรอง ปี = 2025, เดือน = ก.ค.
- ข้อ 2[ยอด 3 เดือนย้อนหลัง] ยอดขาย 3 เดือนล่าสุดนับถึงสิ้นเดือนที่กรอง · กรอง ช่องทาง = Online, ปี = 2025, เดือน = ธ.ค.
- ข้อ 3[ยอดขาย] ยอดขายของช่วงที่กรอง · กรอง ปี = 2025, เดือน = พ.ค.
- ข้อ 4[เฉลี่ยต่อเดือน (3 เดือน)] ยอดขายเฉลี่ยต่อเดือนของ 3 เดือนล่าสุด · กรอง ช่องทาง = Modern Trade, ปี = 2025, เดือน = ต.ค.
- ข้อ 5[ยอดขาย] ยอดขายของช่วงที่กรอง · กรอง ปี = 2025
ไปต่อ
ต่อยอดใน Data Analysis Expression (DAX) for Power BI: Measures, X Aggregation, CALCULATE, Date Table และ Time Intelligence (2 วัน)