Power Query中简化Text.Contains多条件判断的代码优化问询
简化Power Query中多条件Text.Contains判断逻辑
你可以用数组+List.AnyTrue+List.Transform的组合来简化多条件判断,后续要加新关键词直接往数组里加就行,不用再加新的Text.Contains语句。
修改后的代码如下:
= Table.AddColumn( #"Renamed Columns", "Company Name", each if Text.Length([Person Surname]) > 20 or List.AnyTrue(List.Transform({"Ltd", "Limited", "LLP"}, (keyword) => Text.Contains([Person Surname], keyword))) then [Person Surname] else "" )
关键逻辑说明
- 定义关键词数组
{"Ltd", "Limited", "LLP"},后续新增判断条件直接在数组里追加元素即可 List.Transform遍历数组里的每个关键词,把每个关键词转换成对应的Text.Contains([Person Surname], keyword)判断结果(布尔值)List.AnyTrue检查转换后的布尔值列表,只要有一个为真就返回True,等价于原来多个or连接的逻辑
如果需要忽略大小写匹配(比如同时匹配"llp"和"LLP"),可以给Text.Contains加第三个参数:
List.AnyTrue(List.Transform({"Ltd", "Limited", "LLP"}, (keyword) => Text.Contains([Person Surname], keyword, Comparer.OrdinalIgnoreCase)))
内容的提问来源于stack exchange,提问作者Peter Mogford
相关产品推荐
相关产品推荐

