Thep Excel

DATEADD – เลื่อนช่วงเวลาไปข้างหน้าหรือย้อนหลัง (Shift Dates)

เลื่อนช่วงวันที่ไปข้างหน้าหรือย้อนหลัง (MoM, QoQ, YoY)

DATEADD คืนค่าตารางวันที่ ที่ถูกเลื่อนออกไปจากช่วงวันที่ใน Context ปัจจุบัน ตามจำนวน (NumberOfIntervals) และหน่วย (Interval) ที่กำหนด เช่น เลื่อนย้อนหลัง 1 เดือน หรือเลื่อนไปข้างหน้า 1 ปี

=DATEADD(Dates, NumberOfIntervals, Interval)

By ThepExcel AI Agent
1 December 2025

Syntax & Arguments

=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

How it works

การเปรียบเทียบรายเดือน (Month-over-Month)

เปรียบเทียบยอดขายเดือนนี้กับเดือนที่แล้ว (MoM Growth) โดยใช้ DATEADD(…, -1, MONTH)

การเปรียบเทียบรายไตรมาส (Quarter-over-Quarter)

เปรียบเทียบ Q2 ปีนี้ กับ Q1 ปีเดียวกัน โดยใช้ DATEADD(…, -1, QUARTER)

Custom Date Shifting

การเลื่อนวันที่แบบเฉพาะเจาะจง เช่น เปรียบเทียบกับ 14 วันที่แล้ว (Bi-weekly comparison)

Examples

ตัวอย่างที่ 1: ยอดขายเดือนที่แล้ว (Previous Month Sales)

ถ้าปัจจุบันเลือกวันที่ 1-15 March, สูตรนี้จะคืนค่าของ 1-15 February (รักษาช่วงเวลา 15 วันเท่าเดิม)
DAX Formula:

Sales PM = CALCULATE( [Total Sales], DATEADD('Date'[Date], -1, MONTH) )

Result:

ยอดขายของ 1 เดือนก่อนหน้า (ตามช่วงวันที่เลือก)

ตัวอย่างที่ 2: ยอดขายปีที่แล้ว (เทียบเท่า SAMEPERIOD LASTYEAR)

การใช้ DATEADD(…, -1, YEAR) ให้ผลลัพธ์เหมือนกับ SAMEPERIOD LASTYEAR แต่ยืดหยุ่นกว่าเพราะเปลี่ยนตัวเลขเป็น -2, -3 ปีได้
DAX Formula:

Sales LY = CALCULATE( [Total Sales], DATEADD('Date'[Date], -1, YEAR) )

Result:

ยอดขายของ 1 ปีก่อนหน้า

ตัวอย่างที่ 3: ยอดขายคาดการณ์เดือนหน้า

นำข้อมูลเดือนถัดไปมาแสดง (ถ้ามี) หรือใช้เปรียบเทียบเพื่อดู Trend
DAX Formula:

Forecast Next Month = CALCULATE( [Total Sales], DATEADD('Date'[Date], 1, MONTH) )

Result:

ยอดขายของ 1 เดือนถัดไป

FAQs

DATEADD ต่างจาก PARALLELPERIOD อย่างไร?

DATEADD รักษาช่วงเวลาเดิม (เช่น เลือก 1-15 ม.ค. ก็จะย้อนไป 1-15 ธ.ค.) แต่ PARALLELPERIOD จะขยายช่วงเวลาให้เต็มหน่วยเสมอ (เลือก 1-15 ม.ค. จะย้อนไป ‘ทั้งเดือน’ ธ.ค.)

ทำไมบางครั้งค่าไม่ขึ้น?

DATEADD ต้องการ Date Table ที่ต่อเนื่องทุกวัน หากมีวันที่ขาดหายไป (Gap) การเลื่อนวันที่อาจล้มเหลว และต้องแน่ใจว่า Date Table ครอบคลุมช่วงเวลาเป้าหมายด้วย

Resources & Related

Additional Notes

DATEADD เป็นฟังก์ชัน Time Intelligence ที่ยืดหยุ่นที่สุดในการ “เลื่อนเวลา” (Shift) มันช่วยให้คุณขยับช่วงเวลาปัจจุบันไปข้างหน้าหรือย้อนหลังได้ตามจำนวนและหน่วยที่ต้องการ (วัน, เดือน, ไตรมาส, ปี)

นิยมใช้เปรียบเทียบข้อมูลกับเดือนก่อน (MoM), ไตรมาสก่อน (QoQ) หรือปีก่อน (YoY) โดย DATEADD จะรักษาจำนวนวันและ Granularity ของช่วงเวลาเดิมไว้ (เช่น เลือก 10 วัน ก็เลื่อนไป 10 วันของเดือนที่แล้ว ไม่ใช่ทั้งเดือน)

Leave a Reply

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