Excel:Power Query参数化

Power Query参数化

1)新建一个sheet,并插入table,并填写参数信息

image-20230203173621511

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

image-20230203174002753

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

image-20230203173746747

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

image-20230203174445967

代码:

= (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名称,如:

image-20230203174627441

= 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表格的参数,再执行刷新数据即可

image-20230203174844610

参考链接

posted @ 2023-02-03 17:52  Feng1024  阅读(769)  评论(0)    收藏  举报