如何获取每个分类下最大值所在行的数据

例题描述和简单分析

有 Excel 文件 book1.xlsx,数据如下所示:

现在需要从“原数据”页获取每日各列的最值所在群代号,填入“数据对比”页,结果如下:

解法及简要说明

在集算器中编写脚本 p1.dfx,如下所示:


A

1

日期       入群数    退群数…

2

=A1.import@t()

3

=A2.group(日期 )

4

入群数 max   入群数 min   退群数 max…

5

=A4.split("\t").("~."/right(~,3)/"p("/left(~,-3)/").群代号:"/~).concat@c()

6

=A3.new(~.日期: 日期,${A5})

简要说明:

A1   从 excel 中复制“原数据”页的数据

A2   将 A1 读成序表

A3  按日期分组

A4  结果数据除第一列日期外的列名(较多,有规律,拼计算表达式用)

A5  将 A4 的串按制表符拆成序列,对每个列名,拼出相应的计算表达式,再将序列用逗号拼成串: ~.maxp(入群数 ). 群代号: 入群数 max,~.minp( 入群数). 群代号: 入群数 min,…,~.maxp(发言率). 群代号: 发言率 max,~.minp(发言率). 群代号: 发言率 min

A6  计算结果(用宏,替换为 A5 中拼接好的串)

执行程序后,在集算器中选中 A6 单元格,再点击右侧对应的“copy data”按钮。在 Excel 的“数据对比”页中,点击 B4 单元格,按 Ctrl+V 就可以把计算结果粘贴过来。

问答搜集

http://club.excelhome.net/thread-1570029-1-1.html