通过过滤 DAX 中的第二列对一列的值进行排名
Rank Values of one column by filtering on 2nd column in DAX
我正在尝试使用 RANKX 公式对一列的值进行排名,但过滤第二列的值。在这个例子中,col2 是一个简单的计数器 运行 的递增值。我正在尝试查找 item_id 相对于 col1.
的排名值
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 的排名。
您根本不需要使用 RANKX。请参阅精湛 http://www.daxpatterns.com/ 中有关 EARLIER 的部分。在 table:
中添加一个新的计算列
=
COUNTROWS (
FILTER (
MyTable,
[col2] <= EARLIER ( [col2] )
&& [col1] = EARLIER ( [col1] )
)
)
如果您确实想使用 RANKX,您可以按如下方式调整公式:
=
RANKX (
FILTER ( MyTable, [col1] >= EARLIER ( [col1] ) ),
[Col2],
,
1
)
我正在尝试使用 RANKX 公式对一列的值进行排名,但过滤第二列的值。在这个例子中,col2 是一个简单的计数器 运行 的递增值。我正在尝试查找 item_id 相对于 col1.
的排名值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 的排名。
您根本不需要使用 RANKX。请参阅精湛 http://www.daxpatterns.com/ 中有关 EARLIER 的部分。在 table:
中添加一个新的计算列=
COUNTROWS (
FILTER (
MyTable,
[col2] <= EARLIER ( [col2] )
&& [col1] = EARLIER ( [col1] )
)
)
如果您确实想使用 RANKX,您可以按如下方式调整公式:
=
RANKX (
FILTER ( MyTable, [col1] >= EARLIER ( [col1] ) ),
[Col2],
,
1
)