کاربرد پارامتر و تحلیل حساسیت در پاور بی آی
در این مطلب به بررسی کاربرد پارامتر و تحلیل حساسیت در پاور بی آی خواهیم پرداخت. قابلیت استفاده از پارامتر در زبان DAX و Power BI یکی از پرکاربرد ترین قابلیت های این نرم افزار به شمار می رود.
با استفاده از پارامتر می توانید، انتخاب کاربر را در محاسبات دخالت دهید. تحلیل سناریو که به آن اگر آنگاه (What-if) نیز گفته می شود به کاربر اجازه می دهد تا با تعیین مقادیر مختلف سناریوهای متفاوتی را پیش روی خود ترسیم کند.
کسب و کاری را پیش روی خود ترسیم کنید که می خواهد اثرات تغییر میزان قیمت دلار را بر برنامه فروش خود دخالت دهد. کاربر باید بتواند برنامه فروش خود را به صورت پویا تغییر دهد.
در این مطلب به معرفی پارامتر و نحوه کاربرد آن ها در Power BI می پردازیم.
پارامتر
برای بررسی کاربرد پارامتر و تحلیل حساسیت در پاور بی آی، باید در ابتدا بدانید، پارامتر مقدار عددی غیر ثابتی است که می تواند توسط کاربر مقدار دهی شده و تغییر کند. در واقع کاربر می توند یک محاسبه را به ازای مقادیر مختلف مشاهده کند و به همین دلیل است که به آن اگر آنگاه گفته می شود. اگر قیمت دلار 30000 تومان شود چه اتفاقی می افتد؟ اگر دلار 20000 تومان شود سناریوهای ما چه تغییر خواهند کرد؟ کاربر این اعداد را با انتخاب خود تغییر داده و محاسبات متناسب با آن باز محاسبه می شوند.
پارامتر در Power BI
قابلیت ایجاد پارامتر، موهبتی است که در اختیار کاربران این نرم افزار قرار گرفته است. ایجاد پارامتر در Power BI بسیار ساده است. برای ایجاد پارامتر در Power BI، کافی است مراحل زیر را دنبال کنید.
کافی است از تب Modeling گزینه New Parameter را انتخاب کنید.
اگر دقت کنید در بخش پایینی عبارت What if درج شده است که به همان تحلیل اگر-آنگاه اشاره دارد.
با کلیک بر روی New Parameter پنجره ای برای شما باز خواهد شد.
همان طور که در تصویر مشاهده می کنید، تعریف پارامتر دارای 7 بخش است. در بخش اول نام متغیر را تعریف کنید. در بخش دوم نوع داده را تعیین کنید. همان طور که مشاهده می کنید ما پارامتری به نام Dollar Change ایجاد کردیم و نوع آن را اعشاری قرار دادیم.
باید برای پارامتر مقدار حداقل و حداکثر را تعیین کنید. ما مقدار حداقل را بر روی صفر و حداکثر را بر روی 0.5 قرار دادیم. در بخش 5 یا همان Increment تعیین می کنیم گام های افزایشی این متغیر به چه میزان باشد. ما گام افزایشی را بر روی 0.05 قرار دادیم. مقدار پیش فرضی را نیز باید برای پارامتر تعریف کرد که آن را بر روی 0 تنظیم کردیم.
در واقع پارامتری با نام Dollar Change تعریف شده که از 0 تا 0.5 و با گام های افزایش 0.05 قابلیت تغییر دارد و مقدار پیش فرض آن در صورت انتخاب نشدن هیچ مقداری، صفر خواهد بود.
بخش هفتم از ما می خواهد تعیین کنیم آیا نیازی به ایجاد اسلایسر از این پارامتر داریم یا خیر؟ خب قطعا پاسخ ما نیز بله است. پس آن را در وضعیت فعال قرار می دهیم و در نهایت بر روی OK کلیک می کنیم.
همان طور که مشاهده می کنید، اسلایسری به صورت خودکار به صفحه اضافه می شود.
شما می توانید با حرکت دادن اهرم، عدد این پارامتر را تغییر دهید. اما واقعا این پارامتر چگونه ایجاد می شود؟
با ایجاد هر پارامتر جدولی به ازای آن ایجاد می شود. اگر بر روی جدول کلیک کنید، فرمول ایجاد آن را مشاهده می کنید.
در واقع همان طور که تصویر مشاهده می کنید، برای ایجاد این پارامتر از تابع GENERATESERIES استفاده شده است. این تابع 3 آرگومان دارد. آرگومان اول قدم شروع، آرگومان دوم گام نهایی و آرگومان سوم گام افزایشی است. پس می توان گفت برای ایجاد پارامتر خودتان نیز می توانید با استفاده از تابع GENERATESERIES آن را ایجاد کنید.
GENERATESERIES ( 0, 0.5, 0.1 )
سری هم به نمای جدولی آن بزنیم. همان طور که مشاهده می کنید جدولی است از آنچه تعریف کردیم. شروع از 0 تا 0.5 و با گام های افزایشی 0.05
المان دیگری که با تعریف پارامتر ایجاد می شود یک مژر است که به طور خودکار به جدول مذکور اضافه می شود.
همان طور که مشاهده می کنید برای ایجاد این مژر از تابع SELECTEDVALUE استفاده شده است. SELECTEDVALUE تابعی است که انتخاب کاربر را دریافت می کند. در واقع با استفاده از این تابع مقدار انتخابی کاربر از اسلایسر دریافت می شود. پس نتیجه می گیریم استفاده از گزینه New Parameter فقط برای راحتی کار کاربران ایجاد شده است وگرنه با استفاده از 2 تابع GENERATESERIES و SELECTEDVALUE می توان پارامتر جدیدی تعریف کرد.
SELECTEDVALUE ( ‘Discount'[Discount], 0 )
سناریوی اول
برای آشنایی هر چه بیشتر با این موضوع، به پیاده سازی چند سناریو در مورد کاربرد پارامتر و تحلیل حساسیت در پاور بی آی و با استفاده از زبان DAX خواهیم پرداخت.
فرض کنید می خواهیم پارامتری تعریف کنیم که کاربر درصد تخفیف را تعیین کند و میزان فروش را مشاهده نماید. پس یک پارامتر با نام Discount تعریف کنید و بازه را صفر تا 0.5 قرار دهید و گام افزایش را بر روی 0.1 قرار دهید.
مژری تعریف کنید که میزان فروش را محاسبه کند. با استفاده از تابع SUMX به راحتی جدول فروش را پیمایش نموده و برای هر سفارش تعداد را در قیمت ضرب و در نهایت عملیات جمع بر روی آن ها صورت می پذیرد. خروجی میزان فروش خواهد بود.
SUMX ( Sales, Sales[OrderQuantity] * Sales[UnitPrice] )
حال مژر دیگری تعریف می کنیم تا با استفاده از پارامتر اثر تخفیف را در محاسبات دخالت دهید. پس به ترتیب زیر مژر را تعریف کنید. تعریف این مژر مانند مژر قبل است با این تفاوت که میزان تخفیف نیز در آن لحاظ شده است.
SUMX (
Sales,
Sales[OrderQuantity] * Sales[UnitPrice] * ( 1 – Discount[Discount Value] )
)
همان طور که مشاهده می کنید در این مژر از Discount[Discount Value] استفاده کردیم. این عبارت حاوی مقداری است که کاربر انتخاب می نماید. کاربر با حرکت اهرم مقداری را به فرمول ارسال می نماید و بر اساس آن محاسبه انجام می شود.
همان طور که مشاهده می شود در حالتی که کاربر صفر را انتخاب کرده هر دو مژر عدد های یکسانی نمایش می دهند. کاربر اهرم را حرکت می دهد و عدد 0.1 را انتخاب می نماید.
همان طور که مشاهده می کنید عدد های مژر دوم، متناسب با انتخاب کاربر تغییر می کنند. کاربر متوجه می شود در صورتی که به میزان 10 درصد تخفیف دهد، فروش به چه میزانی تغییر خواهد کرد.
حال پارامتر دیگری تعریف کنیم. پارامتری به نام Demand که از 0 تا 0.5 و با گام های افزایشی 0.05 ایجاد می کنیم و مژر را به شکل زیر تغییر می دهیم.
SUMX (
Sales,
Sales[OrderQuantity] * Sales[UnitPrice] * ( 1 – Discount[Discount Value] ) * ( 1 + Demand[Demand Value] )
)
کاربر 2 پارامتر را تغییر می دهد و مشاهده می کند چه تغییراتی در فروش در این صورت حاصل می شد. مثلا اگر 10 درصد تخفیف دهیم و 15 درصد تقاضا افزایش یابد میزان فروش چه تغییری خواهد کرد؟
سناریوی دوم
سناریویی را فرض کنید که در آن هدف فروش مشخص شده و قصد داریم میزان فروش را با هدف فروش مقایسه کنیم. به طور مثال می خواهیم میزان فروش هر گروه کالا را با هدف تعیین شده برای آن مقایسه کنید.
مدیریت فروش میزان هدفی را با توجه به سال قبل در نظرگرفته و رسیدن به آن را برای کارکنان خود به عنوان هدف در نظر گرفته است. همان طور که در تصویر مشاهده می کنید میزان فروش با هدف فروش در تصویر مقایسه شده است.
کشوری را در نظر بگیرید که نوسانات ارزی بسیاری در آن جریان دارد. آیا ایجاد یک هدف ثابت برای کارکنان مناسب است؟ وقتی دلار از 12 هزار تومان به 20 هزار تومان رسید آیا تاثیری در رقم فروش نخواهد داشت؟
پس بهتر است هدف را با استفاده از پارامتر به صورت پویا تنظیم کرد. پس 2 پارامتر تغییرات نرخ دلار و تقاضا را تعریف کنید. تغییرات نرخ دلار از منفی 20 تا مثبت 50 خواهد بود، همچنین تغییرات تقاضا از منفی 50 تا مثبت 50 درصد متغیر خواهد بود. گام های افزایش را برای هر دو 0.1 در نظر می گیریم.
مژری به صورت زیر تعریف می کنیم. مژری که در آن اثر تغییرات دلار و تقاضا لحاظ شده است.
SUMX (
Target,
Target[SalesScenario] * ( 1 + DollarChange[DollarChange Value] ) * ( 1 + DemandChange[DemandChange Value] )
)
حال فرض کنید دلار 40 درصد افزایش و تقاضا 20 درصد کاهش می یابد. کاربر می تواند با تنظیم این پارامترها هدف را به صورت پویا تغییر دهد.
همان طور که مشاهده می نمایید میزان فروش، هدف ثابت و هدف پویا در جدول مشخص شده است. همان طور که مشاهده می کنید با توجه به نوسانات ارزی و همچنین کاهش تقاضای احتمالی هدف به چه میزان تغییر یافته است.
سناریوی سوم
برای معرفی کاربرد پارامتر و تحلیل حساسیت در پاور بی آی، مثال های زیادی وجود دارد. برای مثال فرض کنید کاربر می خواهد فروش 5 کالای برتر خود را بر اساس میزان فروش تعیین کند. برای این کار می تواند از تابع TOPN استفاده نماید. کافی است مژری به طریق زیر عمل کنید.
VAR X =
TOPN (
5,
VALUES ( DimProductSubcategory[EnglishProductSubcategoryName] ),
[SalesAmount], DESC
)
RETURN
CALCULATE ( [SalesAmount], X )
ابتدا متغیری تعریف کردیم و 5 کالای برتر را در آن مشخص کردیم. خروجی تابع TOPN در واقع یک جدول است. آرگومان اول تابع TOPN، تعداد آیتم های مورد نظر ماست که ما عدد 5 را انتخاب کردیم. آرگومان دوم مجموعه ای است که باید به این تابع معرفی شود، که در مثال ما نام کالاهاست.
آرگومان سوم سنجه ی مورد نظر برای انتخاب 5 آیتم است که ما میزان فروش را انتخاب کردم و در نهایت آرگومان آخر تعیین می کند 5 کالای از انتهای لیست یا از صدر لیست انتخاب شود که ما با تنظیم بر روی DESC در واقع، انتخاب از صدر مجموعه را برگزیدیم. در نهایت خروجی، 5 کالا با بیشترین میزان فروش خواهد بود.
حال این جدول 5 عضوی را به عنوان آرگومان فیلتر در تابع CALCULATE قرار دادیم. همان طور که در تصویر قابل مشاهده است، میزان کل فروش و 5 کالای برتر در 2 کارد به نمایش در آمده اند.
فرض کنید که کاربر از ما می خواهد آن را به صورت داینامیک در آوریم و انتخاب تعداد برتر را به عهده او بگذاریم. کافی است پارامتری تعریف کنیم. بازه پارامتر را از یک تا 7 با گام های افزایشی 1 واحد قرار می دهیم. دقت کنید که این بار نوع داده را بر روی عدد صحیح یا Whole Number قرار می دهیم. عدد پیش فرض را نیز بر روی 5 قرار می دهیم.
تعریف این پارامتر را در تصویر زیر مشاهده می کنید.
حال مقدار این پارامتر را در مژر خود می گنجانیم. مژری به صورت زیر ایجاد می کنیم.
همان طور که مشاهده می کنید کاربر می تواند عدد مورد نظر خود را تعیین کند. به طور مثال کاربر عدد 2 را انتخاب نموده است و فروش 2 کالای برتر را مشاهده می کند.
سناریوی چهارم
در ادامه بررسی کاربرد پارامتر و تحلیل حساسیت در پاور بی آی، سناریویی را تصور کنید که مدیریت می خواهد فروش سال جاری را با سال های قبل مقایسه کند. پس مژری به ترتیب زیر ایجاد کنید تا میزان رشد فروش به سال قبل را محاسبه کند.
VAR X =
MAX ( DATES[jyear] ) – 1
VAR Y =
CALCULATE ( [SalesAmount], DATES[jyear] = X )
RETURN
IF ( X > 0 && Y > 0, ( [SalesAmount] / Y ) – 1 )
همان طور که در تصویر مشاهده می کنید فروش هر سال با سال قبل مقایسه شده و درصد رشد محاسبه می شود.
حال می خواهیم کاربر انتخاب کند که فروش هر سال نسبت به چند سال پیش مقایسه شود. پارامتری تعریف کنید که بازه 1 تا 3 را با گام های افزایشی 1 ایجاد کند و مقدار پیش فرض را 1 قرار دهید و مژری به صورت زیر ایجاد کنید.
VAR X =
MAX ( DATES[jyear] ) – NYear[NYear Value] VAR Y =
CALCULATE ( [SalesAmount], DATES[jyear] = X )
RETURN
IF ( X > 0 && Y > 0, ( [SalesAmount] / Y ) – 1 )
حال کاربر می تواند تعیین کند، نرخ رشد را نسبت به چند سال پیش مشاهده نماید. به طور مثال کاربر عدد 2 را انتخاب می نماید. خروجی در تصویر زیر قابل مشاهده است.
همان طور که مشاهده می نمایید کاربر عدد 2 را انتخاب کرده و نرخ رشد فروش را نسبت به 2 سال قبل مشاهده می نماید و می تواند هر عدد دیگری در بازه مشخص شده را انتخاب نماید.
نتیجه گیری
پارامتر در Power BI ابزاری است که به یاری کاربر می شتابد و با دریافت مقادیری از کاربر، اثرات آن ها را در محاسبات، نمایش می دهد. قابلیتی که باعث می شود سناریو های تحلیل حساسیت و اگر-آنگاه در Power BI اجرایی شوند. این نوع گزارشات پویا چه از لحاظ جذابیت و چه از لحاظ کاربرد، داشبورد های شما را به سطوح بالاتری می رساند، از سوی دیگر دادن حق انتخاب به کاربر حس خوشایندی در وی ایجاد می کند.
در این مطلب با کاربرد پارامتر و تحلیل حساسیت در پاور بی آی آشنا شدیم. سناریوهای مختلفی را بررسی و پیاده سازی کردیم. اگر به این قسمت از مطلب رسیدید و سناریو هایی را با استفاده از پارامتر پیاده سازی کرده اید آن را با ما در میان بگذارید.
درباره حسین وثوقی
دانش آموخته مهندسی صنایع و مدیریت فناوری اطلاعات دانشگاه تهران، علاقه مند به تحلیل و ارائه راه حل برای مسائل و بهینه سازی راه حل ها هستم ...
نوشته های بیشتر از حسین وثوقیمطالب زیر را حتما بخوانید
-
داده های نمونه و تمرینی برای یادگیری پاور بی آی | Power BI
1.01k بازدید
-
تنظیم مقدار پیش فرض اسلایسر تاریخ در Power BI
521 بازدید
-
دومین مسابقه بزرگ Power BI ایران
903 بازدید
-
نمونه پروژه داده های اقتصادی با Power BI
1.12k بازدید
-
نمونه پروژه قند مواد غذایی با Power BI
1.13k بازدید
-
اولین مسابقه طراحی داشبورد با Power BI
2.03k بازدید
خیلی خوب و مفید بود ممنون.
عالی بود ممنون
عالی
خیلی عالی بود ممنون از توضیح با مثال کامل.
دست شما درد نکند خیلی مفید و خوب بود
عالی بووود.ممنونم