如何查找两列中互换位置的数据

例题描述和简单分析

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

A列为融资方,B 列为担保方,结果是要找到相互对应的公司,结果如下:

解法及简要说明

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


A

1

支付宝    美的公司…

2

=A1.split@n("\t").select(~(1)!=~(2))

3

=A2.(~.inv([2,1]))

4

=A2^A3

5

=A4.id(~.sort()).concat@n("\t")

简要说明(改进:行数据排序再分组...):

A1   复制 book1 中的 A、B 列数据(不含表头)

A2  读成序列的序列,并去除融资方等于担保方的数据

A3  将 A、B 两列互换(也可以写成=A2.(~.swap([2],[1]]))

A4  求 A2 与 A3 的交集

A5  每个成员排序后去重,结果拼成串(行间用回车符,列间用制表符)【还可以写成 =A4.id(~[:0].select@1(~.eq(A4.~))).concat@n("\t")】

执行程序后,在集算器中选中 A5 单元格,再点击右侧对应的“copy data”按钮。在 Excel 中,点击 D2 单元格,按 Ctrl+V 就可以把计算结果粘贴过来。

问答搜集

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