我正在尝试使用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 32-00的BUDGET_AMOUNT1的最大值+ SUBLINE的BUDGET_AMOUN11的最大值-03。
我能够确定每个SUBLINE_NBR1的最大值。我是通过这种方式做到的:
Budget = CALCULATE(MAXX('1025','1025'[BUDGET_AMOUNT1]),DISTINCT('1025'[SUBLINE_NBR1]))
使用此度量,并且未在表中选择任何记录,我得到5105,这是我期望的,因为5105是所有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,814(1,184 + 630)。如果选择表的前七行,我仍然希望从度量中获得1,814(仍然为1,184 + 630 ... SUBLINE_NBR1 31-02的最大值+ SUBLINE_NBR1 31-13的最大值)。但是我似乎在上下文方面遇到麻烦了?我想。
我尝试了很多事情,如下所示。 (我不会全部列出它们。)但是我离解决方案还很遥远。
我尝试过:
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个组时,它们添加不正确。无论如何,这显然也不是我想要的。
可能有一个简单的解决方案,但是,是的……我很茫然,可以肯定会使用您的帮助!
答案 0 :(得分:1)
Budget =
SUMX (
VALUES ( '1025'[SUBLINE_NBR1] ),
CALCULATE ( MAX ( '1025'[BUDGET_AMOUNT1] ) )
)
工作原理: 首先,VALUES在您的上下文中生成一个唯一的SUBLINE_NBR1列表(如果SUBLINE_NBR1中有空格并希望忽略它们,则也可以使用DISTINCT代替VALUES)。
第二,SUMX在SUBLINE_NBR1的列表上进行迭代,为它们中的每一个计算“最大预算额”,然后将这些最大值相加。
答案 1 :(得分:0)