DAX Aging band для подведения итогов - PullRequest
0 голосов
/ 08 января 2020

У меня есть транзакционная таблица, которую я использую для построения промежуточного итога. Вот некоторые примеры данных:

User    month       sales
UserA   1/1/2019    1
UserB   1/1/2019    3
UserC   1/1/2019    2
UserA   2/1/2019    1
UserB   2/1/2019    3
UserC   2/1/2019    2
UserA   3/1/2019    1
UserB   3/1/2019    3
UserC   3/1/2019    2

Вот код DAX, который я использую для выполнения sh this:

AllSales =
CALCULATE (
    SUM ( 'table'[Sales] ),
    FILTER ( ALL ( 'table'[date] ), 'table'[date] <= MAX ( 'table'[date] ) )
)

, и результат такой:

Total   6   12  18

Отлично! Следующая вещь, в которой я нуждаюсь, состоит в том, чтобы построить стареющие группы для бегущей суммы. Мой желаемый результат выглядит следующим образом:

        1 month 2 month 3 month Other   Total
UserA   1       1       1               3
UserB   3       3       3               9
UserC   2       2       2               6
Total   6       12      18              18

Я пытался сделать это с помощью вспомогательной меры и вычисляемого столбца. Во-первых, мера:

MaxMonth = max('table'[month])

и столбец:

Aging =
if( datediff('table'[Month], 'table'[MaxMonth],month) =< 1, "1 month",
if( datediff('table'[Month], 'table'[MaxMonth],month) =< 2, "2 month",
if( datediff('table'[Month], 'table'[MaxMonth],month) =< 3, "3 month",
if( datediff('table'[Month], 'table'[MaxMonth],month) =< 4, "4 month",
"other"))))

Это имеет смысл в моей голове, но я получаю сообщение об ошибке «Одно значение для столбца« Месяц »в Таблица 'таблица' не может быть определена. Это может произойти, если формула меры ссылается на столбец, содержащий много значений, без указания агрегации, такой как min, max, count или sum, для получения одного результата. "

Я не уверен, где взять это отсюда, потому что мне нужно, чтобы все было рассчитано с первоначальной даты. Будем благодарны за любую помощь, которую вы можете оказать!

...