Подсчет оставшихся дней за финансовый месяц - PullRequest
0 голосов
/ 25 апреля 2020

Основываясь на этом посте, я создаю финансовый календарь:

Следующий Dax генерирует календарь DAX:

Calendar = 
VAR BaseCalendar =
    CALENDAR ( DATE ( 2016; 1; 1 ); DATE ( 2025; 12; 31 ) )
RETURN
    GENERATE (
        BaseCalendar;
        VAR BaseDate = [Date]
        VAR Year =
            YEAR ( BaseDate )
        VAR MonthNumber =
            MONTH ( BaseDate )
        VAR WeekNumber =
            WEEKNUM ( BaseDate )
        VAR FWeek =
            WEEKNUM ( BaseDate; 21 )
        RETURN
            ROW (
                "Day"; BaseDate;
                "Year"; Year;
                "Month Number"; MonthNumber;
                "Month"; FORMAT ( BaseDate; "mmmm" );
                "Year Month"; FORMAT ( BaseDate; "yyyy-mm" );
                "Day of Week"; FORMAT ( BaseDate; "dddd" );
                "Day of Week Short"; FORMAT ( BaseDate; "ddd" );
                "Week"; WeekNumber;
                "Year-Week"; Year & "-" & WeekNumber;
                "Fiscal Week"; FWeek;
                "Fiscal Month Short"; SWITCH (
                    TRUE ();
                    FWeek IN { 1; 2; 3; 4 }; "Jan";
                    FWeek IN { 5; 6; 7; 8 }; "Feb";
                    FWeek IN { 9; 10; 11; 12; 13 }; "Mar";
                    FWeek IN { 14; 15; 16; 17 }; "Apr";
                    FWeek IN { 18; 19; 20; 21 }; "May";
                    FWeek IN { 22; 23; 24; 25; 26 }; "Jun";
                    FWeek IN { 27; 28; 29; 30 }; "Jul";
                    FWeek IN { 31; 32; 33; 34 }; "Aug";
                    FWeek IN { 35; 36; 37; 38; 39 }; "Sep";
                    FWeek IN { 40; 41; 42; 43 }; "Oct";
                    FWeek IN { 44; 45; 46; 47 }; "Nov";
                    FWeek IN { 48; 49; 50; 51; 52; 53 }; "Dec"
            )
    )

Теперь мне нужен столбец, в котором отображаются оставшиеся дни для соответствующих финансовый месяц на каждую дату. Я хотел бы предложить мне первую колонку, которая накапливает рабочие дни в месяц. Затем мне нужен второй столбец, который вычитает это значение из общей суммы за соответствующий месяц.

Как бы вы добавили его в календарь в том же подходе, что и выше?

1 Ответ

1 голос
/ 29 апреля 2020

В зависимости от того, что вы определяете как рабочий день. Я предполагаю, что это пн-пт. Вам нужен новый столбец, добавленный к вашему DAX выше, чтобы вернуть 1 или 0

IsWeekDay = SWITCH(TRUE(), WEEKDAY(Calendar[Date], 2) <= 5, 1, 0)

Так что он вернет 1 для пн-пт, 0 для всего остального. Затем добавьте столбец для даты начала вашего месяца, в этом примере я использую календарный месяц:

MonthStart = STARTOFMONTH(Calendar[Date])

Для даты 04/04/2020 будет возвращена дата 01/04/ 2020

В следующем новом столбце следует суммировать рабочие дни, используя EARILER

Working Days = 
CALCULATE ( SUM('Calendar'[IsWeekDay]),
    FILTER (
        ALL ( 'Calendar' ),
        'Calendar'[Date] >= EARLIER ( 'Calendar'[Date] )
            &&  EARLIER('Calendar'[MonthStart]) = STARTOFMONTH('Calendar'[Date])
    )
)

Вам нужно будет настроить его для даты начала финансового месяца

Power BI Example Working Days

...