我制作了一个电子表格,并将其设置为从 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
你知道我该怎么做吗?
我制作了一个电子表格,并将其设置为从 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))
我能想到的唯一方法是在进行排名之前操纵值。
在隐藏列中,您可以添加以下公式
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
尝试这个:
在单元格中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)
这个想法是根据您的数据更新您的数字MIN
,MAX
然后special range
使用排名。如果需要单细胞解决方案,您可以将以上 2 个公式放在一起。