【问题标题】:Rank Values of one column by filtering on 2nd column in DAX通过过滤 DAX 中的第二列对一列的值进行排名
【发布时间】:2015-04-24 20:46:23
【问题描述】:

我正在尝试使用 RANKX 公式对一列的值进行排名,但对第二列的值进行过滤。在这个例子中,col2 是一个简单的以递增值运行的计数器。我正在尝试查找 item_id 相对于 col1 的 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 的等级。

【问题讨论】:

    标签: powerpivot dax


    【解决方案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
    )
    

    【讨论】:

    • 谢谢罗里!两种解决方案都运行得很好,但第一个看起来在资源方面更有效率,所以我同意了。对链接也有很好的推荐。
    猜你喜欢
    • 2022-01-17
    • 2012-04-02
    • 1970-01-01
    • 1970-01-01
    • 2017-02-24
    • 1970-01-01
    • 2021-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多