比较两个数据透视表

时间:2015-07-08 17:52:57

标签: excel excel-vba excel-formula vba

我有两个数据透视表,一个在A列,一个在B列,它们的格式相同。

数据透视表有一个用户列表,每个用户下都有一个ID列表。

有没有办法可以将两个数据透视表相互比较?我希望匹配两个表中的用户,并查看哪些用户具有重复的ID。

为了帮助可视化,表格看起来像这样:

表1

-------------------------                                          
| DAVE  | asgh4 | lshg8 |                                         
| MATT  | 39f8  | 2352  |                                               
-------------------------

表2

-------------------------
| PETER | dgghn  | lkasj|
| DAVE  | asgh4  | 38gfj|
-------------------------

我希望看到像" DAVE"和#34; asgh4"因为用户匹配且ID匹配。有没有办法实现这个目标?谢谢!

1 个答案:

答案 0 :(得分:3)

如果没有VBA,有两种方法可以实现这一目标。第一种是在每个数据透视表旁边创建一个“辅助列”。在该列中,从第1行开始并向下拖动,键入(假设名称在A列中,ID在B列中)

=A1&B1

然后在两个表中完成,使用MATCH函数确定是否有任何NAME和ID字符串匹配,如此,从sheet1上的单元格D1开始(假设NAME和ID字符串在C列中):< / p>

=match(C1,Sheet2!C:C,0)

如果显示数字,则表示在另一张表中找到匹配项。如果显示N / A#,则表示未找到匹配项。要稍微清理它,将其包装在函数ISERROR中,如下所示:

=iserror(match(C1,Sheet2!C:C,0))

如果在单元格中显示TRUE,则表示MATCH函数未找到匹配数据,这会产生错误。如果它显示为FALSE,则表示找到了匹配项,这意味着存在重复值。

或者,您可以在不创建帮助列的情况下执行此操作,但如果您不熟悉数组公式,我不建议这样做。

将此公式放在Sheet1,单元格C1中,然后向下拖动(当键入公式时,按CTRL + SHIFT + ENTER确认,而不是按ENTER键确认):

=iserror(match(A1&B1,sheet2!A1:A100&sheet2!B1:B100))

请注意,使用数组函数时,您必须指定列的下移距离,否则性能会显着滞后。