如何查找两列中互换位置的数据
例题描述和简单分析
有 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