Excel PowerQuery配置动态日期参数,实现工作表下拉筛选
实现PowerQuery动态日期筛选(通过工作表下拉菜单)
嘿,这个需求我之前帮同事搞定过,挺实用的,给你一步步拆解怎么做:
第一步:在工作表中设置筛选参数
- 先找个空白区域,比如Sheet1的A1单元格输入「选择日期」当标题,旁边的B1作为参数单元格(用来放用户选的日期)。
- 为了让用户选起来更顺手,给B1加个数据验证:选中B1 → 菜单栏「数据」→「数据验证」→ 允许选「序列」,来源可以填你数据里所有
Month Year的唯一值(或者手动输入可选的年月,比如2016/11/1,2017/12/1),这样就能下拉选日期了。
第二步:修改PowerQuery代码读取动态参数
把你原来的固定日期代码改成读取工作表参数单元格的值,修改后的代码如下:
let // 读取工作表中的动态日期参数 DateParam = Excel.CurrentWorkbook(){[Name="Sheet1"]}[Content]{0}[Column2], // 注意:Sheet1是你的工作表名,{0}是参数所在行(从0开始计数,第一行是0),Column2对应B列 Source = Excel.CurrentWorkbook(){[Name="Query1"]}[Content], #"Changed Type" = Table.TransformColumnTypes(Source,{{"Month Year", type date}}), // 用动态参数筛选数据 #"Custom Step" = Table.SelectRows(#"Changed Type", each [Month Year] = DateParam) in #"Custom Step"
- 要是你的参数单元格位置不是Sheet1的B1,记得对应调整:
[Name="Sheet1"]替换成你的实际工作表名称{0}是参数所在的行号(比如参数在第3行,就改成{2})[Column2]是参数所在的列(A列是Column1,C列是Column3,以此类推)
第三步:设置自动刷新(可选)
默认选完日期后得手动刷新查询,要是想让它自动刷新:
- 右键左侧「查询」面板里的这个查询 → 选「属性」
- 在弹出的窗口里勾选「刷新时打开文件」和「允许后台刷新」
- 要是追求更丝滑的体验,还可以给下拉单元格加个简单的VBA宏,选完自动触发刷新,不过手动刷新其实也够用啦。
内容的提问来源于stack exchange,提问作者SUMguy
相关产品推荐
相关产品推荐

