excel - 比较两个数据透视表

标签 excel excel-formula vba

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

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

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

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

表格1

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

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

我想看到像“DAVE”和“asgh4”这样的匹配,因为用户匹配并且 ID 匹配。有没有办法做到这一点?谢谢!

最佳答案

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

=A1&B1

然后在两个表中完成后,使用 MATCH 函数确定是否有任何 NAME&ID 字符串匹配,就像这样,从 sheet1 上的单元格 D1 开始(假设 NAME&ID 字符串在 C 列中):
=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))

请注意,对于数组函数,您必须指定列向下的距离,否则性能将显着滞后。

关于excel - 比较两个数据透视表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31300092/

相关文章:

php - 使用 PHP 操作从 Excel 到 MySQl 的日期

excel - MsgBox 中的 if 语句

excel - 在单个单元格中查找某些单词

vba - 将向左弹出的评论移动到另一列可以使其向右弹出,修改评论的内容也可以

excel - 在 64 位 Office 中调用 MultiByteToWideChar() 给出错误结果

python - 用vba截取一个html文件

database - 关闭 Access 数据库而无需打开应用程序外壳的 VBA 代码

python - 将输入文件从 Excel VBA 发送到 Raspberry Pi 而不更改内容

c# - 将数据表导出到 Excel asp

python - Excel 'LET' 函数无法使用 openpyxl