You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于Excel单元格值动态筛选Power Query中的country_name列(空值时不应用筛选)

如何基于Excel单元格值动态筛选Power Query中的country_name列(空值时不应用筛选)

嗨,看起来你需要实现一个灵活的动态筛选需求——根据Excel单元格的值过滤Power Query里的country_name列,而且单元格为空时就跳过这个筛选对吧?我来帮你调整代码,完美实现这个逻辑:

步骤1:读取Excel单元格的筛选值

首先你得在Power Query里获取目标单元格的值,假设你的筛选值放在Sheet1的A1单元格(如果实际位置不同,替换成你的工作表名和列名即可)。我们先定义一个变量来存储这个值:

CountryFilter = Excel.CurrentWorkbook(){[Name="Sheet1"]}[Content]{0}[Column1]

小提示:如果你的单元格所在列有自定义列名(比如把A列命名为"CountryFilter"),就把[Column1]换成[CountryFilter];如果担心用户输入空格,还可以用Text.Trim()处理:CountryFilter = Text.Trim(Excel.CurrentWorkbook(){[Name="Sheet1"]}[Content]{0}[Column1]),这样空白或空格都会被当成空值处理。

步骤2:修改现有代码,添加动态筛选逻辑

接下来,在你现有的#"Filtered Rows"步骤之后,添加一个动态筛选的步骤。核心逻辑很简单:如果单元格值为空,就直接保留之前的筛选结果;如果有值,就过滤出country_name匹配的行。

修改后的完整代码如下:

let
    Source = OData.Feed("https://data.woodmac.com/query/upstream_weekly/imp-met/odata", null, [Implementation="2.0"]),
    field_company_net_annual_production_kbd_table = Source{[Name="field_company_net_annual_production_kbd",Signature="table"]}[Data],
    #"Filtered Rows" = Table.SelectRows(field_company_net_annual_production_kbd_table, each ([year] = 2024) and ([field_is_top_level] = "Y")),
    // 读取Excel单元格的筛选值
    CountryFilter = Excel.CurrentWorkbook(){[Name="Sheet1"]}[Content]{0}[Column1],
    // 动态筛选country_name列:空值时跳过筛选
    #"Filtered Country" = if CountryFilter = null or CountryFilter = "" then #"Filtered Rows" else Table.SelectRows(#"Filtered Rows", each [country_name] = CountryFilter),
    #"Removed Columns" = Table.RemoveColumns(#"Filtered Country",{"id_field_company_metrics", "id_field", "id_field_group", "field_is_top_level", "field_is_discovery", "id_country", "i..."})
in
    #"Removed Columns"

代码逻辑说明

  • 我们先把单元格的值读取到CountryFilter变量中
  • 用if...else做判断:如果CountryFilter是null或者空白字符串,就直接使用之前的#"Filtered Rows"结果;否则就筛选出country_name等于CountryFilter的行
  • 最后让后续的Removed Columns步骤基于新的筛选结果表#"Filtered Country"来执行

这样调整后,你的Power Query就会根据单元格内容自动切换筛选状态啦!

备注:内容来源于stack exchange,提问作者James Dunn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 03:44:28