基于 DAX 中度量的条件非重复计数
Conditional distinct count based on a measure in DAX
我正在尝试使用 DAX 执行此操作,但无法获得正确的非重复计数...
AccountID OrderDate Product SalesAmount DiscountAmount
1023 Nov-14 Product001 [=10=] .00
1045 Nov-14 Product001 .00 .00
1023 Nov-14 Product002 .00 [=10=]
1089 Nov-14 Product001 [=10=] .00
2045 Nov-14 Product001 .00 .00
1045 Nov-14 Product001 $(30.00) [=10=]
Q1. 如何计算总销售额为 0 美元的不同客户(答案是 2、1045、1089)- 看这里我想忽略 1023,因为总销售额该帐户的金额不是 0 美元。
我尝试创建一个度量:
TotalCustomers:=CALCULATE(DISTINCTCOUNT(Table1[AccountID]), 'Table1')
然后添加:
ZeroCustomers:=CALCULATE([TotalCustomers], FILTER('Table1', [Sum of SalesAmount]<>0))
但是帐户 1023 被计算在内,我得到 ZeroCutomers 的“3”
Q2. 如何为总销售额为 0 美元的客户添加 DiscountAmount(回答 15 美元)
这是 Q1 的扩展 - 一旦我弄清楚了 Q1 - 我可能会弄清楚这个。
我的另一个选择是创建一个新的 table 已经由 AccountID 汇总 - 但是我将无法使用切片器,因为我仍然想按产品和其他维度进行切片。
任何帮助将不胜感激!
谢谢!
我可能已经想通了:
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
)
)
如果您有更好的方法来完成同样的事情,请comment/reply。
希望这对其他人有帮助!
怎么样:
ZeroCustomers:=CALCULATE(DISTINCTCOUNT(Table1[AccountID]), ALL(Table1), [Sum of SalesAmount]<>0))
ZeroCustomersDiscount:=CALCULATE(SUM([DiscountAmount]), ALL(Table1), [Sum of SalesAmount]<>0))
我认为由于 DAX 处理过滤器和分组的方式,您之前的尝试没有奏效。我希望我能给你更详细的解释,但我自己还在学习。
我正在尝试使用 DAX 执行此操作,但无法获得正确的非重复计数...
AccountID OrderDate Product SalesAmount DiscountAmount
1023 Nov-14 Product001 [=10=] .00
1045 Nov-14 Product001 .00 .00
1023 Nov-14 Product002 .00 [=10=]
1089 Nov-14 Product001 [=10=] .00
2045 Nov-14 Product001 .00 .00
1045 Nov-14 Product001 $(30.00) [=10=]
Q1. 如何计算总销售额为 0 美元的不同客户(答案是 2、1045、1089)- 看这里我想忽略 1023,因为总销售额该帐户的金额不是 0 美元。
我尝试创建一个度量:
TotalCustomers:=CALCULATE(DISTINCTCOUNT(Table1[AccountID]), 'Table1')
然后添加:
ZeroCustomers:=CALCULATE([TotalCustomers], FILTER('Table1', [Sum of SalesAmount]<>0))
但是帐户 1023 被计算在内,我得到 ZeroCutomers 的“3”
Q2. 如何为总销售额为 0 美元的客户添加 DiscountAmount(回答 15 美元)
这是 Q1 的扩展 - 一旦我弄清楚了 Q1 - 我可能会弄清楚这个。
我的另一个选择是创建一个新的 table 已经由 AccountID 汇总 - 但是我将无法使用切片器,因为我仍然想按产品和其他维度进行切片。
任何帮助将不胜感激!
谢谢!
我可能已经想通了:
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
)
)
如果您有更好的方法来完成同样的事情,请comment/reply。 希望这对其他人有帮助!
怎么样:
ZeroCustomers:=CALCULATE(DISTINCTCOUNT(Table1[AccountID]), ALL(Table1), [Sum of SalesAmount]<>0))
ZeroCustomersDiscount:=CALCULATE(SUM([DiscountAmount]), ALL(Table1), [Sum of SalesAmount]<>0))
我认为由于 DAX 处理过滤器和分组的方式,您之前的尝试没有奏效。我希望我能给你更详细的解释,但我自己还在学习。