2013-11-01 32 views
3

我有一個電子表格,我將它設置爲從1-9級開始排名第9的商店。例如:在Excel中創建基於範圍的排名公式

24-#5 
-1-#8 
18-#6 
40-#4 
81-#1 
65-#3 
16-#7 
73-#2 

我想的是,仍然排名的公式,但我希望排在首位的特定範圍進取的人誰是超過25,但仍負爲最差。對於上面的數字,它看起來像這樣:

24-#1 
-1-#8 
18-#2 
40-#4 
81-#7 
65-#5 
16-#3 
73-#6 

你知道我該怎麼做到這一點嗎?

回答

1

我能想到讓這個工作起作用的唯一方法就是在排序之前操作這些值。

在一個隱藏的列,您可以添加以下公式

A B 
24 =IF(A1<0,A1*-MAX($A$1:$A$8),ABS(A1-25)) 
-1 
18 
40 
-5 
65 
16 
73 

這給你以下值

A  B 
24  1 
-1  81 
18  7 
40  15 
81  56 
65  40 
16  9 
73  48 

這會給你的排名將在C列在同一順序的新值根據需要(即您可以隱藏B列,從RANK返回的值將與列A中的原始值對齊)

A  B C 
24  1 =RANK(B1,$B$1:$B$8,1) 
-1  81 
18  7 
40  15 
81  56 
65  40 
16  9 
73  48 
0

試試這個:

enter image description here

在細胞G2輸入抄下:

=IF(AND(D2>=$B$1,D2<=$B$2),MAX($D$2:$D$9)+D2,IF(D2<0,-MAX($D$2:$D$9)+D2,-D2))

在細胞H2輸入抄下:

=RANK.AVG(G2,$G$2:$G$9)

這個想法是根據您的數據的MINMAXspecial range更新您的數字,然後使用排名。如果需要單細胞溶液,您可以將上述2個配方放在一起。在A2:A9

2

假設數據,那麼你可以通過在B2使用此公式避免幫手列複製下來

=IF(A2<0,RANK(A2,A$2:A$9),IF(A2<=25,COUNTIFS(A$2:A$9,"<=25",A$2:A$9,">"&A2)+1,COUNTIFS(A$2:A$9,">=0",A$2:A$9,"<"&A2)+1))

+0

+1正想着,時間最長,同時就如何做到這一點沒有輔助列,但couldn」到達那裏:) – Jaycal