在Excel中排名,当我想要前n时我得到前n + 1(或n + x)

时间:2013-07-23 14:04:49

标签: excel sorting

我在excel中有一个列表,我希望它能选择更高的3个结果,而且只有3.在这个例子中使用条件格式似乎很容易:

1  | 2  | 3  | 4  | 5  | 6 
44 | 78 | 98 | 45 | 52 | 98

第2,第3和第6个数字将突出显示。

问题出现如下:

1  | 2  | 3  | 4  | 5  | 6 
44 | 78 | 78 | 45 | 87 | 98

Excel将突出显示第2,第3,第5和第6个数字,因为前两个(排序列表中的第三个)是相等的。 如何让Excel只选择其中一个?

(解决方案不需要使用条件格式,可以使用Excel上可用的任何工具,从公式到VB,但简单易用)。

2 个答案:

答案 0 :(得分:1)

对于条件格式,我们需要打破平局。一种方法是计算值在先前的比较中出现的次数。

这会将您的条件公式更改为

=(RANK(A2,$A$2:$F$2)+COUNTIF($A$2:A$2,A2)-1)<=3

请注意,在某些情况下使用绝对位置,在其他情况下使用相对位置。

击穿:
RANK(A2,$A$2:$F$2) - 等级公式。你知道这个,因为你现在正在使用它 COUNTIF($A$2:A$2,A2) - 计算值出现的次数 - 请注意引号在冒号后面A前面没有$ - 这是为了确保在我们处理时范围变大沿行的公式(第一计数:A2:A2,第二计数:A2:B2等)
-1 - 因为计数总是匹配一个数字(本身)

所以,对于你的第二个例子,

44  78  78  45  87  98

新职级

6   3   4   5   2   1

并且公式转换为

  

= RANK(A2,$ A $ 2:$ F $ 2)+ COUNTIF($ A $ 2:A $ 2,A2)-1
  = RANK(B2,$ A $ 2:$ F $ 2)+ COUNTIF($ A $ 2:B $ 2,B2)-1
  = RANK(C2,$ A $ 2:$ F $ 2)+ COUNTIF($ A $ 2:C $ 2,C2)-1
  = RANK(D2,$ A $ 2:$ F $ 2)+ COUNTIF($ A $ 2:d $ 2,D2)-1
  = RANK(E2,$ A $ 2:$ F $ 2)+ COUNTIF($ A $ 2:E $ 2 E2)-1
  = RANK(F2,$ A $ 2:$ F $ 2)+ COUNTIF($ A $ 2:F $ 2,F2)-1

用于条件格式

答案 1 :(得分:0)

我想不出一个单元格解决方案,但这是我的帮助列:

Rank_Row列,检查Input是否重复,如果是,则添加行号的分数。 C2=IF(COUNTIF($B$2:$B$7,B2)>1,RANK(B2,$B$2:$B$7)+ROW()/100,RANK(B2,$B$2:$B$7))

Filter列按升序使用简单RANK,您可以使用此列过滤前3列。D2=RANK(C2,$C$2:$C$7,1)

向下拖动两个公式以进行复制。

enter image description here