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
