相邻同类项求和
相邻同类项求和
例题描述和简单分析
有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