对有序数据进行分组统计
例题描述和简单分析
有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