Gri*_*fin 8 database spreadsheet sql microsoft-excel microsoft-excel-2013
我想弄清楚是否有办法在将 SQL Server 连接中的数据导入 Excel 之前对其进行过滤。初始导入无关紧要(建立连接时),但我需要 Excel 在随后打开时几乎没有数据,并且只有在选择参数后才导入相关数据。SQL 表可能有大量数据,性能是一个问题。
因此,如果我将数据导入表中,则应用过滤器,例如 Country 为 UK,关闭文件并在下周再次打开它,理想情况下它应该只查询和导入 UK 的数据。当我选择另一个国家时,它应该单独导入该国家/地区的数据。我需要从表中列举的选择。
现在,我不相信表格有这种能力。但是切片器、数据透视表、PowerView 或 PowerPivot 怎么样?
欣赏任何想法。
您绝对可以使用 Tables 以及 Powerpivot 和 Data Explorer 做到这一点。目前最简单也是我首选的方法是在 Excel 中创建参数化查询。为此,请使用查询向导并在最后为要传递的每个参数添加约束。完成此操作后,您可以编辑连接属性并分配要作为静态值、对话框或电子表格单元格返回的参数。
Data>Other Sources>Microsoft Query.Data Source,在此处选择您的 SQL 数据源。在到达Finish窗口之前,我通常会将所有这些选项留空,然后我会选择View data or edit query in MS Query.
Show/Hide Criteria button并选择一个条件字段。这将调用您的参数传递回 SQL。
我经常会根据从参数化查询提供的表来创建数据透视表,以返回自动更新的特定日期范围(例如前 6 个月)的值。
编辑: 要返回多个值以在 SQL IN 子句中使用,您只需修改 MS 查询框中的条件窗口。例如,如果您有一个 Country 字段名称,请在 Criteria 字段中选择它,然后为值输入 IN([First],[Second],[Third])。选择 Return Data to Excel,MS Query 将要求手动输入值。回到 Excel 后,您可以再次修改参数,并将它们指向电子表格中的三个单元格,每个单元格都可以通过数据验证进行约束。虽然您可以像这样传递多少个参数可能有限制,但 Excel 可以轻松处理三个,因此不可能再增加几个。