Power Query条件字符串长度处理:基于产品列修改现有Label列
Power Query嵌套IF实现Label列条件字符串截断(清理软件版本号)
正确实现代码(直接修改原Label列)
在Power Query编辑器中,选中Label列后,直接在公式栏替换原列的表达式,使用以下嵌套IF逻辑的M语言代码:
= Table.TransformColumns(源, {{"Label", each if [Product] = "Apple" or [Product] = "Nokia" then Text.Start(_, 5) else if [Product] = "Samsung" then Text.Start(_, 6) else _}})
代码逻辑说明
- 外层IF优先判断
Product是否为Apple或Nokia:满足条件时用Text.Start(_,5)截取Label前5个字符 - 不满足则进入内层IF,判断是否为Samsung:满足条件时用
Text.Start(_,6)截取前6个字符 - 以上条件都不满足时,直接保留Label原内容
_ - 整个逻辑通过嵌套IF一步完成,直接修改原Label列,无需新建辅助列
示例验证
原始数据:
| Product | Label |
|---|---|
| Apple | 1234567890 |
| Nokia | v2.3.4-build |
| Samsung | SM-G998U1.2 |
| Pixel5_2024 |
执行代码后的期望输出:
| Product | Label |
|---|---|
| Apple | 12345 |
| Nokia | v2.3. |
| Samsung | SM-G998 |
| Pixel5_2024 |
常见错误点规避
- OR条件写法错误:Power Query中逻辑或用
or而非||,不要写成[Product] = "Apple" || [Product] = "Nokia" - 列引用错误:判断时必须正确引用
[Product]列,不能遗漏方括号 - Text.Start参数顺序:第一个参数为要截取的文本(这里用
_代表当前Label列的值),第二个参数为截取长度
内容的提问来源于stack exchange,提问作者Martin_
相关产品推荐
相关产品推荐

