powerbi - 仅合计过滤的最大值
问题描述
我正在尝试使用 DAX 创建度量。我从这样的表中的数据开始。数据表命名为 1025。
我想要用它来确定每个 SUBLINE_NBR1 的 MAX BUDGET_AMOUNT1,然后将所有选定的 SUBLINE_NBR1 的 MAX 值相加。所以对于这个屏幕截图,你看到的应该总共产生 6,919。即 1,184 + 630 + 0 + 5,105 ... SUBLINE_NBR1 31-02 的 BUDGET_AMOUNT1 的最大值 + SUBLINE_NBR1 31-13 的 BUDGET_AMOUNT1 的最大值 + SUBLINE_NBR1 的 BUDGET_AMOUNT1 的最大值 32-00 + SUBLINE_NBR1 的 BUDGET_AMOUNT1 的最大值-03。
我可以确定每个 SUBLINE_NBR1 的 MAX 值。我用这个措施做到了:
Budget = CALCULATE(MAXX('1025','1025'[BUDGET_AMOUNT1]),DISTINCT('1025'[SUBLINE_NBR1]))
使用此度量,并且在表中未选择任何记录,我得到 5,105,这是我所期望的,因为 5,105 是所有 SUBLINE_NBR1 记录中 BUDGET_AMOUNT1 的最大值。如果我选择一条记录,我会得到它的值。例如,如果我选择一条记录为 630 作为 BUDGET_AMOUNT1,我会得到 630 作为预算度量结果,这也是预期的,因为 630 是它的 MAX BUDGET_AMOUNT1 值。如果我选择两个或更多记录,我会得到 BUDGET_AMOUNT1 MAX 值较大的那个。例如,如果我选择一个 630 和一个 1,184,我得到 1,184。再次,正如预期的那样。到现在为止还挺好。
现在,我不想返回更大的 BUDGET_AMOUNT1 MAX 值,而是想将所选 SUBLINE_NBR1 值的所有 MAX 值相加并返回该总和。例如,如果我选择表格的第四行和第七行,我想从度量 (1,184 + 630) 中得到 1,814。如果我选择表的前七行,我仍然想从度量中获得 1,814(仍然是 1,184 + 630 ... SUBLINE_NBR1 31-02 的 MAX + SUBLINE_NBR1 31-13 的 MAX)。但我似乎在上下文方面遇到了麻烦?我猜。
我已经尝试了很多东西,如下所示。(我不会全部列出。)但我离解决方案还很远。
我试过:
Budget =
var MaxVal = SUMX('1025',CALCULATE(MAXX('1025','1025'[BUDGET_AMOUNT1]),DISTINCT('1025'[SUBLINE_NBR1])))
但它添加了每一行......不仅仅是 MAX 值。它为所有记录返回 52,571,或任何选定记录的所有 BUDGET_AMOUNT1 值的总和。
我也试过:
Budget =
var MaxVal = CALCULATE(MAXX('1025','1025'[BUDGET_AMOUNT1]),DISTINCT('1025'[SUBLINE_NBR1]))
return SUMX('1025',MaxVal)
但我不确定它在做什么。它返回一个过高的数值(这 20 条记录为 102,100)。它似乎正在尝试添加所有选定的值......等等。跨越 SUBLINE_NBR1 组时,它没有正确添加它们。无论如何,这显然也不是我想要的。
可能有一个简单的解决方案,但是,是的......我很茫然,绝对可以使用你的帮助!
解决方案
Budget =
SUMX (
VALUES ( '1025'[SUBLINE_NBR1] ),
CALCULATE ( MAX ( '1025'[BUDGET_AMOUNT1] ) )
)
它是如何工作的:首先,VALUES 在你的上下文中生成一个唯一的 SUBLINE_NBR1 列表(如果你在 SUBLINE_NBR1 中有空格并且想忽略它们,你也可以使用 DISTINCT 代替 VALUES)。
其次,SUMX 遍历 SUBLINE_NBR1 的列表,计算它们每个的最大预算金额,然后将最大值相加。
推荐阅读
- r - R - 将一个值拆分为每一层内的数量
- javascript - xml2js 没有返回解析的 JSON
- c++ - std::string 参数的右值
- angular - 错误 TS2339:“导航器”类型上不存在属性“相机”
- c - Win32:不可能将 iocp 与标准输入句柄一起使用
- angular - Angular - NgForm - FormControl 未定义
- mailjet - 我可以为 mj-carousel 使用 for 循环吗
- javascript - 未捕获的类型错误:无法读取未定义的 bitcoinjs-lib 的属性“原型”
- python - 如何定义橙色空间
- vue.js - vue - 如何将我的道具值添加为模板中的类值?