【问题标题】:Getting the total value in all the rows获取所有行的总值
【发布时间】:2021-11-19 10:19:46
【问题描述】:

我正在使用下面的计算来计算 accounts >= 200 的金额总和 我遇到的问题是,当我用 excel 可视化账户总额时,它给了我所有账户的总金额。 我该如何解决这个问题?`

Account total:= CALCULATE(SUM('Table'[amount]),'Table'[Type]= "ABC",'Table'[account] >=200)

【问题讨论】:

    标签: dax powerbi-desktop ssas-tabular ssas-2012


    【解决方案1】:

    @Jos 大部分是正确的,但也有一些小错误。

    这段代码

    CALCULATE (
        SUM ( 'Table'[amount] ),
        'Table'[Type] = "ABC",
        'Table'[account] >= 200
    )
    

    is equivalent to

    CALCULATE (
        SUM ( 'Table'[amount] ),
        FILTER ( ALL ( 'Table'[Type] ), 'Table'[Type] = "ABC" ),
        FILTER ( ALL ( 'Table'[account] ), 'Table'[account] >= 200 )
    )
    

    不是

    CALCULATE (
        SUM ( 'Table'[amount] ),
        FILTER ( ALL ( 'Table' ), 'Table'[Type] = "ABC" && 'Table'[account] >= 200 )
    )
    

    特别是,如果您在 'Table'[Category] 上设置了过滤器,这将保留在前者中,但不会保留在后者中,因为 ALL ( 'Table' ) 会删除所有列上的过滤器,而不仅仅是 [Type] 和 @ 987654329@.


    我提出了以下两个几乎等效的解决方案,它们的计算效率比过滤整个表的效率略高:

    CALCULATE (
        SUM ( 'Table'[amount] ),
        FILTER ( VALUES ( 'Table'[Type] ), 'Table'[Type] = "ABC" ),
        FILTER ( VALUES ( 'Table'[account] ), 'Table'[account] >= 200 )
    )
    

    CALCULATE (
        SUM ( 'Table'[amount] ),
        KEEPFILTERS ( 'Table'[Type] = "ABC" ),
        KEEPFILTERS ( 'Table'[account] >= 200 )
    )
    

    有关 KEEPFILTERS 的更多信息:https://www.sqlbi.com/articles/using-keepfilters-in-dax/

    【讨论】:

      【解决方案2】:

      你应该使用:

      CALCULATE (
          SUM ( 'Table'[amount] ),
          FILTER ( 'Table', 'Table'[Type] = "ABC" && 'Table'[account] >= 200 )
      )
      

      不同的是你现在的公式相当于:

      CALCULATE (
          SUM ( 'Table'[amount] ),
          FILTER ( ALL ( 'Table' ), 'Table'[Type] = "ABC" && 'Table'[account] >= 200 )
      )
      

      即与我给出的相同,除了它在过滤之前将(在您的情况下是隐式的)ALL 应用于表的关键区别。这个隐含的ALL 将覆盖您可能在外部应用的任何过滤器。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多