说到排名,Excel里这事儿,简直就是一场江湖恩怨。

时间:2025-12-06 00:15:11 文档下载 投诉 投稿

你以为不就是排个名次嘛,从高到低,或者从低到高,能有多复杂?嘿,天真了不是。这里面的门道、挖的坑,足够让一个刚摸Excel没几天的小白,在深夜的办公室里,对着一屏幕的数字抓耳挠腮,怀疑人生。

咱们今天不搞那些教科书式的说教,什么“函数是预先编写的公式”,听着就犯困。我就当你是我的一个朋友,正被老板催着要一份销售排名报表,急得满头大汗,我呢,就坐在你旁边,翘着二郎腿,一边喝着枸杞茶,一边给你掰扯掰扯这里头的弯弯绕绕。

老将出马,但风光不再:RANK函数

首先,你可能会在网上搜到或者听某个“老前辈”提起一个叫 RANK 的函数。听我一句劝,忘了它。这玩意儿,就是个幽灵,一个活在Excel兼容性列表里的幽灵。微软自己都说了:“此函数已被一个或多个新函数取代,这些新函数可以提供更高的准确性,其名称能更好地反映其用法……为了向后兼容,此函数仍然可用。”

看见没?“向后兼容”。这四个字的意思就是,这是给那些用着上古时代Excel的老文件留的活口,咱们现在做新东西,就别去碰这个老古董了,免得哪天它脾气一上来,给你整个不兼容的幺蛾子,你哭都找不到地方。所以,RANK,再见,不送。

中流砥柱,绝对主力:RANK.EQ函数

现在咱们要聊的,是真正的顶梁柱,是你在95%的排名场景里,都应该第一个想到的家伙——RANK.EQ

这个 .EQ 是什么意思?Equal,相等。它的核心思想就是:遇到相同数值,给出的排名也完全相同。这不就是咱们日常理解的并列第一、并列第二嘛?对,就是这个味儿。

它的语法长这样: RANK.EQ(number, ref, [order])

别怕,我给你翻译成大白话: * number:你要给谁排名?就是那个单元格里的数字。 * ref:跟谁比?就是那一整列或者一整行的数字区域。 * [order]:怎么排?这个是可选的。你不填或者填个0,就是降序,分数越高的排名越靠前,这是最常用的。你要是填个1(或者随便什么非零的数字),那就是升序,数字越小排名越靠前,比如赛跑,用时越少越厉害。

来,上个场景。假设你有一份销售业绩表:

| 姓名 | 销售额 | 排名 | | :--- | :--- | :--- | | 张三 | 98 | | | 李四 | 85 | | | 王五 | 98 | | | 赵六 | 77 | | | 孙七 | 92 | |

现在,你要在“排名”那一列,给他们的销售额排个名。光标定位到张三旁边的排名单元格,输入:

=RANK.EQ(B2, $B$2:$B$6, 0)

敲下回车,一拖拽,搞定!

等一下,这里面有个魔鬼细节,你发现没有?$B$2:$B$6。那两个明晃晃的 $ 符号。这是在干嘛?这叫绝对引用

你想想,当你的公式从张三那里往下拖,要计算李四排名的时候,如果你不加这个 $,那个区域 B2:B6 就会自动变成 B3:B7。完了,李四的比较范围里,把自己算进去了,却把张三给漏了。这排名还怎么排?整个体系都崩了。所以,这个 $ 符号,就像是给这个区域钉上了钉子,死死地锁住,告诉Excel:“嘿,哥们儿,不管我公式怎么拖,你都得给我老老实实地跟这一亩三分地里的所有数字比!” 这是用排名函数最最最容易犯的错,没有之一。记住了,比较的那个大区域,一定要绝对引用

好了,公式拖完,你会看到一个结果:张三是第1名,王五也是第1名,孙七是第3名,李四是第4名。

看出来问题了吗?这就是 RANK.EQ 的“脾气”。它处理并列排名的方式是:并列第一,没问题,但后面的名次会跳过。两个并列第一占了第1和第2的位置,所以下一个名次直接从第3开始。这在很多场合是完全OK的,符合逻辑。但如果你的老板是个细节控,非要看到1、2、3、4、5这样连续的排名,那这事儿就没完。

一个有点“怪”的朋友:RANK.AVG函数

在说怎么解决并列排名不连续的问题之前,我们先认识一下 RANK.EQ 的兄弟,RANK.AVG

这个 .AVG 是 Average,平均。它的用法、语法,跟 RANK.EQ 一模一样,唯一的区别就是处理并列排名的方式。它是个“和事佬”。

还用刚才那个例子,如果用 RANK.AVG,张三和王五的销售额都是98,他们本来应该排第1和第2。RANK.AVG 会取这两个名次的平均值,(1+2)/2 = 1.5。所以,他俩的排名都会显示成1.5。

这玩意儿说实话,在日常工作中用得不多。除非你在搞一些特别专业的统计分析,需要用到平均排名,否则这个带小数点的排名,拿给老板看,他可能会觉得你的Excel坏掉了。所以,了解一下就行,知道有这么个“怪咖”存在。

终极绝招:解决并列排名,让名次“中国式”连续

好了,回到刚才那个最头疼的问题:老板不接受排名里有空缺,必须是1、2、3、4、5这样往下排。并列第一可以,但下一个必须是第二,而不是第三。

这时候,光靠一个 RANK.EQ 已经罩不住场子了。我们需要请出一位外援,一个神出鬼没但威力无穷的函数——COUNTIF

别紧张,公式不复杂,但需要你理解它的逻辑。我们把公式升级一下:

=RANK.EQ(B2, $B$2:$B$6, 0) + COUNTIF($B$2:B2, B2) - 1

我给你拆解一下这个公式的魔法:

  1. RANK.EQ(B2, $B$2:$B$6, 0):这部分没变,还是算出基础排名。比如张三和王五,这里算出来的结果都是1。

  2. COUNTIF($B$2:B2, B2) - 1:这是整个公式的灵魂!

    • COUNTIF 是干嘛的?它是在一个区域里,数一数符合某个条件的单元格有几个。
    • 这里的区域是 $B$2:B2。看仔细了,第一个B2是绝对引用,锁死了开头;第二个B2是相对引用,没锁。这意味着,当公式往下拖的时候,这个区域会变成 $B$2:B3$B$2:B4……它是一个动态扩展的区域
    • 这个公式的意思就是:从最开始的地方,一直到我当前这一行,数一数跟我自己数值一样的单元格,出现了几次
    • 对于第一个98分的张三,COUNTIF($B$2:B2, B2) 的结果是1。
    • 对于第二个98分的王五,公式拖到他那里,范围变成了 $B$2:B4,在这个范围里数98有几个?两个。所以 COUNTIF 的结果是2。
    • 为什么要 - 1?这是为了把第一次出现的情况给抹平。第一次出现时,1 - 1 = 0,排名不受影响。第二次出现时,2 - 1 = 1,就在原来的基础上加了1。

现在我们把整个公式连起来看:

  • 对于张三(第一个98):基础排名是1,COUNTIF部分结果是 1 - 1 = 0。最终排名是 1 + 0 = 1
  • 对于王五(第二个98):基础排名是1,COUNTIF部分结果是 2 - 1 = 1。最终排名是 1 + 1 = 2

看到了吗?通过这个小小的加法,我们巧妙地把并列的情况给错开了,实现了我们想要的“中国式”排名:1、2、3、4、5... 谁先出现谁的排名就靠前一点。完美!

不止于此:排名的其他玩法

Excel的魅力就在于,实现一个目标,条条大路通罗马。除了用函数,还有些别的方法。

比如,你想找出前三名,不一定非要给所有人排名。你可以用 LARGE 函数。=LARGE($B$2:$B$6, 1) 就是找出第一名(最大值),=LARGE($B$2:$B$6, 2) 就是找出第二名。SMALL 函数则反过来,找倒数的。

再比如,如果你只是想快速看一眼排名,甚至都不用写公式。把数据做成一个数据透视表,把销售额拖到“值”区域,再拖一次到“值”区域,然后对第二个“销售额”字段右键,“值显示方式”里,直接就有“降序排名”或“升序排名”的选项。鼠标点几下,排名就出来了,连公式都不用记。当然,这适合做临时性的分析报告,不适合嵌入到需要实时更新的表格结构里。

你看,一个简单的“排名”,背后是这么多函数的组合与逻辑的思考。工具是死的,思路是活的。理解了 RANK.EQ 的核心,掌握了 COUNTIF 这个解决并列问题的“黄金搭档”,你就基本上能应对工作中绝大多数的排名需求了。下次再遇到这事儿,你就可以气定神闲地泡上一杯茶,慢悠悠地敲下那串看似复杂,实则逻辑清晰的公式,然后看着同事投来敬佩的目光。这感觉,不赖吧?

【说到排名,Excel里这事儿,简直就是一场江湖恩怨。】相关文章:

excel钢筋符号怎么输入12-06

excel怎么保存不了怎么回事12-06

excel的表头格怎么设置12-06

Excel怎么把相同的内容12-06

怎么把Excel导出PDF文件?12-06

excel怎么加图表的标题12-06

说到排名,Excel里这事儿,简直就是一场江湖恩怨。12-06

excel的表格怎么锁定行12-06

钢筋符号在excel怎么输入12-06

怎么设置excel默认字体12-06

咱们聊聊Excel这事儿,特别是那个让人又爱又恨的公式。12-06

怎么把excel粘贴到cad12-06

别再傻乎乎地一个个去数了,求你了。12-06