用分类排序后的数据填充指定区域
例题描述和简单分析
有 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