Historical sales = CALCULATE(SUM('Table'[Amount]),DATEADD('Table'[Date],-1,MONTH))

คำสั่ง DAX นี้ใช้สำหรับคำนวณ ผลรวม (SUM) ของคอลัมน์ 'Table'[Amount] โดยมีเงื่อนไขที่กำหนดโดยฟังก์ชัน DATEADD() ซึ่งเลื่อนช่วงเวลาของคอลัมน์ 'Table'[Date] ย้อนกลับไป 1 เดือน ก่อนที่จะนำไปใช้ใน CALCULATE() เพื่อคำนวณผลลัพธ์
แยกวิเคราะห์โค้ดทีละส่วน
SUM('Table'[Amount])
ใช้ฟังก์ชัน SUM() เพื่อคำนวณผลรวมของคอลัมน์ 'Table'[Amount]
นี่เป็นค่าที่เราต้องการหา
DATEADD('Table'[Date], -1, MONTH)
ฟังก์ชัน DATEADD() ใช้ในการปรับค่าของคอลัมน์วันที่ ('Table'[Date])
-1 หมายถึง ย้อนกลับไป 1 เดือน
MONTH ระบุว่าต้องการเปลี่ยนแปลงระดับของเดือน
CALCULATE()
ฟังก์ชัน CALCULATE() ใช้เพื่อคำนวณค่าที่กำหนด (SUM('Table'[Amount])) แต่ใช้ตัวกรอง (FILTER) ที่ถูกกำหนดโดย DATEADD()
ตัวกรองนี้จะทำให้การคำนวณเกิดขึ้นกับข้อมูลที่เป็นของเดือนก่อนหน้าจากค่าปัจจุบันของฟิลด์วันที่
ตัวอย่างข้อมูลในตาราง Table
Date Amount
2025-01-10 100
2025-01-15 200
2025-02-05 150
2025-02-20 250
2025-03-08 300
ผลลัพธ์ที่ได้จากการคำนวณ
หากคุณใช้งานคำสั่งนี้ใน เดือนมีนาคม 2025 (วันที่อ้างอิงคือ 2025-03):
DATEADD('Table'[Date], -1, MONTH) จะเปลี่ยนฟิลเตอร์ให้เลือกเฉพาะข้อมูลของ เดือนกุมภาพันธ์ 2025
ฟังก์ชัน SUM('Table'[Amount]) จะรวมค่า Amount ที่อยู่ในเดือนกุมภาพันธ์
ข้อมูลของเดือนกุมภาพันธ์ 2025 คือ:
2025-02-05 → 150
2025-02-20 → 250
ดังนั้น SUM('Table'[Amount]) ในเดือนกุมภาพันธ์ = 150 + 250 = 400
ผลลัพธ์ของ DAX
ถ้าเราใช้สูตรนี้ใน เดือนมีนาคม 2025 ผลลัพธ์ที่ได้จะเป็น 400 (เพราะเป็นผลรวมของเดือนกุมภาพันธ์)
การประยุกต์ใช้งาน
หาค่าของเดือนที่แล้ว (Previous Month) เพื่อทำการเปรียบเทียบ
ตัวอย่าง: ใช้ใน KPI เพื่อดูแนวโน้มยอดขายแต่ละเดือน
สร้าง Measure สำหรับเปรียบเทียบระหว่างเดือน
PreviousMonthSales = CALCULATE(SUM('Sales'[Amount]), DATEADD('Sales'[Date], -1, MONTH))
ใช้เพื่อสร้างตัวแปรที่ใช้ในการเปรียบเทียบยอดขายเดือนก่อนหน้า
คำนวณเปอร์เซ็นต์การเปลี่ยนแปลงของยอดขาย
SalesGrowth =
VAR PrevMonthSales = CALCULATE(SUM('Sales'[Amount]), DATEADD('Sales'[Date], -1, MONTH))
RETURN
DIVIDE(SUM('Sales'[Amount]) - PrevMonthSales, PrevMonthSales, 0)
ใช้เพื่อวัดอัตราการเติบโตของยอดขายเมื่อเทียบกับเดือนก่อน
สรุป
ฟังก์ชัน CALCULATE() ใช้เปลี่ยนบริบทของการคำนวณ
DATEADD('Table'[Date], -1, MONTH) ทำหน้าที่เปลี่ยนช่วงวันที่ให้ย้อนกลับไป 1 เดือน
ใช้ในการวิเคราะห์ข้อมูลแบบไดนามิก เช่น การเปรียบเทียบยอดขายเดือนปัจจุบันกับเดือนก่อนหน้า