กลับไปหน้า Power BI
ทริคPower BI

Time Intelligence

Time Intelligence คือชุดฟังก์ชัน DAX สำหรับคำนวณ YTD, MTD และเทียบปีก่อน โดยต้องมีตารางวันที่ก่อน

เริ่มอ่านตรงนี้ก่อน

อธิบายแบบง่าย

Time Intelligence คือเรื่องที่ช่วยให้เราใช้ทำรายงานและ dashboard จากข้อมูลได้ถูกทางขึ้น

ระดับ

เหมาะกับคนที่เริ่มลงมือทำแล้ว

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

คุณต้องแสดงยอดสะสมตั้งแต่ต้นปีหรือต้นเดือน

อ่านแล้วทำอะไรต่อ

สร้าง measure ยอดปีก่อนด้วย SAMEPERIODLASTYEAR แล้วนำมาหาส่วนต่างเป็นเปอร์เซ็นต์เพื่อดูการเติบโต

เห็นภาพ: ทริคนี้เป็นยังไง

ก่อน: กรองปีก่อนด้วยเงื่อนไขวันที่ตายตัว พอเปลี่ยน slicer ปี ตัวเลขก็ผิด
Sales LY =
CALCULATE(
  [Total Sales],
  'Date'[Year] = 2024  -- ตายตัว เปลี่ยนปีแล้วพัง
)
หลัง: SAMEPERIODLASTYEAR เลื่อนช่วงให้เองตาม slicer ที่ผู้ใช้เลือก ใช้ตารางวันที่เป็นหลัก
Sales LY =
CALCULATE([Total Sales], SAMEPERIODLASTYEAR('Date'[Date]))

Sales YoY % =
DIVIDE([Total Sales] - [Sales LY], [Sales LY])
อยากเทียบยอดปีนี้กับปีก่อน — แทนที่จะฮาร์ดโค้ดช่วงวันที่เอง ให้ฟังก์ชัน Time Intelligence เลื่อนช่วงเวลาให้

ใช้ตอนไหน?

  • คุณต้องแสดงยอดสะสมตั้งแต่ต้นปีหรือต้นเดือน
  • คุณต้องเทียบยอดเดือนนี้กับเดือนเดียวกันปีที่แล้ว
  • คุณต้องคำนวณอัตราการเติบโตเทียบช่วงก่อนหน้า

ความหมาย

Time Intelligence คือกลุ่มฟังก์ชัน DAX ที่ช่วยคำนวณตามช่วงเวลา เช่น ยอดสะสมตั้งแต่ต้นปี (YTD) ยอดสะสมตั้งแต่ต้นเดือน (MTD) และการเทียบกับช่วงเดียวกันปีก่อน (YoY) ฟังก์ชันเหล่านี้ต้องมีตารางวันที่ (date table) ที่ทำเครื่องหมายเป็นตารางวันที่อย่างถูกต้องจึงจะทำงานได้

ฟังก์ชันที่ใช้บ่อย

ใช้ TOTALYTD สำหรับยอดสะสมต้นปี และ SAMEPERIODLASTYEAR คู่กับ CALCULATE สำหรับเทียบปีก่อน

Sales YTD =
TOTALYTD([Total Sales], 'Date'[Date])

Sales LY =
CALCULATE([Total Sales], SAMEPERIODLASTYEAR('Date'[Date]))

Sales YoY % =
DIVIDE([Total Sales] - [Sales LY], [Sales LY])

ตัวอย่างการใช้

เทียบยอดขายปีนี้กับปีก่อน

สร้าง measure ยอดปีก่อนด้วย SAMEPERIODLASTYEAR แล้วนำมาหาส่วนต่างเป็นเปอร์เซ็นต์เพื่อดูการเติบโต

Sales LY = CALCULATE([Total Sales], SAMEPERIODLASTYEAR('Date'[Date]))