Variables در زبان DAX
در این مطلب می خواهیم در مورد متغیرها (Variables) در زبان DAX صحبت کنیم.
متغیر ها در زبان دکس، حاصل عبارات را در خود نگه داری می کنند که می توانند به عنوان یک آرگومان در مژرهای دیگر استفاده شود.
هنگامی که مقادیر حاصل برای یک متغیر محاسبه شد مقدار آن تغییر نمی کند، حتی اگر متغیر به عبارت دیگری ارجاع داده شود.
سینتکس کلی یک متغیر بصورت فرمول زیر است:
<VAR <name> = <expression
برای مثال می خواهیم نرخ رشد سال به سال را محاسبه کنیم، اول می خواهیم بدون استفاده از متغیر، این رشد سال به سال را بدست بیاریم:
اولین مژر مجموع مقادیر فروش را محاسبه می کند:
Sum of SalesAmount = SUM(SalesTable[SalesAmount])
دومین مژر مقادیر فروش برای سال گذشته را محاسبه می کند:
SalesAmount PreviousYear = CALCULATE([Sum of SalesAmount],SAMEPERIODLASTYEAR
((Calendar[Date])
سپس مژر سوم را برای ترکیب دو مژر قبلی، جهت بدست آوردن نرخ رشد می نویسیم:
=:%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))
با استفاده از یک متغیر، می توانید همان نتیجه را دریافت کنید، اما به روشی خواناتر. و از آنجایی که نتیجه مژر در متغیر ذخیره می شود، عملکرد اندازه گیری می تواند به طور قابل توجهی بهبود یابد، زیرا لازم نیست هر بار که از آن استفاده می شود دوباره محاسبه گردد.