Excel:检查表单之间的匹配值

我有两个Excel电子表格。 一个(SheetA)有6000+行和20 +列的数据,另一个(sheetB)有〜700行和~10列。 SheetB上的〜700个条目也都应该出现在SheetA上。 SheetB已经更新了来自SheetA的某些条目的信息,我想交叉检查这些信息以确保它们全部匹配。 我需要使用variables“SiteID”将SheetB上variables“Counties”列出的值与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上修复它们。

我认为这已经在评论中得到了实际的回答,但是为了logging错配的数量,把它放在SheetB!C2中: –

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

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

在这里输入图像说明

但是你可以在(比如说)SheetB!D2中使用这个数组公式find给定Site ID的第一个不匹配的国家:

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

要find这些内容,你可以在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 Enterinput前两个公式

但是说了这么多,也许只是在条件格式中使用COUNTIFS公式来突出显示与SheetB不同的SheetA中的那些?

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

Excel没有一个非常有用的连接函数,但是你可以使用这样的发布函数

 =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行。

脚注 – 我想也许有一个叫史密斯的国家有点不同寻常,但是这里有一个以人名命名的国家名单 – 而且有很多人以国名命名:-)