Excel:Power Query参数化
Power Query参数化
1)新建一个sheet,并插入table,并填写参数信息

1.1)修改表名称为Parameters(后续需要用到)

2)在 Power Query 编辑器中新建一个空查询

3)在空查询中填入以下代码,并重命名该查询为fnGetParameter(后续会用到)

代码:
= (ParameterName as text) =>
let
ParamSource = Excel.CurrentWorkbook(){[Name="Parameters"]}[Content],
ParamRow = Table.SelectRows(ParamSource, each ([Key] = ParameterName)),
Value =
if Table.IsEmpty(ParamRow)=true
then null
else Record.Field(ParamRow{0},"Value")
in
Value
注意:
- 第2行,[Name="Parameters"]中的
Parameters需要对应表名 - 第4行,[Key]中的
Key对应表的第一列的名称 - 第8行,(ParamRow{0},"Value")中的
Value对应表的第二列的名称
4)在需要用到的查询中,通过"& fnGetParameter("xxxxx") &"替换参数,其中xxxxx为想要的Key名称,如:

= Odbc.Query("dsn=gsol-sit-utf8", "SELECT lang_code,count(0) FROM isearch_grp.etrack_source WHERE #(lf)request_time >= to_date('"&fnGetParameter("start_date")&"','yyyy/MM/dd HH24:mi:ss')#(lf)and request_time < to_date('"&fnGetParameter("end_date")&"','yyyy/MM/dd HH24:mi:ss')#(lf)GROUP BY lang_code;")
5)后续只需要修改Parameters表格的参数,再执行刷新数据即可

参考链接
- https://superuser.com/questions/1303378/use-a-cell-value-for-a-paramater-value-using-in-power-query
- https://www.qiniu.com/qfans/qnso-71504398
- https://superuser.com/questions/1531052/use-excel-cell-reference-parameterize-in-sql-query-to-local-sql-server
- https://excelguru.ca/building-a-parameter-table-for-power-query/
- https://community.powerbi.com/t5/Power-Query/Excel-CurrentWorkbook-sees-a-table-that-is-not-visible-in-the/td-p/2180368

浙公网安备 33010602011771号