通过数据透视表比较来自多个电子表格的数据

时间:2013-04-11 19:10:20

标签: excel vba pivot

我正在努力简化日常任务,我想要收拾你的大脑。我有三种不同的数据源(两个来自我公司,第三个来自客户),包括产品,日期,类别和数量。到目前为止,我已经转换了我所能做的并省略了无关数据,并将两个数据合并到一个数据透视表(内部数据)中,另一个数据合并在一个单独的数据透视表中(外部数据下载)。我的任务是比较数据并确保内部数据与外部数据完全相同,如果存在差异,则调查和更改。 我一直在用标尺手动比较两个数据透视表。数据每天都在变化,有时这是一项长期任务。通过在论坛上阅读,我找到了将值与公式进行比较的方法,但我有值以及文本和日期,并且不知道如何将它们全部合并。任何想法都会非常感激吗?

1 个答案:

答案 0 :(得分:0)

我假设您有一些标识符可以告诉您该产品,并且因为您使用数据透视表,所以它们是相同的。

您可以使用的内容为vlookup

语法为=vlookup(lookup_value, range, column_index, false)

在您拥有内部数据的工作表中插入要比较的每个项目的列数。如果您要比较日期,类别和数量,则会添加6个列,您可以将其命名为“分机日期,分机and分机号”。

要进行比较的工作表(我们称之为Comparison):

    A        B        C        D        E        F        G        H        I        J
 +--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+
1|Product |Int date|Int Cat |Int Vol |Ext date|Ext Cat |Ext Vol |Dif date|Dif Cat |Dif Vol |
 +--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+
2|Item1   |01/01/12|Cat1    |23      |vlookup1|vlookup2|        |        |        |        |
 |        |        |        |        |        |        |        |        |        |        |

找到外部数据的工作表(我们称之为External):

    A        B        C        D      
 +--------+--------+--------+--------+
1|Product |Ext date|Ext Cat |Ext Vol |
 +--------+--------+--------+--------+
2|Item1   |01/01/12|Cat1    |23      |
 |        |        |        |        |

在工作表E2的单元格Comparison中,您将放置:

=vlookup(A2, External!A:B, 2, false)

结果将是01/01/2012

代码的作用是在Item1的A列中查找External并返回第二列中的值(这是公式中2的目的)在它找到Item1的行中。只要第一列包含您要查找的值,并且您希望在该范围中包含的一列中返回的值,您就可以指定此公式中的任何范围(A:B)。例如,您可以编写=vlookup(A2, External!A:D, 2, false)并且它将返回相同的值,因为索引2在该范围内,它将不能与=vlookup(A2, External!A:D, 5, false)一起使用,因为D是第4列,如果这有意义吗?

在工作表F2的单元格Comparison中,您将放置:

=vlookup(A2, External!A:C, 3, false)

在单元格G2

=vlookup(A2, External!A:D, 4, false)
公式中的

false表示完全匹配。您也可以使用0代替;这是一回事。

然后,您可以将=B2=E2放入单元格H2中,以便比较日期或您正在使用的任何其他可能更合适的公式。

我希望它有所帮助! :)