مقایسه دوره های زمانی مختلف با دکس در نرم افزار Power Bi

این الگو یک تکنیک مفید برای مقایسه ارزش اندازه گیری در دوره های زمانی مختلف است. به عنوان مثال ، می توانیم فروش ماه گذشته را با یک دوره تعریف شده توسط کاربر مقایسه کنیم. این دو دوره زمانی ممکن است تعداد روزهای متفاوتی داشته باشند ، مانند مقایسه یک ماه با یک سال کامل. هنگامی که مدت زمان هر دو دوره زمانی متفاوت است ، باید مقادیر را برای مقایسه منصفانه تنظیم کنیم.

شرح الگو

کاربر دو دوره زمانی مختلف (فعلی ، مقایسه ای) را از طریق اسلایسر ها انتخاب می کند. گزارش شکل ۱ میزان فروش در دوره جاری و در یک دوره مقایسه را نشان می دهد. فروش دوره مقایسه باید با استفاده از تعداد روزهای هر دوره به عنوان فاکتور تخصیص تنظیم شود.

 

به منظور امکان انتخاب دو دوره زمانی مختلف ، مدل باید دارای دو جدول تاریخ باشد: یکی برای انتخاب دوره جاری ، یکی برای انتخاب دوره مقایسه. همانطور که در شکل ۲ نشان داده شده است ، Comparison Date با یک رابطه inactive لینک شده است. این کار مدیریت روابط با سایر جداول FACT را ساده می کند.

 

هنگامی که یک مژر یک عبارت فیلتر شده توسط جدول Comparison Date  را محاسبه می کند ، مژر رابطه بین Comparison Date and Date را فعال می کند. همچنین یک REMOVEFILTERS در جدول Date انجام می دهد تا از فیلتر مقایسه در Date  در Sales استفاده کند. با استفاده از این مدل ، هر اندازه گیری موجود می تواند مقدار را در دوره جاری یا مقایسه ای با یک تغییر ساده در رابطه فعال محاسبه کند.

در مژر زیر مقایسه مقدار فروش تعریف شده است :

Comparison Sales Amount :=
VAR ComparisonPeriod =
    CALCULATETABLE (
        VALUES ( 'Date'[Date] ),
        REMOVEFILTERS ( 'Date' ),
        USERELATIONSHIP ( 'Date'[Date], 'Comparison Date'[Comparison Date] )
    )
VAR Result =
    CALCULATE (
        [Sales Amount],
        ComparisonPeriod
    )
RETURN
    Result

 

به منظور تعدیل مقدار مقایسه فروش ، ما به یک روش تخصیص نیاز داریم. در مثال ما از تعداد روزهای دو دوره به عنوان عامل تخصیص استفاده می کنیم. منطق بیزینس ممکن است حکم کند که فقط از روزهای کاری برای تعدیل استفاده شود. به عبارت دیگر ، منطق تعدیل متفاوتی امکان پذیر است و به الزامات بیزینس بستگی دارد.

در این مثال از منطق تعدیل ، اگر دوره مقایسه روزهای بیشتری نسبت به دوره زمانی فعلی داشته باشد ، نتیجه مقایسه مبلغ فروش را با توجه به نسبت تعداد روزها در دو دوره کاهش می دهیم:

Adjusted Comp. Sales Amount :=
VAR CurrentPeriod =
    VALUES ( 'Date'[Date] )
VAR ComparisonPeriod =
    CALCULATETABLE (
        VALUES ( 'Date'[Date] ),
        REMOVEFILTERS ( 'Date' ),
        USERELATIONSHIP ( 'Date'[Date], 'Comparison Date'[Comparison Date] )
    )
VAR ComparisonSales =
    CALCULATE ( [Sales Amount], ComparisonPeriod )
VAR DaysInCurrentPeriod =
    COUNTROWS ( CurrentPeriod )
VAR DaysInComparisonPeriod =
    COUNTROWS ( ComparisonPeriod )
VAR DailyComparisonSales =
    DIVIDE (
        ComparisonSales,
        DaysInComparisonPeriod
    )
VAR Result =
    DaysInCurrentPeriod * DailyComparisonSales
RETURN
    Result

 

0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *