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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~