Как разбить диапазон дат по месяцам в DAX Power BI? - PullRequest
0 голосов
/ 30 июня 2018

У меня есть две даты:

'2018-01-05' и '2019-01-05'

Как создать вычисляемую таблицу, чтобы разбить эти даты по месяцам. Должно выглядеть примерно так:

enter image description here

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

Вероятно, есть много способов сделать это, но вот один из способов, который объединяет несколько различных концепций:

Table = 
    VAR Starting = DATE(2018, 1, 5)
    VAR Ending = DATE(2019, 1, 5)
    VAR MonthTable =
        SUMMARIZE(
            ADDCOLUMNS(
                CALENDAR(Starting, Ending),
                "StartDate", EOMONTH([Date], 0) + 1),
            [StartDate],
            "EndDate", EOMONTH([StartDate], 0) + 1)
    RETURN UNION(
               ROW("StartDate", Starting, "EndDate", EOMONTH(Starting, 0) + 1),
               FILTER(MonthTable, [EndDate] < Ending && [StartDate] > Starting),
               ROW("StartDate", EOMONTH(Ending, -1) + 1, "EndDate", Ending)
                )

Обычно вы начинаете с функции CALENDAR, чтобы получить все дни, помечаете каждую дату соответствующим месяцем, а затем суммируете эту таблицу, чтобы просто вернуть одну строку для каждого месяца.

Поскольку первая и последняя строки немного нерегулярны, я добавил их в фильтрованную версию таблицы месяцев и добавил их к полученной таблице.

0 голосов
/ 30 июня 2018

Создать новую таблицу как

Table = CALENDAR( DATE(2018, 5, 1), DATE(2019, 1, 5) - 1)

Переименуйте автоматически сгенерированный столбец «Дата» в «Дата начала». Добавить новый столбец как

End Date = Start Date + 1
...