Powerbi 在powerquerym函数中声明变量

Powerbi 在powerquerym函数中声明变量,powerbi,powerquery,m,Powerbi,Powerquery,M,我试图在powerquery中创建一个可重用的函数,该函数将由多个表使用 这很有效(用空白查询编写): 我可以使用这样的自定义列来调用它=emergency([color\u column]) 但是-我的颜色列包含很多额外的空格,因此我需要调用color参数上的Text.Trim()。这个怎么写 我认为写下这句话是可行的: let is_emergency = (color as text) => color = Text.Trim(color, " "), if

我试图在powerquery中创建一个可重用的函数,该函数将由多个表使用

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

我可以使用这样的自定义列来调用它
=emergency([color\u column])

但是-我的颜色列包含很多额外的空格,因此我需要调用color参数上的
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
但这给了我一个错误
所期望的标记文字


如何正确书写?我知道我可以使用Power Query GUI创建这样的简单函数,但我的实际情况更高级,我想了解
M
语法。

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

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
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