逐行过滤PowerBI

时间:2018-03-12 16:45:30

标签: powerbi dax

我正在尝试编写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”,但不知道要替换它的是什么?非常感谢

1 个答案:

答案 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]))

如果您的表获得更多列,我建议使用后一种方法。