对有序数据进行分组统计
例题描述和简单分析
有Excel文件Book1.xlsx,部分数据如下所示:
A | B | C | D | … | W | |
1 | 序号 | 时间 | 7-1表 | 7-9表 | … | 11-2表 |
2 | 1 | 2021-07-26 00:00:00 | 2.51 | 2.51 | … | 2.51 |
3 | 2 | 2021-07-26 01:00:00 | 2.54 | 2.54 | … | 2.54 |
4 | 3 | 2021-07-26 02:00:00 | 2.51 | 2.51 | … | 2.51 |
5 | 4 | 2021-07-26 03:00:00 | 2.51 | 2.51 | … | 2.51 |
… | … | … | … | … | … | … |
170 | 169 | 2021-08-02 00:00:00 | 2.54 | 2.54 | … | 2.54 |
时间列以小时为粒度,需要计算C列至W列每天的最大值,结果如下所示:
A | B | C | D | … | W | |
… | ||||||
172 | 7/26/2021 | 2.55 | 2.55 | … | 2.55 | |
173 | 7/27/2021 | 2.54 | 2.54 | … | 2.54 | |
174 | 7/28/2021 | 2.55 | 2.55 | … | 2.55 | |
… | … | … | … | … | … |
解法及简要说明
在集算器中编写脚本p1.dfx,如下所示:
A | |
1 | =file("Book1.xlsx").xlsimport@t() |
2 | =21.("max(#"/(~+2)/")").concat@c() |
3 | =A1.groups@o(date(#2);${A2}) |
简要说明:
A1 Excel读成序表
A2 拼出C至W列计算最值的表达式
A3 A1按日期分组,求最值
执行程序后,在集算器中选中A3单元格,再点击右侧对应的“copy data”按钮。在 Excel 文件中,点击 B172,按 Ctrl+V 就可以把计算结果粘贴过来。
https://club.excelhome.net/thread-1595114-1-2.html