ตัวแปรใน DAX (VAR)
VAR ตั้งชื่อค่ากลางใน measure ทำให้สูตรอ่านง่าย คำนวณครั้งเดียว และ debug ได้ทีละท่อน.
เริ่มอ่านตรงนี้ก่อน
อธิบายแบบง่าย
ตัวแปรใน DAX (VAR) คือเรื่องที่ช่วยให้เราใช้ทำรายงานและ dashboard จากข้อมูลได้ถูกทางขึ้น
ระดับ
เหมาะกับคนที่เริ่มลงมือทำแล้ว
ใช้เมื่อไหร่
สูตรเดียวกันถูกเขียนซ้ำหลายจุดใน measure เดียว เช่น ยอดปีก่อนใช้ทั้งใน % และใน IF
อ่านแล้วทำอะไรต่อ
อยากรู้ว่า SalesLY ได้ค่าอะไร — เปลี่ยน RETURN เป็นชื่อตัวแปรนั้นชั่วคราว ดูค่าได้เลยไม่ต้องรื้อสูตร
เห็นภาพ: ทริคนี้เป็นยังไง
DIVIDE(
[Total Sales] - CALCULATE([Total Sales],
SAMEPERIODLASTYEAR('Date'[Date])),
CALCULATE([Total Sales],
SAMEPERIODLASTYEAR('Date'[Date]))
)VAR SalesLY =
CALCULATE([Total Sales],
SAMEPERIODLASTYEAR('Date'[Date]))
RETURN
DIVIDE([Total Sales] - SalesLY, SalesLY)ใช้ตอนไหน?
- สูตรเดียวกันถูกเขียนซ้ำหลายจุดใน measure เดียว เช่น ยอดปีก่อนใช้ทั้งใน % และใน IF
- measure ยาวจนอ่านไม่ออก อยากตั้งชื่อแต่ละท่อนให้สื่อความหมาย
- ต้อง debug — สลับ RETURN ไปดูค่าของตัวแปรทีละตัวได้ทันที
ความหมาย
VAR คือการประกาศตัวแปรภายใน measure หรือ calculated column ของ DAX โดยคำนวณค่าครั้งเดียวแล้วเรียกใช้ชื่อนั้นซ้ำได้ใน RETURN ช่วยให้สูตรยาวๆ แตกเป็นท่อนที่อ่านรู้เรื่อง เร็วขึ้น (ไม่คำนวณซ้ำ) และทดสอบทีละท่อนได้
รูปแบบ VAR ... RETURN
ประกาศตัวแปรกี่ตัวก็ได้ก่อน RETURN — ตัวแปรถูกคำนวณตอนประกาศ ไม่เปลี่ยนตาม filter ที่เกิดทีหลังใน RETURN
YoY % =
VAR Sales = [Total Sales]
VAR SalesLY = CALCULATE([Total Sales], SAMEPERIODLASTYEAR('Date'[Date]))
RETURN
DIVIDE(Sales - SalesLY, SalesLY)ตัวอย่างการใช้
Debug ทีละท่อน
อยากรู้ว่า SalesLY ได้ค่าอะไร — เปลี่ยน RETURN เป็นชื่อตัวแปรนั้นชั่วคราว ดูค่าได้เลยไม่ต้องรื้อสูตร
-- ชั่วคราวตอน debug
RETURN SalesLY