تعریف و استفاده از متغیرها در DAX

در این بخش به تعریف و استفاده از متغیرها در  DAX می‌پردازیم؛ و تغییرات فروش را بین سال‌های مختلف محاسبه می‌کنیم. و همچنین با به‌دست آوردن مجموع فروش در هرسال، درصد تغییرات بین هرسال را مقایسه می‌کنیم.

 داده‌های ما  شبیه به جدول زیر می‌باشند:

YearMonthSales
۲۰۱۳۱۲۰
۲۰۱۳۲۲۵
۲۰۱۴۱۲۲
۲۰۱۴۲۲۳
۲۰۱۵۱۲۱
۲۰۱۵۲۳۱

  با استفاده از متغیرها می‌توان برخی مدل‌سازی داده‌ای خارق‌العاده را برای دریافت نتایج موردنظر اعمال کرد. در شکل زیر ما نتایج measure ها را در نمودارها می‌بینیم:

حال بیایید شروع کنیم:

Power BI را بازکنید و در نوار Home، بر روی Get data کلیک کرده و Blank Query را انتخاب کنید. Connect را بزنید تا پنجره Query Editor باز شود. در نوار View، بر روی دکمه Advanced Editor کلیک کرده و کد زیر را در پنجره ویرایشگر پیست کنید؛ و سپس با فشردن Done فرآیند بارگذاری داده را کامل کنید.

Let

Source = Excel.Workbook(Web.Contents(“https://powerbi.tips/wp-

content/uploads/2017/05/Clothing-Sales.xlsx”), null, true),

ClothingSales_Table = Source{[Item=”ClothingSales”,Kind=”Table”]}[Data],

#”Changed Type” = Table.TransformColumnTypes(ClothingSales_Table,{{“Date”, type

date}, {“Category”, type text}, {“Sales”, Int64.Type}}), #”Inserted Year” = Table.AddColumn(#”Changed Type”, “Year”, each

Date.Year([Date]), type number)

in

 #”Inserted Year”

داده‌های بارگذاری شده شما باید به شکل زیر باشد:

نام کوئری را به ClothingSales تغییر دهید و سپس Close&Apply را بزنید تا داده درون data model بارگذاری شود. حال ابتدا بر روی ستون Date موجود در قاب Fields و سپس بر روی Modeling کلیک کنید. در بخش Formatting فرمت آن را به Date Time تغییر دهید و فرمت M/d/yyyy را انتخاب کنید. مراحل بالا را برای ستون‌های زیر نیز انجام دهید.

برای فرمت ستون Sales، ابتدا Currency  و سپس گزینه (English (United Statesرا بزنید.

برای فرمت year نیز Whole number را انتخاب کنید.

بعد از تغییر فرمت داده‌های مذکور حال شرایط فراهم است تا یک نمودار میله‌ای ساده بسازیم. تصویر زیر مربوط به تنظیمات نمودار میله‌ای می‌باشد.

برای شروع ما می‌خواهیم به محاسبه مجموع فروش‌ها بپردازیم. در تب Home بر روی New measure کلیک کنید و کد زیر را در آن بنویسید.

Total Selected Sales = SUM(ClothingSales[Sales])

از قسمت visualization یک Card را انتخاب کنید و سپس measure را در قسمت Fields قرار دهید.

روی Card کلیک کنید و سپس وارد قسمت Paint Roller شوید و تنظیمات Display unite را در Data label از حالت Auto به None تبدیل کنید تا مانند تصویر زیر عدد به‌صورت کامل نمایش داده شود.

حال می‌خواهیم باکمی تغییر در Card فرمت دلار را نیز نشان دهیم.

بر روی نوار Modeling کلیک کنید و فرمت آن را به Currency تغییر دهید سپس (English (United States$ را انتخاب کنید. فرمت نهایی Card باید به‌صورت تصویر زیر باشد.

حال ما می‌خواهیم گام‌های قبلی را برای measure های جدیدمان تکرار کنیم.

۱-measure را بسازید.

۲-فرمت Card را تغییر دهید.

۳-فرمت measure را تغییر دهید.

Measure بعدی مجموع کل فروش سال گذشته را محاسبه می‌کند.

Prior Year Sales =

VAR

selectedYear = if( HASONEVALUE(ClothingSales[Year]),

        FIRSTNONBLANK(ClothingSales[Year],ClothingSales[Year]),

        BLANK() )-1

Return

       CALCULATE(

                   SUM(ClothingSales[Sales]),

                   ALL(ClothingSales),

                   ClothingSales[Year] = selectedYear)

حال توضیح خواهیم داد که در این measure چه اتفاقی می‌افتد.

 اول، ما با استفاده از VAR یک متغیر میسازیم و نام آن را SelectedYear می‌گذاریم که اگر چند سال باهم انتخاب شوند، این متغیر مقدار خالی را برمی‌گرداند که این شرط با استفاده از عبارت if و فرمول ()HASONEVALUE انجام می‌شود.

و Return این اجازه را به ما می‌دهد تا مقداری را بتوانیم به‌عنوان خروجی داشته باشیم. در این مثال ما از ()CALCULATE برای محاسبه مجموع فروش‌ها استفاده می‌کنیم و در این فرمول از ۲ فیلتر استفاده می‌کنیم.

  اولین فیلتر تمام جدول را با استفاده از ()All انتخاب می‌کند و سپس فیلتر را از متغیر پیشنهادی قبلی با نام SelectedYear اعمال می‌کنیم.

 

همان مراحل قالب‌بندی ۲و ۳ را که قبلاً ذکر شد اعمال کنید. اکنون ما می‌توانیم یکی از سال‌ها را در نمودار میله‌ای انتخاب کنیم. انجام این کار باعث می‌شود تا دو measure ایجاد شود که یکی برای فروش کل سال انتخاب‌شده و دیگری برای سال قبل از فروش هست.

ما سال ۲۰۱۴ را انتخاب کردیم که فروش آن ۱۱۰۰۰ دلار است. ماوس را بر روی بخشی از نمودار که مربوط به سال ۲۰۱۳ است قرار دهید همان‌طور که می‌بینید نوک ابزار به‌طورکلی فروش ۱۰۰۰۰ دلار را نشان می‌دهد.

حال ما می‌خواهیم درصد تغییرات را محاسبه کنیم، برای این کار مانند زیر عمل کرده و یک measure می‌سازیم:

Percent Change = DIVIDE([Total Selected Sales],[Prior Year Sales],1)-1

روی نوار Modeling کلیک کنید و فرمت measure را به درصد تغییر دهید. حال یک measure نهایی مانند آنچه در زیر می‌بینید برای نشان دادن میزان تغییرات تعریف می‌کنیم:

Prior Year Delta = [Total Selected Sales] – if( [Prior Year Sales] = BLANK(),
[Total Selected Sales],[Prior Year Sales])

این measure، تغییرات کل را در میان دو سال انتخاب‌شده محاسبه می‌کند. دستور if در انتهای معادله، حالتی را بررسی می‌کند که اگر شما سال خاصی را انتخاب نکرده باشید سال پیشین را بطور پیش‌فرض صفر درنظر بگیرد.

مبینا چزانی

دانش آموخته دانشگاه تهران، علاقه‌مند به کار در حوزه BI و شیفته یادگیری مطالب جدید هستم. و معتقدم هیچ گاه برای آموختن دیر نیست.

مطالب مرتبط

دیدگاه بگذارید

avatar
  عضویت  
به دوستتان خبر دهید.