Power Pivot 查询中的动态参数
Dynamic Parameter in Power Pivot Query
我们正在使用 Excel 2013 和 Power Pivot 构建由多个 Pivot table 组成的模块,这些模块都从同一个 Power Pivot table 中提取数据,它查询我们的T-SQL 数据仓库。
为了简化和完全自动化该模块,我们想创建一个允许用户输入值(例如客户端 ID#)的文本字段,然后将该值用作Power Pivot 查询中的参数。
是否可以在 Power Pivot 查询中传递参数,该参数位于查询外部的文本字段中?
与其将参数传递给数据源 SQL 查询,不如利用数据透视表 table filter or slicer 来允许用户动态过滤数据?这比从源头刷新数据要快得多。
如果出于某种原因您需要将其直接传递给源查询,you'll have to do some VBA work.
您还可以将切片器或组合框选择传递给单元格。为该单元格定义一个名称。将该单元格(以及其他单元格,如果您要使用多个文本变量)放在 table 中。为了方便起见,我通常将其命名为table"Parameters"。然后,您可以 'read in' 查询参数并将它们放入查询语句中。
查询顶部用于读取这些参数的代码可能类似于...
让
Parameter_Table = Excel.CurrentWorkbook(){[名称="Parameter"]}[内容],
XXX_Value = Parameter_Table{1}[值],
YYY_Value = Parameter_Table{2}[值],
ZZZ_Value = Parameter_Table{3}[值],
后面是您的查询,其中不是搜索,而是手动输入名为 "BigDataCo" 的客户,您会将 "BigDataCo" 替换为 XXX_Value。
每次选择不同的客户时刷新 link 确实是一个非常缓慢的方法,但这对我有用。
我们正在使用 Excel 2013 和 Power Pivot 构建由多个 Pivot table 组成的模块,这些模块都从同一个 Power Pivot table 中提取数据,它查询我们的T-SQL 数据仓库。
为了简化和完全自动化该模块,我们想创建一个允许用户输入值(例如客户端 ID#)的文本字段,然后将该值用作Power Pivot 查询中的参数。
是否可以在 Power Pivot 查询中传递参数,该参数位于查询外部的文本字段中?
与其将参数传递给数据源 SQL 查询,不如利用数据透视表 table filter or slicer 来允许用户动态过滤数据?这比从源头刷新数据要快得多。
如果出于某种原因您需要将其直接传递给源查询,you'll have to do some VBA work.
您还可以将切片器或组合框选择传递给单元格。为该单元格定义一个名称。将该单元格(以及其他单元格,如果您要使用多个文本变量)放在 table 中。为了方便起见,我通常将其命名为table"Parameters"。然后,您可以 'read in' 查询参数并将它们放入查询语句中。
查询顶部用于读取这些参数的代码可能类似于...
让 Parameter_Table = Excel.CurrentWorkbook(){[名称="Parameter"]}[内容], XXX_Value = Parameter_Table{1}[值], YYY_Value = Parameter_Table{2}[值], ZZZ_Value = Parameter_Table{3}[值],
后面是您的查询,其中不是搜索,而是手动输入名为 "BigDataCo" 的客户,您会将 "BigDataCo" 替换为 XXX_Value。
每次选择不同的客户时刷新 link 确实是一个非常缓慢的方法,但这对我有用。