Power Query Switch函数:数据转换与条件判断

Power Query Switch函数:数据转换与条件判断

1. Switch函数概述

Power Query中的`Switch`函数是一种强大的条件判断工具,允许用户根据不同的输入值返回对应的结果。其语法类似于Excel中的`SWITCH`函数,但专为M语言设计,适用于数据清洗、转换和逻辑分支处理。

核心语法
“`powerquery
Switch(
输入表达式,
值1, 结果1,
值2, 结果2,
…,
[默认结果]
)
“`

重点内容
– 支持多条件匹配,按顺序执行,首次匹配成功后立即返回结果
– 若未匹配且未指定默认值,返回`null`。

2. 实际应用案例

案例1:分类产品等级

场景:根据销售额区间自动标注产品等级(A/B/C)。

“`powerquery
let
SalesData = Table.FromRecords({
[Product=”P1″, Sales=1200],
[Product=”P2″, Sales=800],
[Product=”P3″, Sales=300]
}),
AddGrade = Table.AddColumn(SalesData, “Grade”, each Switch(
[Sales],
1000, “A”,
500, “B”,
200, “C”,
“Unknown”
))
in
AddGrade
“`

输出结果
| Product | Sales | Grade |
|———|——-|———|
| P1 | 1200 | A |
| P2 | 800 | B |
| P3 | 300 | C |

案例2:动态映射地区代码

场景:将省份缩写转换为全称,未匹配时保留原值。

“`powerquery
let
RegionData = Table.FromRecords({
[Code=”BJ”, Value=100],
[Code=”SH”, Value=200],
[Code=”GZ”, Value=150]
}),
FullName = Table.AddColumn(RegionData, “Region”, each Switch(
[Code],
“BJ”, “Beijing”,
“SH”, “Shanghai”,
“GZ”, “Guangzhou”,
[Code] // 默认返回原Code值
))
in
FullName
“`

输出结果
| Code | Value | Region |
|——|——-|————|
| BJ | 100 | Beijing |
| SH | 200 | Shanghai |
| GZ | 150 | Guangzhou |

3. 注意事项

1. 性能优化:`Switch`按顺序匹配,高频条件应放在前面以减少计算量。
2. 嵌套使用:可与其他函数(如`if…then…else`)结合处理复杂逻辑。
3. 错误处理:建议始终指定默认值,避免意外`null`。

4. 总结

Power Query的`Switch`函数是数据转换中的高效工具,尤其适合多条件映射场景。通过实际案例可见,它能显著简化代码逻辑,提升可读性。掌握其用法后,可大幅优化ETL流程。

进一步学习:尝试在动态参数或自定义函数中嵌套`Switch`,实现更灵活的数据处理!

原文链接:https://www.g7games.com/51004.html 。如若转载,请注明出处:https://www.g7games.com/51004.html

(0)
G7G7
上一篇 2025年6月9日 下午8:04
下一篇 2025年6月9日 下午8:04

相关推荐

联系我们

QQ:726419713
关注微信