通过在DAX中的第二列上过滤来排名一列的值

时间:2015-04-24 20:46:24

标签: powerpivot dax

我正在尝试使用RANKX公式对一列的值进行排名,但过滤了第二列的值。在此示例中,col2是以递增值运行的简单计数器。我正在尝试找到相对于col1的item_id的Rank值。

col1    col2
1001    8001
1001    8002
1002    8003
1002    8004
1002    8005

我想找出一个可读的col3:

col1    col2    col3
1001    8001    1
1001    8002    2
1002    8003    1
1002    8004    2
1002    8005    3

因为那将是col2相对于col1的等级。

1 个答案:

答案 0 :(得分:1)

您根本不需要使用RANKX。请参阅精湛的http://www.daxpatterns.com/中的EARLIER部分。在表格中添加新的计算列:

=
COUNTROWS (
    FILTER (
        MyTable,
        [col2] <= EARLIER ( [col2] )
            && [col1] = EARLIER ( [col1] )
    )
)

如果您确实想使用RANKX,可以按如下方式调整公式:

=
RANKX (
    FILTER ( MyTable, [col1] >= EARLIER ( [col1] ) ),
    [Col2],
    ,
    1
)