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 列=tom,B 列=2。

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

这是我正在使用的公式,它从列表 1 中获取原始 ID(列 A)并尝试从列表 1 和列表 2 中查找匹配或不匹配:

=IF(VLOOKUP(A1,A:B,2,FALSE)=VLOOKUP(A1,C:D,2,FALSE),"匹配","不匹配")

我不能简单地删除重复项,因为它们不仅仅是重复项,它是一个列表中具有多个值(B 列)的单个 ID(A 列),但我现在使用的公式不能解释我想要实施的规则而且我真的不知道从哪里开始或如何制作一个公式来理解如果 ID(A 列)包含一个匹配项,即使还有其他不匹配项,也将其标记为匹配项。我遇到的第二个问题是以某种方式报告它,我可以将 ID(A 列)和它的状态(匹配或不匹配)放在一个没有重复的列中,我想这与原始问题有关。

很抱歉解释太长,但我提前感谢任何帮助。

样本数据:

清单 1:

A 栏 | B栏

汤姆| 1

乔恩 | 2

弗雷德 | 3

布拉德 | 4

清单 2:

A栏| B栏

汤姆| 1

乔恩 | 5

乔恩 | 1

弗雷德 | 1

弗雷德 | 2

弗雷德 | 3

布拉德 | 2

(期望结果)清单 3:

A 栏 | B栏

汤姆| MATCH *因为 tom 在两个列表的 B 列中具有相同的值

乔恩 | MISMATCH *因为 jon 在他的 ID 出现的所有时间中,两个列表的 B 列中的值都不同

弗雷德 | MATCH *因为即使存在一些不匹配,他在两个列表中的列 B 中至少有一个匹配项,这就是规则生效的地方

布拉德 | MISMATCH *因为他在两个列表中的 B 列中的值不匹配

示例屏幕 截图:示例数据的屏幕截图

4

2 回答 2

0

您可以计算使用该COUNTIF()函数找到匹配项的次数。然后,IF在它周围加上一个语句,说明当计数大于>0 时,它是 a Match,否则是Mismatch。请看下面的截图:

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

这是我在下面的单元格 H4 中的公式:=F4&G4

希望这可以帮助! 在此处输入图像描述

于 2016-09-19T17:44:56.560 回答
0

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

=IFERROR(IF(匹配(A1&B1,$D$1:$D$7&$E$1:$E$7,0),"匹配"),"不匹配")

注意 - 我的 A 和 B 列包含您的列表 1,我的 D 和 E 列是您的列表 2。

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

于 2016-09-19T20:49:59.163 回答