致力于在Excel中创建基于范围的排名公式

时间:2013-11-01 19:57:47

标签: excel excel-2010

我有一个我制作的电子表格,我将它设置为从1-9排名9个商店。例如:

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

你知道我怎么做吗?

3 个答案:

答案 0 :(得分:2)

假设A2:A9中的数据,那么您可以通过在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))

答案 1 :(得分: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列中的原始值对齐)< / p>

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

答案 2 :(得分: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个公式放在一起。