首页 > 解决方案 > 将多列与多列 2 表进行比较,如果数据匹配则返回不同的列

问题描述

我有 2 张 Excel 表格。一份包含客户信息、调度区域和销售,另一份包含客户信息和地理编码信息(长/纬度)。我想做的是将Sheet2的CustomerID、LocationID、CustomerName列与Sheet1的同名列进行比较,如果它们匹配,则将经度、纬度列中的数据从Sheet2移到Sheet1上的相应列。我需要上传到地图系统的所有信息。我不是 Excel 大师,下周开始更高级的课程,我一直在玩 vLookups,但从来没有能够让它在此处输入图像描述中工作。我应该使用别的东西吗?

在下面的示例中,第一个应该匹配并拉入 Sheet1,第二个不应该。我们有大约 7,000 条记录要解析。

表 1

CustomerID LocationID CustomerName 经度 纬度 Sales$ Dispatch 1234 1 Smith 125 DFW

4567 1 琼斯 450 DFW

表 2

CustomerID LocationID CustomerName 经度 纬度 地址 城市

1234 1 史密斯 25.xxx -97.xxx 1234 主达拉斯

4567 2 琼斯 25.xxx -97.xxx 452 通讯布达

标签: excelexcel-formulavlookup

解决方案


这是一个复杂的查找,计算 14K(7K 的纬度和经度)数据单元需要一段时间。

根据您提供的图像,将其放在 Sheet1!D2 中,然后向右拖动并向下填充。

=IFERROR(INDEX(Sheet2!D:D, AGGREGATE(15, 7, ROW($1:$9999)/((Sheet2!$A:$A=$A2)*(Sheet2!$B:$B=$B2)*(Sheet2!$C:$C=$C2)), 1)), "")

你也可以试试 SUMIFS。这仅在 Sheet2 中的三个值组合是唯一的情况下才有效,因此可能需要 COUNIFS,但没有它会更快。

=IF(COUNTIFS(Sheet2!$A:$A, $A2, Sheet2!$B:$B, $B2, Sheet2!$C:$C, $C2)=1, SUMIFS(Sheet2!D:D, Sheet2!$A:$A, $A2, Sheet2!$B:$B, $B2, Sheet2!$C:$C, $C2), "")

推荐阅读