我们有几个 Excel 文件,其中包含具有相同结构的大型数据透视表
例如
文件A
数据透视表(字段 A、B、C)
文件 B
数据透视表(字段 A、B、C)
我们想将它们合并为 1 个数据透视表 (A、B、C)。只是想知道我们可以用哪些方法来实现吗?
手动方式:打开一个新的空白表,复制并粘贴数据透视表,然后再次创建数据透视表
自动化方式:是否有一些工具可以做到这一点?
谢谢
答案1
这是我用来解决这个问题的方法:
将这些 Excel 文件(具有相同结构的数据透视表)转换为 CSV
导入到一些 MSSQL DB
在我的合并 Excel 中,我仅使用 MSSQL 作为它的外部数据源
虽然有点手动,但这是我目前知道的最好的方法:)
欢迎任何其他建议
答案2
我从未找到使用多于 1 个数据透视表作为输入来创建新数据透视表的方法。如果要合并,则必须返回源数据并创建一个全新的数据透视表。如果数据位于多张工作表中或太大而无法放在一张工作表中,则会遇到问题。
我有一个我使用的工作簿解决这个问题。如果您启用了宏,它将创建一个临时菜单栏项(在 Excel 2007 中,它出现在“加载项”下),允许您选择任意数量的工作簿作为单个合并数据透视表的输入。除非您在设置表的适当标记部分中指定所需的字段,否则数据透视表没有任何默认布局。希望它非常容易理解,我已将其提供给不同的人,主要是为了帮助他们解决 2007 年之前版本的 Excel 中 65,000 行的限制。我已使用它从组合的 > 550,000 行数据中创建数据透视表。也许您可以使用它。
我喜欢它的一点是,您可以从同一源数据创建多个数据透视表 - 使用“创建数据透视表”宏创建的所有数据透视表共享相同的数据透视表缓存。创建第一个数据透视表后,创建更多数据透视表只会增加很小的文件大小。
答案3
这可能有点晚了,但你可以做什么:
创建链接到外部数据源的数据透视表:
数据源=访问文件。不要使用此向导,使用 ms 查询。在那里您可以创建一个查询,将多个表组合为数据源并将它们组合成一个表。您永远不会在 excel 中看到实际的查询输出,但数据透视表将基于它。
数据源 = excel 文件。将文件选择器指向其自身(=您正在使用的 excel 文件),然后您可以将所有命名范围用作表格并执行其余操作,就像使用 Access 作为数据源一样。为此,您需要将所有输入数据放入命名范围中,其中第一行是列标题。警告:如果您重命名文件或另存为不同的文件,则需要重新执行数据透视表的底层查询,因为数据源不是动态的。我认为也可以直接使用数据透视表或查询表或两者作为输入源,而无需通过命名范围,但这可能需要 vba。