Var
จัดเก็บผลลัพธ์ของนิพจน์เป็นตัวแปรที่มีชื่อซึ่งสามารถส่งผ่านเป็นอาร์กิวเมนต์ไปยังนิพจน์หน่วยวัดอื่น ๆ ได้ หลังจากที่มีการคํานวณค่าผลลัพธ์สําหรับนิพจน์ตัวแปร ค่าเหล่านั้นจะไม่เปลี่ยนแปลงแม้ว่าตัวแปรจะถูกอ้างอิงในนิพจน์อื่นก็ตาม
ไวยากรณ์
VAR <name> = <expression>
พารามิเตอร์
เงื่อนไข | คำนิยาม |
---|---|
ชื่อ | ชื่อของตัวแปร (ตัวระบุ) ตัวคั่นไม่ได้รับการสนับสนุน ตัวอย่างเช่น 'varName' หรือ [varName] จะส่งผลให้เกิดข้อผิดพลาด ชุดอักขระที่ได้รับการสนับสนุน: a-z, A-Z, 0-9 0-9 ไม่สามารถเป็นอักขระตัวแรกได้ __ (ขีดล่างคู่) ได้รับอนุญาตเป็นคํานําหน้าชื่อตัวระบุ ไม่มีอักขระพิเศษอื่นใดที่ได้รับการสนับสนุน ไม่อนุญาตให้ใช้คําสําคัญที่สงวนไว้ ไม่อนุญาตให้ใช้ชื่อของตารางที่มีอยู่ ไม่อนุญาตให้ใช้พื้นที่ว่าง |
นิพจน์ | นิพจน์ DAX ที่แสดงค่าสเกลาหรือตาราง |
ค่าที่ส่งกลับ
ตัวแปรที่มีชื่อซึ่งประกอบด้วยผลลัพธ์ของอาร์กิวเมนต์นิพจน์
หมายเหตุ
นิพจน์ที่ส่งผ่านเป็นอาร์กิวเมนต์ไปยัง VAR สามารถมีการประกาศ VAR อื่นได้
เมื่ออ้างอิงตัวแปร:
- หน่วยวัดไม่สามารถอ้างอิงถึงตัวแปรที่กําหนดไว้ภายนอกนิพจน์หน่วยวัด แต่สามารถอ้างอิงถึงตัวแปรขอบเขตการทํางานที่กําหนดไว้ภายในนิพจน์ได้
- ตัวแปรสามารถอ้างอิงถึงหน่วยวัดได้
- ตัวแปรสามารถอ้างอิงถึงตัวแปรที่กําหนดไว้ก่อนหน้านี้
- ไม่สามารถอ้างอิงคอลัมน์ในตัวแปรตารางผ่านทางไวยากรณ์ TableName[ColumnName]
สําหรับแนวทางปฏิบัติที่ดีที่สุดเมื่อใช้ VAR โปรดดู การใช้ตัวแปรเพื่อปรับปรุงสูตร DAX ของคุณ
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับวิธีการใช้ VAR ภายในคิวรี DAX โปรดดู คิวรี DAX
ตัวอย่าง
หากต้องการคํานวณเปอร์เซ็นต์ของการเติบโตในปีต่อปีโดยไม่ใช้ตัวแปร คุณสามารถสร้างหน่วยวัดที่แยกต่างหากสามรายการได้ หน่วยวัดแรกนี้จะคํานวณผลรวมของยอดขาย:
Sum of SalesAmount = SUM(SalesTable[SalesAmount])
หน่วยวัดที่สองจะคํานวณยอดขายสําหรับปีก่อนหน้า:
SalesAmount PreviousYear =
CALCULATE([Sum of SalesAmount],
SAMEPERIODLASTYEAR(Calendar[Date])
)
จากนั้นคุณสามารถสร้างหน่วยวัดที่สามที่รวมสองหน่วยวัดเพื่อคํานวณเปอร์เซ็นต์การเติบโตได้ โปรดสังเกตว่ามีการใช้ผลรวมของหน่วยวัด SalesAmount ในสองที่ ก่อนอื่นเพื่อพิจารณาว่ามีการขายหรือไม่ จากนั้นให้คํานวณเปอร์เซ็นต์อีกครั้ง
Sum of SalesAmount YoY%: =
IF([Sum of SalesAmount] ,
DIVIDE(([Sum of SalesAmount] – [SalesAmount PreviousYear]), [Sum of SalesAmount])
)
เมื่อใช้ตัวแปร คุณจะสามารถสร้างหน่วยวัดเดียวที่คํานวณผลลัพธ์เดียวกัน:
YoY% =
VAR Sales =
SUM(SalesTable[SalesAmount])
VAR SalesLastYear =
CALCULATE ( SUM ( SalesTable[SalesAmount] ), SAMEPERIODLASTYEAR ( 'Calendar'[Date] ) )
return if(Sales, DIVIDE(Sales – SalesLastYear, Sales))
เมื่อใช้ตัวแปร คุณจะได้รับผลลัพธ์เดียวกัน แต่ด้วยวิธีที่ง่ายขึ้น และเนื่องจากผลลัพธ์ของนิพจน์ถูกเก็บไว้ในตัวแปร ประสิทธิภาพการทํางานของหน่วยวัดสามารถดีขึ้นได้อย่างมากเนื่องจากไม่จําเป็นต้องคํานวณใหม่ในแต่ละครั้งที่ใช้