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

如何循环多列执行Text.Contains,无需编写17条if条件语句?

解决方案(Power Query M语言)

不用写17条重复的if语句,直接通过遍历当前行的所有列值来筛选包含"SSD"的数据,具体实现方式如下:

1. 提取所有包含"SSD"的列值(返回列表)

添加自定义列时使用以下代码,会把当前行所有含"SSD"的内容放到一个列表里:

each List.Select(Record.ToList(_), (x) => Text.Contains(x, "SSD"))
  • Record.ToList(_):把当前行的所有列值转换成一个列表
  • List.Select(..., (x) => Text.Contains(x, "SSD")):筛选列表中包含"SSD"的元素

2. 提取第一个包含"SSD"的列值(返回单个值)

如果只需要第一个匹配的结果,用List.First取列表的第一个元素,没有匹配项时返回null:

each List.First(List.Select(Record.ToList(_), (x) => Text.Contains(x, "SSD")), null)

3. 将所有匹配结果合并为字符串

如果想把多个匹配结果合并成一个逗号分隔的字符串,加上Text.Combine:

each Text.Combine(List.Select(Record.ToList(_), (x) => Text.Contains(x, "SSD")), ", ")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 08:12:04