如何在Power Query中筛选文本列表,提取多个指定词汇?
在Power Query中筛选列表多个指定项的解决方案
核心实现思路
用List.Select结合List.Contains即可实现多值筛选——把你要保留的项做成一个列表,通过List.Contains判断原列表的每一项是否在保留列表内,符合条件的项会被List.Select保留。
基础示例代码
假设你有原列表{"Apple", "Pear", "Orange", "Banana"},要提取"Apple"和"Banana":
let 原列表 = {"Apple", "Pear", "Orange", "Banana"}, 目标保留项 = {"Apple", "Banana"}, 筛选后新列表 = List.Select(原列表, each List.Contains(目标保留项, _)) in 筛选后新列表
结合Table.ColumnNames的实际场景
如果你的列表是从数据表列名转换而来,直接替换原列表为Table.ColumnNames的结果即可:
let 数据源 = 你的数据表名称, 列名列表 = Table.ColumnNames(数据源), 要保留的列名 = {"Apple", "Banana"}, 筛选后列名列表 = List.Select(列名列表, each List.Contains(要保留的列名, _)) in 筛选后列名列表
可选:忽略大小写的筛选
如果需要不区分大小写匹配(比如原列表有"apple"但你要保留的是"Apple"),可以统一转换为小写后再判断:
let 原列表 = {"Apple", "pear", "Orange", "banana"}, 目标保留项 = {"Apple", "Banana"}, 标准化保留项 = List.Transform(目标保留项, Text.Lower), 筛选后新列表 = List.Select(原列表, each List.Contains(标准化保留项, Text.Lower(_))) in 筛选后新列表
内容的提问来源于stack exchange,提问作者Deer5432
相关产品推荐
相关产品推荐

