ตัวอย่างที่ 1: ยอดขายเดือนที่แล้ว (Previous Month Sales)
Sales PM = CALCULATE( [Total Sales], DATEADD('Date'[Date], -1, MONTH) )
ยอดขายของ 1 เดือนก่อนหน้า (ตามช่วงวันที่เลือก)
เลื่อนช่วงวันที่ไปข้างหน้าหรือย้อนหลัง (MoM, QoQ, YoY)
DATEADD คืนค่าตารางวันที่ ที่ถูกเลื่อนออกไปจากช่วงวันที่ใน Context ปัจจุบัน ตามจำนวน (NumberOfIntervals) และหน่วย (Interval) ที่กำหนด เช่น เลื่อนย้อนหลัง 1 เดือน หรือเลื่อนไปข้างหน้า 1 ปี
=DATEADD(Dates, NumberOfIntervals, Interval)
=DATEADD(Dates, NumberOfIntervals, Interval)
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| Dates | column | Yes | คอลัมน์วันที่จาก Date Table ที่ต่อเนื่องและ Mark as Date Table แล้ว | |
| NumberOfIntervals | integer | Yes | จำนวนหน่วยที่ต้องการเลื่อน (ติดลบ = ย้อนหลัง, บวก = ไปข้างหน้า) | |
| Interval | enum | Yes | หน่วยเวลา: DAY, MONTH, QUARTER, YEAR |
เปรียบเทียบยอดขายเดือนนี้กับเดือนที่แล้ว (MoM Growth) โดยใช้ DATEADD(…, -1, MONTH)
เปรียบเทียบ Q2 ปีนี้ กับ Q1 ปีเดียวกัน โดยใช้ DATEADD(…, -1, QUARTER)
การเลื่อนวันที่แบบเฉพาะเจาะจง เช่น เปรียบเทียบกับ 14 วันที่แล้ว (Bi-weekly comparison)
Sales PM = CALCULATE( [Total Sales], DATEADD('Date'[Date], -1, MONTH) )
ยอดขายของ 1 เดือนก่อนหน้า (ตามช่วงวันที่เลือก)
Sales LY = CALCULATE( [Total Sales], DATEADD('Date'[Date], -1, YEAR) )
ยอดขายของ 1 ปีก่อนหน้า
Forecast Next Month = CALCULATE( [Total Sales], DATEADD('Date'[Date], 1, MONTH) )
ยอดขายของ 1 เดือนถัดไป
DATEADD รักษาช่วงเวลาเดิม (เช่น เลือก 1-15 ม.ค. ก็จะย้อนไป 1-15 ธ.ค.) แต่ PARALLELPERIOD จะขยายช่วงเวลาให้เต็มหน่วยเสมอ (เลือก 1-15 ม.ค. จะย้อนไป ‘ทั้งเดือน’ ธ.ค.)
DATEADD ต้องการ Date Table ที่ต่อเนื่องทุกวัน หากมีวันที่ขาดหายไป (Gap) การเลื่อนวันที่อาจล้มเหลว และต้องแน่ใจว่า Date Table ครอบคลุมช่วงเวลาเป้าหมายด้วย
DATEADD เป็นฟังก์ชัน Time Intelligence ที่ยืดหยุ่นที่สุดในการ “เลื่อนเวลา” (Shift) มันช่วยให้คุณขยับช่วงเวลาปัจจุบันไปข้างหน้าหรือย้อนหลังได้ตามจำนวนและหน่วยที่ต้องการ (วัน, เดือน, ไตรมาส, ปี)
นิยมใช้เปรียบเทียบข้อมูลกับเดือนก่อน (MoM), ไตรมาสก่อน (QoQ) หรือปีก่อน (YoY) โดย DATEADD จะรักษาจำนวนวันและ Granularity ของช่วงเวลาเดิมไว้ (เช่น เลือก 10 วัน ก็เลื่อนไป 10 วันของเดือนที่แล้ว ไม่ใช่ทั้งเดือน)