محاسبه نرخ رشد در Power BI
در این مطلب قصد داریم با نحوه محاسبه نرخ رشد در Power BI آشنا شویم. برای خیلی از کاربران پیش آمده که بخواهند نرخ رشد سنجه های خود را نسبت به سال های قبل محاسبه کنند. محاسبه نرخ رشد یکی از پرکاربرد ترین گزارشات مورد نیاز مدیریت است.
حتما می دانید که زبان DAX دارای توابع بسیار قدرتمندی به نام Time Intelligence است، که محاسبات بر مبنای زمان را بر عهده گرفته و کاربران را از پیاده سازی آن ها بی نیاز می کند، اما متاسفانه این توابع تنها برای تاریخ های میلادی کاربرد دارند و با تاریخ های شمسی بیگانه اند.
آیا این باعث می شود که قید گزارشات خود را بزنیم؟ قطعا خیر! تمام این توابع قدرتمند قابل پیاده سازی با زبان DAX هستند. کافی است توابع موجود در زبان DAX را شناخته و با استفاده از ویژگی هر یک به راحتی گزارش های مورد نظر خود را ایجاد کنیم. در واقع اگر رفتار توابع موجود در DAX را بشناسید تقریبا پیاده سازی هیچ گزارشی غیر ممکن نیست!
نرخ رشد
قبل از محاسبه نرخ رشد در Power BI باید بدانیم نرخ رشد چیست و نحوه محاسبه آن به چه صورت است؟ نرخ رشد در واقع درصد افزایش یا کاهش یک سنجه در بازه مورد نظر است.
به طور مثال فرض کنید شرکت ما، امسال 2 میلیارد تومان و پارسال 1 میلیارد تومان فروش داشته است. میزان رشد فروش از تقسیم فروش امسال به پارسال، منهای عدد یک، ضربدر 100 به دست می آید.
بنابرین با تقسیم عدد 2 میلیارد به عدد یک میلیارد و کسر عدد 1 در نهایت به عدد نهایی 1 می رسیم که ضرب این عدد در 100 نمایانگر افزایش فروش به میزان 100 درصد است.
محاسبه نرخ رشد در Power BI
محاسبه نرخ رشد در Power BI برای تاریخ های میلادی
محاسبه نرخ رشد در Power BI برای تاریخ های میلادی با استفاده از توابع Time Intelligence به راحتی خوردن یک لیوان آب است.
ابتدا با هم بررسی کنیم چگونه میزان فروش سال قبل قابل دستیابی است. برای این کار با استفاده از تابع SAMEPERIODLASTYEAR به راحتی به فروش مشابه سال قبل می رسیم. در واقع این تابع در هر سطح از سلسله مراتب زمان قادر به بازیابی میزان فروش در مدت زمان مشابه سال قبل است.
این محاسبه به طریق زیر قابل انجام است.
CALCULATE ( [SalesAmount], SAMEPERIODLASTYEAR ( ‘Date'[Date] ) )
نتیجه نهایی را در تصویر مشاهده می کنید.
همان طور که مشاهده می کنید در هر سطح فروش میزان فروش در همان سطح ولی در سال قبل را نمایش می دهد. به طور مثال به اعداد March 2007 و March 2008 دقت نمایید.
حال کافی است فرمول یاد شده را برای محاسبه نرخ رشد به کار بگیریم.
IF ( [LastYearSales] > 0, DIVIDE ( [SalesAmount], [LastYearSales] ) – 1 )
همان طور که در تصویر مشاهده می کنید میزان نرخ رشد فروش در هر سطح نسبت به همان سطح در سال گذشته نمایش داده می شود.
همان طور که مشاهده می کنید به طور مثال در March 2008 نسبت با March 2007 با 43 درصد افت فروش مواجه بوده ایم.
اگر بخواهیم فروش 2 سال قبل را به دست آوریم راه حل چیست؟ برای این کار می توانیم از تابع DATEADD استفاده نماییم.
CALCULATE ( [SalesAmount], DATEADD ( ‘Date'[Date], -2, YEAR ) )
برای محاسبه نرخ رشد نیز به طریق قبل عمل می کنیم.
محاسبه نرخ رشد در Power BI برای تاریخ های شمسی
اما اگر تاریخ شما شمسی باشد پیاده سازی آن خیلی دشوار تر است؟ نه خیلی! شاید به راحتی خوردن 2 لیوان آب!
برای این کار کافی است با استفاده از تابع CALCULATE در هر سطح که هستید فیلتر موجود بر تاریخ را با یک سال قبل جایگزین کنید. برای توضیحات بیشتر می توانید به ویدئوی انتهای مطلب مراجعه فرمایید.
VAR X =
MAX ( DATES[jyear] ) – 1
VAR Y =
CALCULATE ( [SalesAmount], DATES[jyear] = X )
RETURN
Y
حال نتیجه مانند تصویر قابل مشاهده است.
همان طور که مشاهده می کنید به طور مثال میزان فروش آذر 1396 در مقابل آذر 1397 به نمایش در آمده است. برای نرخ رشد کافی است مانند زیر عمل کنید.
VAR X =
MAX ( DATES[jyear] ) – 1
VAR Y =
CALCULATE ( [SalesAmount], DATES[jyear] = X )
RETURN
IF ( Y > 0, DIVIDE ( [SalesAmount], Y ) – 1 )
نرخ رشد در تصویر زیر قابل مشاهده است. به طور مثال دی ماه 97 نسبت به دی ماه 96 با 10 درصد افت در فروش مواجه شده است.
همچنین برای مشاهده نحوه محاسبه نرخ رشد در Power BI برای تاریخ های شمسی می توانید به تماشای ویدئوی زیر بنشینید. امیدوارم از مطالب گفته شده در این مطلب و ویدئو استفاده کرده و گزارشات جذاب تری ایجاد کنید.
اگر تازه به دنیای جذاب Power BI قدم گذاشته اید ویدئوی زیر را نیز از دست ندهید.
درباره حسین وثوقی
دانش آموخته مهندسی صنایع و مدیریت فناوری اطلاعات دانشگاه تهران، علاقه مند به تحلیل و ارائه راه حل برای مسائل و بهینه سازی راه حل ها هستم ...
نوشته های بیشتر از حسین وثوقی
یکماه بود دنبال این موضوع بودم دستتون درد نکنه استاد
سلام
خواهش می کنم
سلام
مطلب آموزشی بسیار مفید و کاربردی بود به طوری که تقریبا در اکثر داشبوردها لازمه و عالی تر نحوه حل این موضوع با روش ارائه شده توسط شما بود.
بسیار سپاسگزار از مطالب آموزشی مفیدی که در این سایت قرار می دهید.
موفق و پایدار باشید.
سلام
ممنون از لطف شما
سلام
خیلی ممنون از مطلب مفیدتون
برای اینکه این نرخ رشدو توی نمودار نشان بدیم، چه نموداری پیشنهاد میکنید بجای اینکه در جدول نشان دهیم؟ من توی نمودار میله ای نتونستم نشان بدم.
سلام
ممنون از شما به خاطر همراهیتون
مشکل شما رو که واقعیت نمی تونم اینجوری تشخیص بدم
ولی خودم نست کردم و در نمودار line chart نشون میده مقادیر رو
اصولا اگر در جدول جواب گرفتید و همون فیلد ها رو در نموداری مثل بار یا لاین استفاده کنید باید جواب بده
توضیحات بسیار خوب و عالی است… ای کاش مثالهایی رو که برای آموزش استفاده می کنید … برای دانلود در دسترس قرار دهید که همزمان با آموزش شما بتوانیم قدم به قدم پیش بریم…. ممنون
سلام … در متن همین آموزش قرار خواهد گرفت …
سلام
من وقتی year را مثلا 2019 قرار میدهم فقط روبیری همین فیلد 2019 محاسبه میکند نه برای همه سطر ها
بطفا کمک
سلام
اگر منظورتون فیلتر کردنه خب وقتی فیلتر کنید فقط 2019 رو نشون میده
هر چند که خیلی منظورتون رو متوجه نشدم
سلام و ممنون از پست بسیار مفید
نرخ تغییرات مامانه را چگونه میتوان محاسبه نمود؟
سلام
کافیه عدد ماه رو در تیبل قرار بدهید و مثل همین آموزش یک واحد کمش کنید
سلام ممنون از آموزش مفیدتون
من کل کد ها رو نوشتم اکی هست فقط وقتی فیلتر سال رو میذارم توی ماتریس دیگه ماه به ماه محاسبه نمیکنه راهنماییم کنید ممنون میشم
سلام قرار نیست ماه به ماه حساب کنه
نقطه به نقطه با سال قبل محاسبه می کنه
خیلی ممنون از اموزش خوبتون
این تاریخ شمسی واقعا اذیت کنندس . . .
ممنون از همراهی شما
تقریبا همه توابع time intelligence با زبان Dax قابل پیاده سازی هستند
با سلام واحترام
در این نرم افزار امکانش هست یک تولتیپ بزارم و روی هر ویژوالی که رفتم نرخ رشدش رو برام داخل تولتیپ حساب کنه که دیگه نیام برای دونه دونه پارامتر های یک مژر جدا بزنم فقط می خوام بدونم چنین قابلیتی می شه ازش انتظار داشت یا نه؟ با تشکر
سلام
در پاور بی آی که تولتیپ وجود داره
ولی خیلی متوجه صورت مساله نشدم
با تشکر از پاسخ
منظور من این هست که برای تک تک ستون جداولم نیام یک میژر جدا بزارم که نرخ رشد سال هاش مختلفش رو حساب کنم.
یک میژری استفاده کنم که برای کل ستون های جدولم جواب بده
🙏🏻💐
در آموزش ما برای تک تک سال ها نرخ رشد جدا حساب شده؟
یا منظورتون اینه که یه بار نرخ رشد رو حساب کنید و برای تمامی مژر هاتون کار کنه؟
“منظورتون اینه که یه بار نرخ رشد رو حساب کنید و برای تمامی مژر هاتون کار کنه؟”
منظورم همینه.
بله امکان پذیره
سعی می کنیم یه آموزش به زودی براش کار کنیم
با تشکر فراوان همین که ادم بدونه هم راهی هست ، با چند تا سرچ میشه پیداش کرد
🙏🏻💐
ممنون جناب وثوقی از آموزش عالیتون
خدا خیرتون بده ممنون از مطلب عالیتون
عاااااااااااااااااااااااااااااااااااااااااااااااااااااااااالی