Power Pivot Query中的dynamic参数

我们使用Excel 2013和Power Pivot来构build由多个数据透视表组成的模块,这些数据透视表都是从同一个Power Pivot表中提取数据的,这个数据表查询我们的T-SQL数据仓库。

为了简化和完全自动化这个模块,我们想创build一个允许用户input一个值的文本字段(例如客户端ID#),然后在Power Pivot中使用该值作为参数查询。

是否有可能传递Power Pivot查询中的参数,该参数位于查询之外的文本字段中?

为什么不使用数据透视表filter或限幅器来允许用户dynamic过滤数据,而不是将parameter passing给数据源SQL查询? 这比刷新源数据要快得多。

如果由于某种原因,你需要直接将这个传递给源查询, 你将不得不做一些VBA的工作。

您也可以将切片器或comboboxselect传递给单元格。 为该单元格定义一个名称。 把这个单元格(和其他如果你有多个文本variables使用)在一个表中。 为了方便起见,我通常将这个表格命名为“Parameters”。 然后,您可以将参数读入您的查询并将其放入查询语句中。

查询顶部的代码读取这些参数可能看起来像…

让Parameter_Table = Excel.CurrentWorkbook(){[Name =“Parameter”]} [Content],XXX_Value = Parameter_Table {1} [Value],YYY_Value = Parameter_Table {2} [Value],ZZZ_Value = Parameter_Table {3} ,

在你的查询之后,你可以用一个名为“BigDataCo”的手动input,而不是search,你可以用“XXX_Value”代替“BigDataCo”。

每次select不同的客户时刷新链接确实是一个非常缓慢的方法,但是这对我来说是有效的。