2013-10-18 38 views
2

我想從值列表中獲得排名,但我想要排名基於列表的唯一版本。我想要做的是一樣的東西獲取Excel範圍的唯一版本的排名

= RANK.EQ(值,UNIQUE(list_of_values))

我不能找出如何在公式中得到的唯一值。我在how to output unique values to a new row上看到了答案,但是我不需要打印出值,所以我希望有一個更簡單的解決方案。

作爲一個例子,與像

|Week Ending|
|10/10/13|
|10/10/13|
|10/10/13|
|10/17/13|

我得到的最接近的一個列表RANK.EQ(值,list_of_values,1),這給了我

|Week Ending|Week Number|
|10/10/13| 1|
|10/10/13| 1|
|10/10/13| 1|
|10/17/13| 4|

什麼我在找的是

|Week Ending|Week Number|
|10/10/13| 1|
|10/10/13| 1|
|10/10/13| 1|
|10/17/13| 2|

編輯:

我原本沒有澄清這一點,但我的價值觀並不一定按排序順序。

+0

http://www.mrexcel.com/td0067.html可能會引起您的興趣。 – pnuts

+1

是排序順序中的第一列嗎?但是,你的第二個專欄名稱似乎有點誤導..?我不確定'週數'如何成爲排名?如果他們實際上是星期數,那麼排名不會被需要(?)。 –

+0

當我問這個問題時,我不知道WeekNum,那是我的解決方案。我的用例是將週數(如活動的第1周,第2周等)分配給事件。但要回答你的問題,第一列不一定按排序順序。 – wils484

回答

2

對於這個特定的例子WEEKNUM()可以用於創建日期的有效排序:

=WEEKNUM(value, list_of_values, 1) + 1 - WEEKNUM(MIN(list_of_values)) 

這是因爲無論是發生在每週的同一天的所有日期或日期在同一周發生的被認爲具有相同的等級。

「Week」可以連接到這些值以創建「Week 1」,「Week 2」等的輸出。

1

你可以用非常簡單的公式做到這一點,使用兩列:

假設你的日期是在A1:A10

B1包含此公式:=RANK(A1,$A$1:$A$10)

複製公式到B10

C1包含此公式:=B1

C2包含此公式:=IF(B2=B1,C1,C1+1)

複製公式到C10

您還可以使用RANK.EQ功能,而不是RANK

+0

這是一個很好的解決方案,如果值已排序,我應該指定,但我的值不一定按排序順序。 – wils484

0

Via Andy G,= WEEKNUM()解決了我的問題。更一般地,

= WEEKNUM(值,list_of_values,1)+ 1 - WEEKNUM(MIN(list_of_values))

給出了可以用於製造 「第1周,第2周」 號碼等的標籤。