在一对多的情况下使用MATCH

我有两个城市的名单,他们的邮政编码和州。 一个可疑的质量清单,另一个是绝对正确的。 我正在尝试查找可疑列表不正确的情况。

任何给定的城市都可能有多个与之相关的邮政编码。

我正在尝试使用索引匹配来实现这一点。 但是,Excel的匹配函数似乎不适用于像这样的一对多关系。 它find与城市相关的第一个邮政编码,然后停止。

在这种情况下是否有更好的方法来进行比赛?

这种方法将显示代码,并告诉你哪些行有数据。 有了这样的数据:

在这里输入图像说明

D1input城市名称斯普林菲尔德
D2中input:

=MATCH($D$1,A:A,0) 

D3中input:

 =MATCH($D$1,INDEX(A:A,D2+1):INDEX(A:A,9999),0)+D2 

并复制下来,直到你得到一个错误。 D列标识了斯普林菲尔德行。 在E2中input:

 =INDEX(B:B,D2) 

并抄下来显示代码。

在这里输入图像说明

该方法避免使用数组公式,避免使用INDIRECT()

我能够找出一个(相当容易)解决这个问题:连接两个字段,然后匹配。

列A包括城市名称,列B是邮政编码。 于是我创build了一个新的C列,公式如下:

 =Concatenate(A1, "-", B1) 

我为可疑的数据和干净的数据做了这个。

从这里很容易匹配连接的数据。