我有两个列表,列表 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 列中的值不匹配
示例屏幕 截图:示例数据的屏幕截图