首页 文章

基于DAX中的度量的条件不同计数

提问于
浏览
0

我试图用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被计算在内,而ZeroCutomers的账号为“3”

Q2. 如何为总销售额为0美元的客户添加DiscountAmount(答案15美元)

这是对Q1的延伸 - 一旦我弄清楚了Q1 - 我可能会想到这一点 .

我的另一个选择是创建一个已经由AccountID汇总的新表 - 但是我不能使用切片器,因为我仍然想要切片,比如说产品和其他维度 .

任何帮助将不胜感激!

谢谢!

2 回答

  • 0

    我可能已经弄明白了:

    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
        )
    )
    

    如果你有更好的方法来完成同样的事情,请评论/回复 . 希望这有助于其他!

  • 0

    怎么样:

    ZeroCustomers:=CALCULATE(DISTINCTCOUNT(Table1[AccountID]), ALL(Table1), [Sum of SalesAmount]<>0))

    ZeroCustomersDiscount:=CALCULATE(SUM([DiscountAmount]), ALL(Table1), [Sum of SalesAmount]<>0))

    我认为由于DAX如何处理过滤器和分组,您之前的尝试无效 . 我希望我能给你一个更详细的解释,但我还是在学习自己 .

相关问题