2015-04-24 58 views
1

我試圖使用RANKX公式排列一列的值,但是爲第二列的值過濾。在這個例子中,col2是一個以遞增值運行的簡單計數器。我試圖找到相對於col1的item_id的Rank值。通過在DAX中的第二列上過濾來排列一列的值

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 

因爲這將是相對COL1 COL2軍銜。

回答

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 
) 
+0

感謝羅裏!這兩個解決方案都很好,但第一個解決方案看起來效率更高,因此我採取了這種方式。優秀的鏈接建議。 – Kevin