相邻同类项多行合并成一行

例题描述和简单分析

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


A B C
1 IP地址 目的IP地址 目的端口
2 10.3.126.7/32 10.3.126.6/32 TCP-7946
3 10.3.126.6/32 10.3.126.7/32 TCP-7946
4 10.3.126.5/32 10.3.126.4/32 TCP-30013
5 10.3.126.5/32 10.3.126.3/32 TCP-30013
6 10.3.126.5/32 10.3.126.2/32 TCP-30013
7 10.3.126.5/32 10.3.126.2/32 TCP-6002
8

需要将相邻的源IP地址和目的IP地址去重,并将目的端口合并,结果如下所示:


A B C
1 IP地址 目的IP地址 目的端口
2 10.3.126.7/32 10.3.126.6/32 TCP-7946
3 10.3.126.6/32 10.3.126.7/32 TCP-7946
4 10.3.126.5/32 10.3.126.4/32 TCP-30013
5 10.3.126.5/32 10.3.126.3/32 TCP-30013
6 10.3.126.5/32 10.3.126.2/32 TCP-30013
TCP-6002
7

解法及简要说明

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


A
1 =file("Book1.xlsx").xlsimport@t()
2 =A1.group@o(#1,#2;~.(#3).concat@n():目的端口)
3 =file("result.xlsx").xlsexport@at(A2;"sheet1")

简要说明:

A1   Excel读成序表

A2  按前两列相邻分组(源IP地址和目的IP地址),把每组的目的端口用换行符拼成串

A3   将序表A2以追加方式导出至result.xlsxsheet1页(若导出excel时要支持自动换行,需要提前准备该Excel文件,将sheet1C2格设为自动换行)

问答搜集

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