在Excel中创build基于范围的排名公式

我有一个我制作的电子表格,我已经从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 

你知道我怎么能做到这一点?

假设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))

我能想到的这个工作的唯一方法就是在sorting之前操作这些值。

在隐藏的列中,您可以添加以下公式

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

这给你下面的值

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

这将给你新的值,将列C列在所需的顺序相同(即你可以隐藏列B和从RANK返回的值将alignment到您在A列的原始值)

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

尝试这个:

在这里输入图像说明

在单元格G2input并复制下来:

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

在单元格H2input并复制下来:

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

这个想法是根据MINMAX和你的数据的special range更新你的数字,然后使用rank。 如果需要单细胞溶液,您可以将上述2个配方放在一起。