วิธีใช้สูตร Dax หายอดขายย้อนหลัง ง่ายๆ ด้วย Power BI

วิธีใช้สูตร Dax หายอดขายย้อนหลัง ง่ายๆ ด้วย Power BI
อยากแรกให้ใช้ คลิกขวา ที่ Table ใดก็ได้เพื่อสร้าง New measure ขึ้นมาให้ใส่คำสั่งตามนี้

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

Uploaded Image


คำสั่ง 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 เดือน
ใช้ในการวิเคราะห์ข้อมูลแบบไดนามิก เช่น การเปรียบเทียบยอดขายเดือนปัจจุบันกับเดือนก่อนหน้า

สร้างเมื่อ: 20/03/2025 กลับไปหน้าแรก