相邻同类项求和
相邻同类项求和
例题描述和简单分析
有Excel文件Book1.xlsx,数据如下所示:
A |
B |
C |
|
1 |
部门 |
KPI |
金额 |
2 |
市场部 |
0 |
32091 |
… |
… |
… |
… |
11 |
市场部 |
1 |
5182 |
12 |
市场部 |
1 |
6315 |
13 |
市场部 |
1 |
27477 |
… |
… |
… |
… |
22 |
运营部 |
1 |
9950 |
23 |
运营部 |
1 |
9625 |
24 |
运营部 |
1 |
47277 |
25 |
运营部 |
1 |
32016 |
26 |
运营部 |
1 |
49575 |
27 |
运营部 |
1 |
44615 |
28 |
运营部 |
0 |
6158 |
… |
… |
… |
… |
需要求出KPI连续数值1之间的最大的连续次数与金额和,结果如下所示:
A |
B |
C |
D |
|
1 |
部门 |
KPI |
金额 |
市场部最大连续次数3,和38974 |
2 |
市场部 |
0 |
32091 |
运营部最大连续次数6,和193058 |
… |
… |
… |
… |
|
11 |
市场部 |
1 |
5182 |
|
12 |
市场部 |
1 |
6315 |
|
13 |
市场部 |
1 |
27477 |
|
… |
… |
… |
… |
|
22 |
运营部 |
1 |
9950 |
|
23 |
运营部 |
1 |
9625 |
|
24 |
运营部 |
1 |
47277 |
|
25 |
运营部 |
1 |
32016 |
|
26 |
运营部 |
1 |
49575 |
|
27 |
运营部 |
1 |
44615 |
|
28 |
运营部 |
0 |
6158 |
|
… |
… |
… |
… |
解法及简要说明
在集算器中编写脚本p1.dfx,如下所示:
A |
|
1 |
=file("Book1.xlsx").xlsimport@t() |
2 |
=A1.groups@o(部门,KPI;count(1),sum(金额)) |
3 |
=A2.select(KPI==1) |
4 |
=A3.group(部门;~.top@1(-1;#3)) |
5 |
=A4.(部门/"最大连续次数"/#2.#3/",和"/#2.#4) |
简要说明:
A1 Excel读成序表
A2 按部门,KPI相邻分组;计数,金额求和
A3 过滤出KPI为1的结果
A4 按部门分组,用top找出最大的连续次数的那段数据
A5 每个部门拼出需要的结果串
执行后,选中A5格,点复制数据,再在Excel的D1粘贴数据即可
http://club.excelhome.net/thread-1586930-1-1.html