如何提取出Excel表格中业绩前n名的行,且降序排序?

Excel学习世界 2022-11-02 21:59:09

我们为什么要用 O365 版本?因为高阶函数太香了。

案例:

在下图 1 中左侧的数据表中查找出“实际完成“前 n 名的人,将整行数据填写在右侧的表中。

结果按“实际完成”值降序排序;

n 值变化时,右侧的结果自动更新;

结果表格的边框会随着区域的增减自动出现和消失。

效果如下图 2、3 所示。

解决方案:

今天的公式,会用到不少高阶的 O365 函数。

1. 在 G2 单元格中输入以下公式:

=INDEX(SORTBY(A2:A13,C2:C13,-1),SEQUENCE(E2))

公式释义:

SORTBY(A2:A13,C2:C13,-1):

参数含义为 (要列出的区域, 按哪个区域排序, 降序排序);

这里表示按 C 列降序排序后,将对应的 A 列区域罗列出来;

SEQUENCE(E2):生成从 1 开始,步长为 1,截止数为 E2 单元格数值的一组序列,即 {1;2;3};

INDEX(...,...):在第一个参数的区域中提取出排在序列中第 m 位的值,m 为第二个参数的值;由于第二个参数是数组,所以最终提取出来的是一个动态数组区域

2. 在 H2 单元格中输入以下公式 --> 下拉复制公式:

=IF(ISBLANK(G2),"",XLOOKUP(G2,A:A,B:C))

公式释义:

ISBLANK(G2),"":如果 G 列为空则显示空值;

XLOOKUP(G2,A:A,B:C):否则,在 A 列查找 G2 单元格的值,返回 B、C 列的对应行

到了这里还有个小问题:查找结果表没有边框,强迫症表示不能忍。

3. 选中 G2:I13 区域 --> 选择菜单栏的“开始”-->“条件格式”-->“新建规则”

4. 在弹出的对话框中选择“使用公式确定要设置格式的单元格”--> 输入以下公式 --> 点击“格式”:

=G2<>""

5. 在弹出的对话框中选择“边框”选项卡 --> 选择“外边框”--> 点击“确定”

6. 点击“确定”

现在数据表的非空区域就自动添加了边框。

修改名次,不仅查询结果会自动更新,数据表边框也会自动出现。

0 阅读:12

Excel学习世界

简介:Excel 学习交流