Power Query/Power BI M 实现多缩写词的文本匹配、筛选及结果提取
Power BI M语言实现缩写词匹配筛选方案
该需求可以通过Power Query M语言原生功能实现,无需额外插件,具体实现步骤如下:
前置准备
- 首先将你的目标缩写词列表转换为M语言的列表格式,若你拿到的是逗号分隔的字符串,可通过以下代码处理:
// 示例缩写词字符串转列表,你可以替换为自己的数据源 TargetAcronyms = List.Transform(Text.Split("AAA, BBB, XXXX, YYY", ","), each Text.Trim(_)) - 确认你的源数据表已导入Power Query,且包含需要匹配的文本描述字段(示例中字段名为
描述字段,可替换为你的实际字段名)
步骤1:新增自定义列提取匹配缩写
在源数据表中添加自定义列,列名可设为匹配到的缩写词,使用如下公式:
Text.Combine( List.Select( TargetAcronyms, (acr) => Text.Contains([描述字段], acr, Comparer.OrdinalIgnoreCase) ), ", " )
参数说明:
Comparer.OrdinalIgnoreCase代表忽略大小写匹配,若需要严格区分大小写可删除该参数。
若需要精确整词匹配(避免缩写为AAA时,文本中AAAA也被误识别),可改用正则匹配的公式:Text.Combine( List.Select( TargetAcronyms, (acr) => Text.Regex.IsMatch([描述字段], "\b" & Text.RegexEscape(acr) & "\b", RegexOptions.IgnoreCase) ), ", " )
步骤2:筛选包含匹配缩写的记录
添加筛选步骤,保留匹配到的缩写词列不为空的行即可,对应M代码示例:
FilteredTable = Table.SelectRows(上一步骤名称, each [匹配到的缩写词] <> "")
特殊场景适配
你示例中描述字段包含<strong>这类HTML标签不影响匹配逻辑,M的文本匹配函数会直接检索标签内的文本内容,无需额外预处理标签。
内容的提问来源于stack exchange,提问作者Gregory Dvorkin
相关产品推荐
相关产品推荐

