在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
尝试这个:
在单元格G2
input并复制下来:
=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
input并复制下来:
=RANK.AVG(G2,$G$2:$G$9)
这个想法是根据MIN
, MAX
和你的数据的special range
更新你的数字,然后使用rank。 如果需要单细胞溶液,您可以将上述2个配方放在一起。