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

Excel Power Query中如何编写IF公式实现文本包含条件判断

Power Query 匹配指定文本返回对应值的正确写法

Power Query使用的是M公式语法,和Excel普通工作表函数的规则完全不同,直接套用工作表IF的写法必然报错,可直接用下面的方案实现需求:

方案1:新增自定义列(最常用)

操作步骤:

  • 选中需要处理的表,点击顶部菜单栏「添加列」>「自定义列」
  • 在弹出的自定义列配置窗口中,将公式输入框内的默认内容替换为以下公式,注意把[待判断列名]替换为你实际要检查的列的真实名称:
if Text.Contains([待判断列名], "guy") then "male" else "female"
  • 确认新列名设置无误后点击确定,即可生成你需要的结果列

如果你需要忽略大小写匹配(即同时识别Guy、GUY、gUy等不同大小写形式的"guy"),把公式替换为以下版本即可:

if Text.Contains([待判断列名], "guy", Comparer.OrdinalIgnoreCase) then "male" else "female"

方案2:直接修改原有列的值

如果你不需要保留原列内容,可以直接对原有列做转换,不用新增列:

  • 点击顶部菜单栏「转换」>「高级编辑器」
  • 找到对应表的处理步骤,添加列转换逻辑,示例代码如下(假设你的数据源步骤名为Source,待修改的列名为用户备注):
= Table.TransformColumns(Source, {"用户备注", each if Text.Contains(_, "guy") then "male" else "female"})
  • 点击完成即可直接把原列内容替换为判断后的结果

常见语法踩坑提醒

  • M公式中if/then/else必须全部为小写,不能写成Excel函数式的大写IF
  • 所有文本值必须使用英文双引号包裹,不能用单引号、中文引号
  • 引用列时必须将列名放在方括号[]内,直接写列名会触发识别错误

内容的提问来源于stack exchange,提问作者0726

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 22:18:37