2016-09-19 161 views
0

我有两个列表,列表1和列表2.两个列表都有两列,列A和列B,列A(ID)& B(值)中的值彼此对应。我需要将这两个列表与其他列表进行比较,并在发生不匹配时找到它们。匹配对方的两个列表

我想要做的是创建第三列C列,以说明这两个列表之间是否存在匹配或不匹配,基本上说明一个列表中的ID是否在另一个列表中具有不同的值,例如:

匹配是:列表1:列A = tom,列B = 5。列表2:列A = tom,列B = 5。

不匹配是:列表1:列A = tom,列B = 5。列表2:列A =汤姆,列B = 2。

问题是,列表2具有包含不同对应值(列B)的列A的重复项。我的规则是:如果两个列表之间存在一个匹配(即使列表中稍后出现不匹配)将其标记为“MATCH”,但如果没有任何匹配的ID(列A),则将其标记作为“MISMATCH”。

这里是我使用的公式,它从列表1将原始ID(栏A),并试图从列表1和表2找到一个匹配或不匹配:

= IF(VLOOKUP(A1, A:B,2,FALSE)= VLOOKUP(A1,C:D,2,FALSE),“MATCH”,“MISMATCH”)

我不能简单地删除重复项,因为它们不只是重复项,单个ID(列A)在一个列表中具有多个值(列B),但是我现在使用的公式不会考虑我想要实施的规则,并且我不知道从哪里开始或如何制作公式这将明白,如果一个ID(列A)包含一个匹配,即使它e是其他不匹配,将其标记为MATCH。我遇到的第二个问题是以某种方式报告,我可以拥有ID(列A),并且在单个列中显示其状态(匹配或不匹配),但没有重复项,我想这与原始问题有关。

对不起,很长的解释,但我很欣赏任何帮助提前。

样本数据:

列表1:

ColumnA | ColumnB

tom | 1

Jon | 2

fred | 3

brad | 4

列表2:

列A | B列

tom | 1

Jon | 5

Jon | 1

fred | 1

fred | 2

fred | 3

brad | 2

(所需的结果)表3:

ColumnA | ColumnB

tom | MATCH *,因为tom在列B中对于两个列表都具有相同的值

Jon | MISMATCH *因为jon在列B中对于两次列表都有不同的值,他的ID显示为

fred | MATCH *因为他在两个列表中至少有一个列B的匹配,即使存在一些不匹配,这也是规则到来的地方

brad |不匹配*由于他在B列在两个列表值不匹配

了示例截屏: Screen shot of example data

+1

也许包含一些可以粘贴到Excel中的小样本数据并显示您的意思? – Kieveli

+0

(另外,请确保你是占领任何前导/尾随空格。) – BruceWayne

+0

我添加了样本数据和期望的结果,我希望这有助于! – Amir

回答

0

你可以指望的比赛多少次发现与COUNTIF()功能。然后,围绕它陈述一个IF声明,以说每当计数大于> 0时,它是Match,否则Mismatch。见下面的截图:

这里的公式我在下面的单元格D4:=IF(COUNTIF(H4:H10,B4&C4)>0,"Yes","No")

这里的公式我在小区H4以下:=F4&G4

希望这有助于! enter image description here

0

查看此方法的方法是它基于两个条件匹配列表。在多个标准上进行匹配的简单方法是将各个标准值连接(连接)在一起,然后对您正在搜索的列表执行相同的操作。以下数组公式将这样做:

= IFERROR(IF(MATCH(A1 & B1,$ d $ 1:$ d $ 7 & $ E $ 1:$ E $ 7,0), “匹配”), “错配” )

NB - 我的列A和B包含您列表1,我的列d和E是您的清单2.

在C1中输入该式并按下Ctrl + Shift + Enter键(此转动式成数组公式),然后将其向下拖到单元格C4。