PowerQuery中如何强制任意类型字母数字字符串转大小写并去重
PowerQuery强制任意类型字母数字串转大小写的解决方案
核心思路:Text.Lower/Text.Upper仅支持文本类型输入,只需先将任意类型的值强制转为文本,再调用大小写转换函数即可,适配纯数字、纯字母、字母数字混合等所有可转文本的内容。
操作方法
图形界面操作(适合新手)
- 选中需要处理的属性编码列(示例中为「Activity ID」列),点击顶部「转换」选项卡→「数据类型」→选择「文本」,完成类型转换
- 继续在「转换」选项卡中点击「格式」→选择「小写」/「大写」,即可完成全列内容的大小写统一
- 后续直接执行「删除重复项」操作,即可识别业务层面的重复编码
M代码直接修改(适合需要批量/嵌套处理的场景)
不需要分步操作,直接嵌套函数一步完成转换:
- 统一转小写代码:
= Table.TransformColumns(源, {"Activity ID", each Text.Lower(Text.From(_)), type text})
- 统一转大写代码:
= Table.TransformColumns(源, {"Activity ID", each Text.Upper(Text.From(_)), type text})
代码说明
Text.From(_):将当前行的任意类型值强制转换为文本格式,兼容数字、混合串等所有合法内容- 尾部
type text:直接将处理后的列设置为文本类型,避免后续再次出现类型不匹配问题 - 如果需要兼容异常值(如特殊格式无法转文本的内容),可以增加容错逻辑:
each try Text.Lower(Text.From(_)) otherwise _,遇到异常值会直接保留原值不报错
示例效果
你提供的示例数据经过转小写+删除重复项处理后,即可得到预期结果:
| Activity | Activity ID |
|---|---|
| Apple | 1ca11 |
| Orange | 2dp23 |
内容的提问来源于stack exchange,提问作者Matt
相关产品推荐
相关产品推荐

