我正在尝试编写DAX函数,以根据另一列中的条件查找一列中的最大值,但是此条件会根据行值动态更改。
使用此代码:
CALCULATE(MAX(RankOfArea[count]),filter(RankOfArea,RankOfArea[Line]="Pic"))
我得到这张表:
count | Line | Max
7220 | Pic | 7220
283 | Dis | 7220
3557 | Pic | 7220
317 | Met | 7220
500 | Met | 7220
我想要这个结果:
count | Line | Max
7220 | Pic | 7220
283 | Dis | 283
3557 | Pic | 7220
317 | Met | 500
500 | Met | 500
当然我必须删除=“Pic”,但不知道要替换它的是什么?非常感谢
答案 0 :(得分:1)
对于计算列,有几种方法可以执行此操作。
一种方法是删除所有行上下文并明确定义条件:
Max = CALCULATE(MAX(RankOfArea[Count]),
ALL(RankOfArea),
RankOfArea[Line] = EARLIER(RankOfArea[Line]))
(EARLIER
函数引用较早的行上下文。)
另一种方法是仅删除[Count]
行上下文:
Max = CALCULATE(MAX(RankOfArea[Count]), ALL(RankOfArea[Count])
在这种情况下,由于只有两列,这相当于删除除[Line]
值以外的所有行上下文:
Max = CALCULATE(MAX(RankOfArea[Count]), ALLEXCEPT(RankOfArea, RankOfArea[Line]))
如果您的表获得更多列,我建议使用后一种方法。