Powerpivot Rankx有多个过滤器

时间:2018-02-09 15:29:35

标签: dax powerpivot

我希望在根据三个简单标准过滤后为[Site]分配一个行号:它们是否具有相同的[Year],[Identifier],以及[LeftOrJoined]列是&#的位置34; JOINED&#34 ;.

所以我想要下面的[Rank]专栏:

[Year] | [Identifier] | [LeftOrJoined] | [Site] | [Rank]
2012      1             LEFT             A         
2012      1             JOINED           B         1
2012      1             JOINED           C         2
2013      2             LEFT             A
2013      2             JOINED           B         1
2013      2             JOINED           C         2

我的公式是:

Rankx(
    filter(table,
        allexcept(table,
                [LeftOrJoined]="JOINED",[Year]=[Year],
                [Identifier]=[Identifier])),
                    [Site], ,1,dense)

但我收到错误:ALLEXCEPT函数需要参数' 2'的表引用表达式,但是使用了字符串或数字表达式。

我觉得我犯了一个基本错误。任何帮助非常感谢!

1 个答案:

答案 0 :(得分:1)

我不确定你的公式应该如何运作,但以下内容适用于我:

Rank = IF(Table[LeftOrJoined] <> "JOINED", BLANK(),
          RANKX(FILTER(Table, Table[LeftOrJoined] = "JOINED"),
                Table[Site], , 1, Dense))

如果LeftOrJoined不是&#34;加入&#34;,则返回空白,否则,将Site排在LeftOrJoined等于&#34;的行上JOINED&#34;