Power BI DAX: получить сумму столбца на основе другого - PullRequest
0 голосов
/ 07 ноября 2018

Допустим, у меня есть следующий стол:

Client    Sales
A         1000
A         100
A         10
B         1000
B         10
C         1

Я бы хотел добавить еще один столбец Names TotalClient в конце, чтобы новая таблица выглядела следующим образом:

Client    Sales   Total
A         1000    1110
A         100     1110
A         10      1110
B         1000    1010
B         10      1010
C         1       1

Возможно ли это в DAX или в редакторе запросов? Я пробовал много способов, но до сих пор не могу понять, как.

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

Спасибо

1 Ответ

0 голосов
/ 07 ноября 2018

Вам просто нужно знать, как использовать CALCULATE для настройки контекста фильтра.

Total = CALCULATE( SUM( Table1[Sales] ), ALLEXCEPT( Table1, Table1[Client] ) )

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


Если у вас есть только эти столбцы, вы можете сделать это

Total = CALCULATE( SUM( Table1[Sales] ), ALL( Table1[Sales] ) )

Это удаляет только контекст строки Sales и оставляет контекст строки Client. Это, вероятно, не будет работать должным образом, если у вас есть и другие столбцы, так как они все еще будут частью контекста строки.


Вы также можете удалить весь контекст фильтра с помощью ALL и затем явно добавить обратно в нужную фильтрацию:

Total =
CALCULATE(
    SUM( Table1[Sales] ),
    ALL( Table1 ),
    Table1[Client] = EARLIER( Table1[Client] )
)

или аналогично с SUMX вместо

Total =
SUMX(
    FILTER(
        Table1,
        Table1[Client] = EARLIER( Table1[Client] )
    ),
    Table1[Sales]
)

Множество способов снятия шкуры с кошки.

...