我有一个包含 20 多张工作表的 Excel 文档,所有这些工作表都使用相同的 SQL 视图,但它们对于显示的内容有不同的标准,我能使其工作的唯一方法是建立 20 个不同的连接,每个连接都有自己的 SQL 查询。
但是如果需要更新视图,我必须更新每一张表,而且由于我有 7 个这样的文档,这会花费很长时间并且很容易出错。
那么有没有办法在不同的表格之间共享一个连接,然后向每个表格添加额外的 SQL 查询来指定每个表格上显示的内容?
答案1
我不相信这是可能的,因为 Excel 缓存从 SQL 中提取的数据的方式不同。通常,在类似情况下,我会将我需要的所有内容从 SQL 中提取到“数据”工作表中,然后将其分发到使用“数据”工作表作为数据源的“焦点”工作表中。您可以将数据提取到数据透视表中,或使用命名范围,或直接提取到图表中 - 无论您的需求是什么。
如果你有 Excel 2010,可能值得考虑的另外两个选项是电源枢轴和数据探索器。这些来自 MS 的免费插件为将数据从 SQL(和其他数据源)提取到 Excel 提供了几乎无限的灵活性。
编辑: 从头开始,尝试一下:
- 将工作表重命名为数据。
- 添加您的数据。数据>现有连接。
- 选择您的计算机上适当的 SQL 连接文件。
- 在选择表对话框中,找到您的 SQL 视图(它们应该显示在表之前,并且具有略微不同的图标)。
- 在导入数据对话框中,选择表格(默认),然后选择属性按钮。
- 在“定义”选项卡上,将命令类型从“表”更改为“SQL”。
- 在命令文本框中,将 SQL 更改为类似以下内容:Select * From myview,然后单击确定。
- 在弹出的对话框中选择“是”。
- 返回“导入数据”对话框,现在选择“确定”。
- 使用此新表可在任意数量的工作表上创建任意数量的数据透视表。然后可以独立地筛选、组织和排序这些数据透视表。
- 如果您确实想在数据透视表之间共享一些过滤器(例如日期),那么您可以设置连接到所有相关数据透视表的切片器,然后这些切片器将共享类似的日期过滤器,但在其他方面是独立的。
答案2
您可以使用查询工具。我遇到了几乎相同的问题,查询工具允许我过滤主数据集并创建单独的可刷新选项卡。