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