You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何简化Power Query中多条件IF THEN语句的编写?

简化Power Query多值匹配的几种方法

嘿,这个问题我太懂了!之前写Power Query的时候也被嵌套if搞得头大,给你几个更简洁的实现思路,绝对能解决你后续扩展的问题:

方法1:用List.Contains快速判断(最适合当前场景)

把需要匹配的所有值放进一个列表,用List.Contains一次性判断是否在列表内,代码瞬间简洁,后续加新值只要往列表里加就行:

Table.AddColumn(#"Added cluster_rating", "rating", each if List.Contains({"1", "2", "3"}, [variable_text1]) then "1-3" else null)

方法2:用switch表达式(适合多组匹配规则)

如果之后需要扩展更多匹配规则(比如不同取值对应不同评级),Power Query的switch语法可读性更强,支持多值匹配同一结果:

Table.AddColumn(#"Added cluster_rating", "rating", each 
    switch [variable_text1]
        case "1", "2", "3" => "1-3"
        // 可以轻松扩展其他规则,比如:
        // case "4", "5", "6" => "4-6"
        else null
)

方法3:用查找表匹配(适合大量规则的场景)

如果需要匹配的值特别多,甚至规则需要经常修改,建议把规则单独做成一个查找表,和业务逻辑分离,维护起来更方便:

let
    // 第一步:定义匹配规则表
    RatingRules = #table(
        {"variable_value", "rating"},
        {
            {"1", "1-3"},
            {"2", "1-3"},
            {"3", "1-3"},
            // 后续加规则直接在这里新增行即可
            {"4", "4-6"},
            {"5", "4-6"}
        }
    ),
    // 第二步:给原表添加匹配后的rating列
    AddedRating = Table.AddColumn(#"Added cluster_rating", "rating", each 
        Table.Lookup(RatingRules, "variable_value", [variable_text1], "rating")
    )
in
    AddedRating

内容的提问来源于stack exchange,提问作者Crysis85

火山引擎 最新活动