如何实现多列对比去重
例题描述和简单分析
有 Excel 文件 book1.xlsx,数据如下所示:
现在要将去除重复记录,并将数据合并,结果如下:
需要注意:学号和姓名相同,而年龄不同,说明其中有一行的数据有误,这就需要手动进行处理,不能够删除其中某一行。
解法及简要说明
在集算器中编写脚本 dup.dfx,如下所示:
A |
|
1 |
=clipboard().import@t() |
2 |
=A1.group(学号 ) |
3 |
=A2.(~.run(if(性别 ==null, 性别 =A2.~.(性别).ifn()),if( 年龄 ==null, 年龄 =A2.~.( 年龄).ifn()))).conj() |
4 |
=A3.group@1(学号, 姓名, 性别, 年龄 ) |
5 |
=clipboard(A4.export@t()) |
简要说明:
A1 从剪贴板里读取数据,选项 @t 表示首行是列标题
A2 按学号将记录分组
A3 将空数据(性别、年龄)补齐
A4 对补齐后的数据,去除重复的记录
A5 把A4转成字符串后复制到剪贴板中,选项 @t 表示要转出列标题
代码写好以后,到 Excel 文件里选择数据 A1:D11,然后按 Ctrl+C 复制到剪贴板。回到集算器,按 F9 运行程序,运行结束后再回到 Excel 文件,点击 A13,按 Ctrl+V 就可以把计算结果粘贴过来。