【问题标题】:DAX Measure to calculate Sum and Count from the created MeasureDAX Measure 从创建的 Measure 中计算 Sum 和 Count
【发布时间】:2021-03-02 13:26:59
【问题描述】:

我有这样的数据,

App_Num Days    Price
A1      10      100
A1      11      150
A2      11      200
A3      12      250
A3      12      300
A4      20      350
A4      21      400

现在,用户可以使用一个参数来调整值并查看。 总值(最小值和最大值范围) 例如,如果用户选择 0-280-,则预计会列出 A1(100 + 150 = 250 小于 280)和 A2(200 小于 280)。

我使用了这样的 DAX,并建立了这样的表,

Apps_in_scope = 

Var min_amount = Min('Total Value'[Total Value])

Var max_amount = Max('Total Value'[Total Value])

var required_app_num = SELECTEDVALUE(Table1[App_Num])

Var required_amount = CALCULATE(sum(Table1[Price]),FILTER(Table1,Table1[App_Num] = required_app_num)) 

var in_scope = if(And(required_amount <= max_amount, required_amount >= min_amount),1,0)

return in_scope

我能够制作出这样的视觉效果,

App_Num Apps_in_scope
A1         1
A2         1
A3         0 
A4         0

现在,我想创建 2 个度量

  1. 它将列出范围内的事务总数 (A1 为 2,A2 为 1,输出到卡上的 3)。
  2. 它会给我卡片上 A1 和 A2 的总和(卡片上的 100+150+200 = 450)。

我该如何处理。请帮我解决这个问题。

【问题讨论】:

    标签: powerbi dax powerbi-desktop


    【解决方案1】:

    您几乎可以像 previous question 一样处理这个问题。

    使用更优化的方法:

    CountInScope =
    VAR apps =
        ADDCOLUMNS (
            SUMMARIZE (
                Table1,
                Table1[App_Num],
                "@Rows", COUNT ( Table1[Price] )
            ),
            "@InScope", [Apps_in_scope]
        )
    RETURN
        SUMX ( FILTER ( apps, [@InScpoe] = 1 ), [@Rows] )
    

    SumInScope =
    VAR apps =
        ADDCOLUMNS (
            SUMMARIZE (
                Table1,
                Table1[App_Num],
                "@Price", SUM ( Table1[Price] )
            ),
            "@InScope", [Apps_in_scope]
        )
    RETURN
        SUMX ( FILTER ( apps, [@InScpoe] = 1 ), [@Price] )
    

    【讨论】:

      猜你喜欢
      • 2021-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-18
      • 1970-01-01
      • 2019-05-07
      • 2012-09-25
      • 1970-01-01
      相关资源
      最近更新 更多