统计区域中每一个单元格的排名,最常用的是 rank 函数。但是 rank 函数如何对不连续的区域计算排名呢?
以下是两种常见的方法。
案例:计算下图 1 中每个销售的业绩排名,效果如下图 2 所示。
解决方案 1:1. 在 A2 单元格中输入以下公式,其中的查询区域是按住 Ctrl 键的同时用鼠标选取的:
=RANK(C2,C2:C5,C7:C11,C13:C16)
但是出错了。
我们来看 rank 函数的语法就知道出错原因了:
RANK(要排序的数值,排序区域,[排序顺序])
可以看出 rank 的必需参数只有 2 个,而我们的公式中出现了 4 个参数,难怪报错。
找到了原因,我们只需对参数稍作修改就能解决问题:在查询区域外面套个括号,使得不连续的区域变成了一个参数,这样就符合语法要求了。
=RANK(C2,(C2:C5,C7:C11,C13:C16))
下面就是正式的解题步骤。
1. 选中涵盖 A 列所有空单元格的区域 --> 按 Ctrl+G
2. 在弹出的对话框中点击“定位条件”按钮。
3. 在弹出的对话框中选择“空值”--> 点击“确定”
4. 输入以下公式 --> 按 Ctrl+Enter:
=RANK(C2,($C$2:$C$5,$C$7:$C$11,$C$13:$C$16))
公式释义:
计算 C2 单元格的值在区域 ($C$2:$C$5,$C$7:$C$11,$C$13:$C$16) 中的从大到小排名;
* 第二个参数中的所有区域都要绝对引用。
Excel 中还有个排序函数 RANK.AVG,该函数与 rank 的区域是:如果多个值具有相同的排位,则将返回平均排位。
=RANK.AVG(C2,($C$2:$C$5,$C$7:$C$11,$C$13:$C$16))
解决方案 2:1. 选中 C 列中需要参与排名的不连续区域 --> 按 Ctrl+F3
2. 在弹出的对话框中点击“新建”按钮。
2. 在弹出的对话框中将“名称”设置为“业绩”--> 点击“确定”
3. 点击“关闭”。
4. 重复解决方案 1 中的步骤 1 至 3 --> 输入以下公式 --> 按 Ctrl+Enter:
=RANK(C2,业绩)