Excel:检查工作表之间的匹配值

时间:2016-03-17 15:30:19

标签: excel

我有两个Excel电子表格。一个(SheetA)有6000多行和20多列数据,另一个(sheetB)有~700行和~10列。 SheetB上的~700条目也应全部出现在SheetA上。 SheetB已更新SheetA中某些条目的信息,我想交叉检查信息以确保所有条目匹配。我需要比较变量列出的值" Counties"在SheetB上使用变量" SiteID"对照SheetA上的值。换句话说,我想确保对于SheetB上的每个SiteID,SheetA上的相应SiteID具有为Counties列出的相同值。

作为样本:

希达

Site ID         Country
123XXX          Smith
124XXX          Doe
125XXX          Smith

SheetB

SideID          Country
123XXX          Doe
124XXX          Doe

SiteID 123XXX在SheetA和SheetB之间具有不同的值;我想举这个。 SiteID 124XXX具有相同的值;这可以。 SiteID 125XXX未出现在SheetB中;我可以忽略这一点。我需要做的是标记不一致并在SheetA上修复它们。

1 个答案:

答案 0 :(得分:0)

我认为这在评论中已得到实际回答,但是为了记录不匹配的数量,请将其放入SheetB!C2: -

=COUNTIFS(SheetA!A$1:A$10,A2,SheetA!B$1:B$10,"<>"&B2)

您不能仅使用VLOOKUP或MATCH在SheetA上查找第一个匹配的站点ID,并将国家/地区与SheetB进行比较,因为第一个匹配的站点ID可能在列B上匹配,但可能会出现更多相同的站点ID那些不匹配,即你有这种情况: -

enter image description here

但您可以在(比方说)SheetB!D2中使用此数组公式来查找给定站点ID的第一个不匹配国家/地区: -

=IFERROR(MATCH(1,(SheetA!A$1:A$10=A2)*(SheetA!B$1:B$10<>B2),0),"")

要查找内容,您可以在SheetB中添加一个INDEX函数!E2: -

=IFERROR(INDEX(SheetA!B$1:B$10,MATCH(1,(SheetA!A$1:A$10=A2)*(SheetA!B$1:B$10<>B2),0)),"")

需要使用 Ctrl Shift 输入

输入前两个公式

但是说了这一切之后,或许在条件格式中使用COUNTIFS公式强调SheetA中与SheetB不同的那些更有意义吗?

也可以列出位置&amp;多个不匹配的内容,但我会使用一点VBA来做到这一点。

Excel没有非常有用的连接功能,但您可以使用this之类的已发布功能为您提供

=stringconcat(",",IF((SheetA!A$1:A$10=A2)*(SheetA!B$1:B$10<>B2),ROW(SheetA!A$1:A$10),""))

表示多场比赛的位置

这是内容: -

=stringconcat(",",IF((SheetA!A$1:A$10=A2)*(SheetA!B$1:B$10<>B2),SheetA!B$1:B$10,""))

不保证这会有多快,但可能在6000行上没问题。

脚注 - 我想也许有一个名叫史密斯的国家有点不同寻常,但是有一个以人为名的几个国家的列表here - 并且有很多人以国家命名: - )

相关问题