我有两个列表,列表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)。我的规则是:如果两个列表之间有一个匹配(即使列表后面出现不匹配)将其标记为“MATCH”,但如果没有任何ID匹配(列A),则标记它作为“MISMATCH”。
以下是我使用的公式,它从LIST 1获取原始ID(列A)并尝试从列表1和列表2中找到匹配或不匹配:
= IF(VLOOKUP(A1,A:B,2,FALSE)= VLOOKUP(A1,C:d,2,FALSE), “匹配”, “失配”)
我不能简单地删除重复项,因为它们不仅仅是重复项,它是一个列表中具有多个值(列B)的单个ID(列A),但我现在使用的公式不会考虑我的规则I想要实现,我真的不知道从哪里开始或如何制定一个公式,以便了解如果ID(列A)包含一个匹配,即使存在其他不匹配,也要标记它作为一个MATCH。我遇到的第二个问题是报告它的方式是我可以拥有ID(列A)并将其状态(匹配或不匹配)放在一个没有重复项的列中,我想这与原始问题有关。
对于长篇解释感到抱歉,但我提前感谢您的任何帮助。
示例数据:
的List1:
ColumnA | ColumnB
汤姆| 1Jon | 2
fred | 3
布拉德| 4
列表2:
A栏| B栏
汤姆| 1Jon | 5
Jon | 1
fred | 1
fred | 2
fred | 3
布拉德| 2
(所需结果)清单3:
ColumnA | ColumnB
汤姆| MATCH *因为tom在列B中具有与两个列表相同的值Jon | MISMATCH *因为jon在B列中对于他的ID出现的所有时间的两个列表都有不同的值
fred |匹配*,因为即使存在一些不匹配,他在两个列表中的列B至少有一个匹配,这是规则将到位的地方
布拉德| MISMATCH *因为他在两个列表中的B列中的值不匹配
屏幕截图示例: Screen shot of example data
答案 0 :(得分:0)
您可以计算使用COUNTIF()
功能找到匹配的次数。然后,在其周围包含IF
语句,以表示每当计数大于>
0时,它就是Match
,否则为Mismatch
。见下面的截图:
这是我在下面的单元格D4中的公式:=IF(COUNTIF(H4:H10,B4&C4)>0,"Yes","No")
这是我在下面的单元格H4中的公式:=F4&G4
答案 1 :(得分:0)
查看此内容的方法是,它与基于两个条件的列表匹配。在多个条件上匹配的简单方法是将各个条件值连接(连接)在一起,然后对要搜索的列表执行相同操作。以下数组公式将执行此操作:
= IFERROR(IF(MATCH(A1&安培; B1,$ d $ 1:$ d $ 7和; $ E $ 1:$ E $ 7,0), “匹配”), “失配”)
注意 - 我的列A和B包含您的列表1,我的列D和E是您的列表2。
在C1中输入此公式并按Ctrl + Shift + Enter(这会将公式转换为数组公式),然后将其向下拖动到单元格C4。