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

DATEADD

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

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

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

DATEADD คืออะไร

คืนตารางวันที่ที่เลื่อนไปข้างหน้าหรือถอยหลังตามจำนวนวัน เดือน ไตรมาส หรือปี ใช้หายอดเดือนก่อนหรือไตรมาสก่อน

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

  • หายอดเดือนก่อนหรือไตรมาสก่อน
  • เทียบกับช่วงเวลาที่เลื่อนไปกี่เดือนก็ได้

รูปแบบสูตร

=DATEADD(<dates> or <calendar>, <number_of_intervals>, <interval>[,<Extension>], [,<Truncation>])

Argument แต่ละตัว

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

Argumentจำเป็นไหมความหมาย
datesจำเป็นคอลัมน์วันที่ของตาราง Date เช่น 'วันที่'[Date]
number_of_intervalsจำเป็นจำนวนที่เลื่อน ติดลบ = ถอยหลัง
intervalจำเป็นหน่วยที่เลื่อน พิมพ์เป็นคำสงวน: DAY, MONTH, QUARTER, YEAR
[Extension], [Truncation]ไม่บังคับใช้กับการอ้าง calendar แบบใหม่เท่านั้น ไม่ใช้กับคอลัมน์วันที่

ลองเลย: ยอดขายเทียบเดือนก่อน

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

[ยอดขาย] = SUMX('ยอดขาย', 'ยอดขาย'[จำนวน] * 'ยอดขาย'[ราคาต่อหน่วย] * (1 - 'ยอดขาย'[ส่วนลด]))
[เปลี่ยนจากเดือนก่อน] = DIVIDE([ยอดขาย] - [ยอดเดือนก่อน], [ยอดเดือนก่อน])
Ctrl + Enter คำนวณ · พิมพ์ ' เลือกตาราง · [ เลือกคอลัมน์หรือ Measure
  • พนักงานขายไม่มีตัวกรอง
  • สินค้าไม่มีตัวกรอง
  • วันที่[Date] 1/12/2024 ถึง 31/12/2024
  • ยอดขายเหลือ 19 จาก 495 แถว · หนึ่งจุดคือหนึ่งคำสั่งซื้อ
ยอดขายเทียบเดือนก่อน
ยอดขายเทียบเดือนก่อน · ใช้ลูกศรเลื่อนระหว่างช่อง Enter เพื่อดูว่าตัวเลขนั้นคำนวณอย่างไร
เดือนยอดขายยอดเดือนก่อนเปลี่ยนจากเดือนก่อน
ม.ค.
ก.พ.
มี.ค.
เม.ย.
พ.ค.
มิ.ย.
ก.ค.
ส.ค.
ก.ย.
ต.ค.
พ.ย.
ธ.ค.
ยอดรวม
313,531ยอดเดือนก่อน · ม.ค. · 2025
ดูทีละขั้นขั้น 5 / 5

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

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

Excel เลื่อนช่วงวันที่ด้วย DATE และ EOMONTH เอง

DAXยอดเดือนก่อน = CALCULATE([ยอดขาย], DATEADD('วันที่'[Date], -1, MONTH))

เปลี่ยน MONTH เป็น QUARTER หรือ YEAR ได้

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

ม.ค. 2025 ได้ยอด ธ.ค. 2024 ส่วน ม.ค. 2024 ว่าง เพราะตาราง Date ไม่มี ธ.ค. 2023 DATEADD คืนเฉพาะวันที่ที่มีในคอลัมน์
แถวยอดรวมของปีเลื่อนทั้งปีถอยหลังหนึ่งเดือน จึงได้ ธ.ค. ปีก่อน ถึง พ.ย. ปีนี้
ถ้าวันที่ในตัวกรองไม่ต่อเนื่อง เช่น เลือกเดือน ม.ค. กับ มี.ค. พร้อมกัน DATEADD แบบคอลัมน์จะ Error

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

1. ยอดเดือนก่อนเขียนแบบใด

2. DATEADD('วันที่'[Date], -1, YEAR) ได้ผลเหมือนฟังก์ชันใด

3. แถว ม.ค. 2025 ของยอดเดือนก่อนคือยอดใด

ไฟล์ฝึก DATEADD

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

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

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

  1. ข้อ 1[ยอดเดือนก่อน] ยอดขายของเดือนก่อนหน้าเดือนที่กรอง · กรอง ปี = 2025, เดือน = ก.ค.
  2. ข้อ 2[ยอดเดือนก่อน] ยอดขายของเดือนก่อนหน้าเดือนที่กรอง · กรอง ช่องทาง = Online, ปี = 2025, เดือน = ธ.ค.
  3. ข้อ 3[ยอดขาย] ยอดขายของช่วงที่กรอง · กรอง ปี = 2025, เดือน = พ.ค.
  4. ข้อ 4[เปลี่ยนจากเดือนก่อน] อัตราเปลี่ยนแปลงเทียบเดือนก่อน · กรอง ช่องทาง = Modern Trade, ปี = 2025, เดือน = ต.ค.
  5. ข้อ 5[ยอดขาย] ยอดขายของช่วงที่กรอง · กรอง ปี = 2025

ไปต่อ

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

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

ดูหลักสูตร