如何有条件地合并/加入 Excel 工作表?

Posted

技术标签:

【中文标题】如何有条件地合并/加入 Excel 工作表?【英文标题】:How to conditionally merge/join excel worksheets? 【发布时间】:2013-01-16 04:54:58 【问题描述】:
+---------+---------+  +---------+--------------+  +---------+-------------+
+ country + widgets +  + country + frammis rods +  + country + comex gears +
+---------+---------+  +---------+--------------+  +---------+-------------+
+ alpha   +       1 +  + bravo   +            8 +  + charlie +          18 +
+ bravo   +       3 +  + charlie +           16 +  + delta   +           9 +
+ charlie +       7 +  + delta   +           32 +  +---------+-------------+
+ delta   +      11 +  +---------+--------------+
+---------+---------+

我在同一个电子表格中有多个类似 ^^^ 的 Excel 工作表。我正在尝试创建一个包含合并数据的新工作表,其中仅显示具有所有工作表类别中的数据的国家/地区。

例如,

+---------+---------+--------------+-------------+
+ country + widgets + frammis rods + comex gears +
+---------+---------+--------------+-------------+
+ charlie +       7 +           16 +          18 +
+ delta   +      11 +           32 +           9 +
+---------+---------+--------------+-------------+

随着各种工作表的更新/新工作表的添加,我正在寻找一种相当简单、灵活的方式来执行此操作。我知道如何在 mysql 中执行此操作,但我不确定在 excel 中是否可行。

那么,专家们有什么要说的呢?

提前谢谢。 :)

【问题讨论】:

如果您想要新工作表的灵活性,您可能需要创建一个过程来循环您的工作表并将任何新的国家/地区名称添加到您的主(合并)工作表中。获得合并的工作表后,您可以使用 Excel 的广泛公式从每个工作表中获取所需的数据。如果您最终添加了一张新的“部分”,则您必须让程序也添加该部分。 +1 Scott - 在 VBA 或 VBA plus 公式中完全可能,前提是您的表格具有一致的标题,但您必须编写该代码。没有用于此的内置工具。 I have several Excel worksheets like these ^^^ within the same spreadsheet. 我想你的意思是在同一个Workbook 内?您可以使用.Find.Offset 从相关国家/地区检索数据。在第 4 节http://siddharthrout.wordpress.com/2011/07/14/find-and-findnext-in-excel-vba/ 中可以看到一个小例子 根据数据集的大小,您可能会发现.find 非常慢。 【参考方案1】:

首先,感谢@MikeD 撰写了关于使用数据透视表的解决方案的精彩文章。我确实设法让它在 Excel 2007 中工作。

但是,我决定使用 SQL 查询,因为它的速度要快得多。 (是的,您可以使用 SQL 来合并工作表。太好了!)

1) 数据 --> 来自其他来源 --> 来自 Microsoft Query

2) 选择数据源 --> Excel 文件* --> 选中“使用查询向导创建/编辑查询”

3) 选择工作簿

4) 选择您想要的列 --> 点击下一步 --> 在弹出警告您需要设置手动加入时点击“确定”

5)在“Microsoft Query”窗口-->表格-->联接

6)点击“返回数据”图标

7) 导入数据 --> CTL + 单击重复项的列标题(例如,“Country2”、“Country3”)--> 右键单击​​ - -> “隐藏”

8)

【讨论】:

如果第 4 步中没有表可见,请点击“选项”并勾选“系统表”【参考方案2】:

我建议使用具有多个合并范围的数据透视表。 (至少在 2010 年)无论工作表是在同一个工作簿中还是在不同的工作簿中(见图)

提示:在 Excel 2010 中按 Alt-D,然后按 P 以访问 2003 像数据透视表向导。

没有页面字段

不要忘记要求 SUM 而不是 COUNT(任何值单元格 --> 右键单击​​ --> 汇总值)

要达到您的最终布局,在数据透视表上方添加一个额外的标题行(深蓝色 A、B;C、...),创建一个自动过滤器并过滤所有列中的非空白

ta-taaaaa!

【讨论】:

哇!非常感谢您的详细撰写!我最终使用了 SQL,但由于您的帖子,我学到了很多关于数据透视表的知识,我相信将来会派上用场。 (: @phpwns 我的荣幸;根据您在数据透视表上方设置过滤器的方式,您将获得“外部联接”和“内部联接”;-) 是的,它与 excel '07 中的一些细微变化完美配合。将我的数据更新为数据透视表只用了大约 4 秒,而使用 SQL 不到一秒(我正在合并 400 多列)。

以上是关于如何有条件地合并/加入 Excel 工作表?的主要内容,如果未能解决你的问题,请参考以下文章

excel多个表格合并成一个工作表的方法

如何将多个Excel工作表合并至一张Excel表格内?

如何将一个 Excel 工作簿中的多个工作表合并成一个工作表?

在excel中如何将第一个工作表中的数据求和汇总到另一个表中

如何将EXCEL中二个工作表的内容引用并合并到一个工作表中?

【OFFICE 365】Power Query 合并工作表