ใช้ฟังก์ชันตัวแสดงเวลาของ DAX
DAX มีฟังก์ชันตัวแสดงเวลาหลายแบบเพื่อลดความซับซ้อนของการแก้ไขบริบทตัวกรองวันที่ คุณสามารถเขียนสูตรตัวแสดงเวลาเหล่านี้ได้หลายสูตรโดยใช้ CALCULATE
ฟังก์ชันที่ปรับเปลี่ยนตัวกรองวันที่ แต่จะสร้างงานมากขึ้น
หมายเหตุ
ฟังก์ชันตัวแสดงเวลาของ DAX จำนวนมากมีสิ่งที่ต้องคำนึงถึงเกี่ยวกับกับช่วงเวลา วันที่ มาตรฐาน โดยเฉพาะปี ไตรมาส และเดือน ถ้าคุณมีช่วงเวลาที่ไม่สม่ำเสมอ (ตัวอย่างเช่น เดือนทางการเงินที่เริ่มตั้งแต่กลางเดือนจนถึงเดือนตามปฏิทิน) หรือคุณจำเป็นต้องทำงานกับสัปดาห์หรือช่วงเวลา (ชั่วโมง นาที และอื่นๆ) ฟังก์ชันตัวแสดงเวลา DAX จะไม่เป็นประโยชน์ แต่คุณจะต้องใช้ CALCULATE
ฟังก์ชัน และส่งผ่านในตัวกรองวันที่หรือเวลาที่สร้างขึ้นด้วยมือแทน
ความต้องการของตารางวันที่
เมื่อต้องการทำงานกับฟังก์ชันตัวแสดงเวลาของ DAX คุณจำเป็นต้องทำตามข้อกำหนดของแบบจำลอง รูปแบบเบื้องต้นของการมีอย่างน้อยหนึ่งตารางวันที่ในแบบจำลองของคุณ ตารางวันที่เป็นตารางที่ตรงกับความต้องการต่อไปนี้:
- การดำเนินการนี้จะต้องมีคอลัมน์ของชนิดข้อมูลวันที่ (หรือวันที่/เวลา) ที่เรียกว่าคอลัมน์วันที่
- คอลัมน์วันที่ต้องมีค่าไม่ซ้ำกัน
- คอลัมน์วันที่ต้องไม่มีช่องว่าง
- คอลัมน์วันที่ต้องไม่มีวันที่หายไป
- คอลัมน์วันที่ต้องครอบคลุมปีเต็ม ปีไม่จำเป็นต้องเป็นปีปฏิทิน (มกราคม - ธันวาคม)
- ตารางวันที่ต้องระบุเป็นตารางวันที่
สำหรับข้อมูลเพิ่มเติม โปรดดูสร้างตารางวันที่ใน Power BI Desktop
การสรุปเมื่อเวลาผ่านไป
หนึ่งกลุ่มของฟังก์ชันตัวแสดงเวลาเวลา DAX เกี่ยวข้องกับการสรุปเมื่อเวลาผ่านไป:
-
DATESYTD
- ส่งกลับตารางแบบคอลัมน์เดียวที่มีวันที่สําหรับต้นปีจนถึงปัจจุบัน (YTD) ในบริบทตัวกรองปัจจุบัน กลุ่มนี้ยังมีDATESMTD
ฟังก์ชัน และDATESQTD
DAX สําหรับต้นเดือนถึงปัจจุบัน (MTD) และไตรมาสจนถึงปัจจุบัน (QTD) คุณสามารถส่งผ่านฟังก์ชันเหล่านี้เป็นตัวกรองลงในCALCULATE
ฟังก์ชัน DAX ได้ -
TOTALYTD
- ประเมินนิพจน์สําหรับ YTD ในบริบทตัวกรองปัจจุบัน ฟังก์ชัน QTD และ MTD ของ DAXTOTALQTD
TOTALMTD
ที่เทียบเท่าและยังรวมอยู่ด้วย -
DATESBETWEEN
- ส่งกลับตารางที่ประกอบด้วยคอลัมน์ของวันที่เริ่มต้นด้วยวันที่เริ่มต้นที่กําหนดและดําเนินการต่อจนถึงวันที่สิ้นสุดที่กําหนด -
DATESINPERIOD
- ส่งกลับตารางที่มีคอลัมน์ของวันที่เริ่มต้นด้วยวันที่เริ่มต้นที่กําหนดและดําเนินการต่อสําหรับจํานวนช่วงเวลาที่ระบุ
หมายเหตุ
TOTALYTD
ในขณะที่ฟังก์ชันนั้นใช้งานง่าย คุณจะถูกจํากัดให้ส่งผ่านในหนึ่งนิพจน์ตัวกรอง หากคุณต้องการใช้นิพจน์ตัวกรองหลายรายการ ให้ใช้ CALCULATE
ฟังก์ชัน จากนั้นส่ง DATESYTD
ฟังก์ชันในฐานะหนึ่งในนิพจน์ตัวกรอง
ในตัวอย่างต่อไปนี้ คุณจะสร้างการคำนวณแบบข่าวกรองครั้งแรกของคุณที่จะใช้ฟังก์ชัน TOTALYTD โดยมมีไวยากรณ์ดังต่อไปนี้:
TOTALYTD(<expression>, <dates>, [, <filter>][, <year_end_date>])
ฟังก์ชันต้องการนิพจน์และเหมือนกับฟังก์ชันตัวแสดงเวลาทั้งหมด การอ้างอิงไปยังคอลัมน์วันที่ของตารางวันที่ที่ทำเครื่องหมาย หรืออาจมีการส่งผ่านนิพจน์ตัวกรองเดี่ยวหรือวันที่สิ้นปี (จำเป็นเฉพาะเมื่อปีนั้นไม่สิ้นสุดในวันที่31ธันวาคม)
ดาวน์โหลดและเปิดไฟล์ Adventure Works DW 2020 M07.pbix จากนั้นเพิ่มข้อกําหนดหน่วยวัดต่อไปนี้ลงในตาราง ยอดขาย ที่คํานวณรายได้ YTD จัดรูปแบบหน่วยวัดเป็นสกุลเงินด้วยตำแหน่งทศนิยมสองจุด
Revenue YTD =
TOTALYTD([Revenue], 'Date'[Date], "6-30")
ค่าวันที่สิ้นปีของ "6-30"
เป็นตัวแทนวันที่ 30 มิถุนายน
ในหน้า 1 ของรายงาน ให้เพิ่มการวัดผลด้วยภาพเมทริกซ์รายได้ YTD โปรดสังเกตว่าการวัดผลจะสร้างสรุปของจำนวนรายได้ตั้งแต่เริ่มต้นปีจนถึงเดือนที่กรอง
การเปรียบเทียบเมื่อเวลาผ่านไป
อีกกลุ่มหนึ่งของฟังก์ชันตัวแสดงเวลา DAX เกี่ยวข้องกับการเปลี่ยนช่วงเวลา:
-
DATEADD
- ส่งกลับตารางที่มีคอลัมน์วันที่ เลื่อนไปข้างหน้าหรือย้อนกลับตามเวลาด้วยจํานวนช่วงเวลาที่ระบุจากวันที่ในบริบทตัวกรองปัจจุบัน -
PARALLELPERIOD
- ส่งกลับตารางที่ประกอบด้วยคอลัมน์ของวันที่ที่แสดงช่วงเวลาที่ขนานกับวันที่ในคอลัมน์วันที่ที่ระบุในบริบทตัวกรองปัจจุบัน โดยวันที่จะเลื่อนช่วงเวลาต่างๆ ไปข้างหน้าหรือย้อนเวลากลับไป -
SAMEPERIODLASTYEAR
- ส่งกลับตารางที่มีคอลัมน์ของวันที่ที่ย้อนเวลากลับไปหนึ่งปีจากวันที่ในคอลัมน์วันที่ที่ระบุในบริบทตัวกรองปัจจุบัน - ฟังก์ชันตัวช่วยของ DAX จำนวนมากสำหรับการนำทางย้อนกลับหรือไปข้างหน้าสำหรับช่วงเวลาที่กำหนดซึ่งทั้งหมดนี้จะส่งคืนตารางวันที่ ฟังก์ชันผู้ช่วยเหลือเหล่านี้ประกอบด้วย
NEXTDAY
,NEXTMONTH
,NEXTQUARTER
,NEXTYEAR
, และPREVIOUSDAY
,PREVIOUSMONTH
PREVIOUSQUARTER
และPREVIOUSYEAR
ในตอนนี้ คุณจะเพิ่มหน่วยวัดไปยังตาราง ยอดขาย ที่คํานวณรายได้สําหรับปีก่อนหน้าโดยใช้ SAMEPERIODLASTYEAR
ฟังก์ชัน จัดรูปแบบหน่วยวัดเป็นสกุลเงินด้วยตำแหน่งทศนิยมสองจุด
Revenue PY =
VAR RevenuePriorYear = CALCULATE([Revenue], SAMEPERIODLASTYEAR('Date'[Date]))
RETURN
RevenuePriorYear
เพิ่มหน่วยวัดรายได้ PY ไปยังภาพเมทริกซ์ โปรดสังเกตว่าหน่วยวัดจะสร้างผลลัพธ์ที่คล้ายกับจำนวนรายได้ของปีก่อนหน้า
ถัดไป คุณจะแก้ไขหน่วยวัดโดยการเปลี่ยนชื่อเป็น รายได้ YoY เป็น % จากนั้นอัปเดต RETURN
รายการเพื่อคํานวณอัตราส่วนการเปลี่ยนแปลง ตรวจสอบให้แน่ใจว่าได้เปลี่ยนรูปแบบเป็นเปอร์เซ็นต์ด้วยตำแหน่งทศนิยมสองจุด
Revenue YoY % =
VAR RevenuePriorYear = CALCULATE([Revenue], SAMEPERIODLASTYEAR('Date'[Date]))
RETURN
DIVIDE(
[Revenue] - RevenuePriorYear,
RevenuePriorYear
)
โปรดสังเกตว่ารายได้ YoY เป็น % จะสร้างอัตราส่วนของปัจจัยการเปลี่ยนแปลงในรายได้รายเดือนของปีก่อนหน้า ตัวอย่างเช่น เดือนกรกฎาคม 2018 เป็นตัวแทนของ 106.53 เปอร์เซ็นต์เพิ่มขึ้นในรายได้รายเดือนของปีก่อนหน้าและเดือนพฤศจิกายน 2018 เป็นตัวแทน 24.22 เปอร์เซ็นต์ลดลงในรายได้รายเดือนของปีก่อนหน้า
หมายเหตุ
รายได้ YoY เป็น % ที่มาจากการใช้ตัวแปร DAX ที่ยอดเยี่ยม หน่วยวัดนี้จะช่วยปรับปรุงความสามารถในการอ่านของสูตรและช่วยให้คุณสามารถใช้ส่วนทดสอบหน่วยของตรรกะหน่วยวัด (โดยการส่งคืนค่าตัวแปร RevenuePriorYear) นอกจากนี้ หน่วยวัดเป็นสูตรที่เหมาะสมที่สุดเนื่องจากไม่จำเป็นต้องเรียกใช้ค่ารายได้ของปีก่อนหน้าสองครั้ง มีการจัดเก็บไว้ในตัวแปร RETURN
หนึ่งครั้ง ส่วนคําสั่งจะใช้กับค่าตัวแปรสองครั้ง