用分类排序后的数据填充指定区域
例题描述和简单分析
有 Excel 文件 book1.xlsx,如下所示:
A | B | C | |
1 | 班级 | 姓名 | 分数 |
2 | 一班 | 张三 | 100 |
3 | 二班 | 李四 | 40 |
4 | 一班 | 王五 | 50 |
5 | 二班 | 秦六 | 50 |
6 | 三班 | 赵彤 | 10 |
现需要将每个班级的人员姓名按分数从低到高列在右侧区域,结果如下:
A | B | C | D | E | F | |
1 | 班级 | 姓名 | 分数 | 一班分数从低到高 | 二班分数从低到高 | 三班分数从低到高 |
2 | 一班 | 张三 | 100 | 王五 | 李四 | 赵彤 |
3 | 二班 | 李四 | 40 | 张三 | 秦六 | |
4 | 一班 | 王五 | 50 | |||
5 | 二班 | 秦六 | 50 | |||
6 | 三班 | 赵彤 | 10 |
解法及简要说明
Excel中加载插件 ExcelRaq.xll 以及宏文件 esproc_template.xla 后。
先在第一行插入空行,再在 D1 格输入公式:=esproc("=?.select(~(1)==""一班"").sort(~(3)).new(~(2): 一班分数从低到高 )",A3:C7),按下组合键 ctrl+enter,即可计算一班分数从低到高的人员姓名,依次在 E1、F1 计算二班、三班的人员姓名,最后删除第一行即可。
https://tieba.baidu.com/p/7209061061?qq-pf-to=pcqq.c2c