Условное различное количество, основанное на показателе в DAX
Я пытаюсь сделать это с DAX и не могу получить правильное четкое количество...
AccountID OrderDate Product SalesAmount DiscountAmount
1023 Nov-14 Product001 $0 $5.00
1045 Nov-14 Product001 $30.00 $10.00
1023 Nov-14 Product002 $1.00 $0
1089 Nov-14 Product001 $0 $5.00
2045 Nov-14 Product001 $50.00 $25.00
1045 Nov-14 Product001 $(30.00) $0
Q1. Как подсчитать отдельных клиентов, у которых общая сумма продаж составила 0 долларов США (ответ - 2, 1045, 1089) - см. Здесь, я хочу игнорировать 1023, поскольку общая сумма продаж для этой учетной записи не равна 0 долларов США.
Я пытался создать меру:
TotalCustomers:=CALCULATE(DISTINCTCOUNT(Table1[AccountID]), 'Table1')
А потом добавил это:
ZeroCustomers:=CALCULATE([TotalCustomers], FILTER('Table1', [Sum of SalesAmount]<>0))
Но счет 1023 засчитывается, и я получаю "3" для ZeroCutomers
Q2. Как добавить DiscountAmount для клиентов, чья общая сумма продаж составила 0 долларов США (ответ 15 долларов США)
Это расширение для Q1 - как только я выясню Q1 - я, вероятно, смогу понять это.
Другой мой выбор - создать новую таблицу, уже суммированную по AccountID - но тогда я не смогу использовать слайсер, так как все еще хочу нарезать, скажем, Product и другие измерения.
Любая помощь будет оценена!
Спасибо!
2 ответа
Возможно, я понял это:
Q1
ZeroCustomers:=COUNTROWS (
FILTER (
ADDCOLUMNS (
VALUES ( Table1[AccountID] ),
"TotalSalesAmount", CALCULATE ( SUM ( [SalesAmount] ) )
),
[TotalSalesAmount] = 0
)
)
Q2
ZeroCustomerDiscount:=CALCULATE(SUM([DiscountAmount]),
FILTER (
ADDCOLUMNS (
VALUES ( Table1[AccountID] ),
"TotalSalesAmount", CALCULATE ( SUM ( [SalesAmount] ) )
),
[TotalSalesAmount] = 0
)
)
Пожалуйста, прокомментируйте / ответьте, если у вас есть лучший способ сделать то же самое. Надеюсь, что это помогает другим!
Как насчет:
ZeroCustomers:=CALCULATE(DISTINCTCOUNT(Table1[AccountID]), ALL(Table1), [Sum of SalesAmount]<>0))
ZeroCustomersDiscount:=CALCULATE(SUM([DiscountAmount]), ALL(Table1), [Sum of SalesAmount]<>0))
Я думаю, что ваша предыдущая попытка не сработала из-за того, как DAX обрабатывает фильтры и группировки. Хотел бы я дать вам более подробное объяснение, но я все еще учусь сам.