首页 文章

在Power Query M函数中声明变量

提问于
浏览
1

我试图在Power Query中创建一个可重用的函数,将由几个表使用 .

这很好用(用空白查询编写):

let
    is_emergency = (color as text) => 
    if color = "red" or color = "orange" then 
       "emergency" 
    else 
        "not emergency"  
in
    is_emergency

我可以使用像这样的自定义列来调用它 =emergency([color_column]) .

但是 - 我的颜色列包含很多额外的空格,因此我需要在color-parameter上调用 Text.Trim() . 怎么写这个?

我认为可行的只是写这个:

let
    is_emergency = (color as text) =>
    color = Text.Trim(color, " "),
    if color = "red" or color = "orange" then 
       "emergency" 
    else 
        "not emergency"  
in
    is_emergency

但这给了我错误 Token Literal Expected .

怎么写得对吗?我知道我可以使用Power Query GUI来创建这样的简单函数,但我的实际案例更高级,我想了解 M 语法 .

1 回答

  • 1

    经过一番研究,我设法自己解决了这个问题 .

    let
        is_emergency = (color as text) =>
        // you need to put the variable declaration inside a new let - in
        let 
            trimmed_color = Text.Trim(color, " "), 
            // you also need to define the return value and return it in the new let - in
            return_value = if trimmed_color = "red" or trimmed_color = "orange" then 
                "emergency" 
            else 
                "not emergency"
        in
            return_value
    in
        is_emergency
    

相关问题