我们为什么要用 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 为第二个参数的值;由于第二个参数是数组,所以最终提取出来的是一个动态数组区域