Text.Trim语法含义

时间:2017-04-04 14:08:43

标签: powerbi powerquery m

我正在使用Power BI查询,尝试从文本中修剪空白。

查看Microsoft的M引用,我遇到了Text.Trim语法:

Text.Trim(text as nullable text, optional trimChars as any) as nullable text  

我无法弄清楚如何正确地将它插入我的查询代码(它实际上会在哪里工作)所以我做了一些搜索并发现了这个:

#"Trimmed Text" = Table.TransformColumns(#"Removed Other Columns",{},Text.Trim),

...看起来不像微软的语法,但对我来说很好,因为我把它插入我的代码中这样:

let
    Source = Banding,
    #"Removed Other Columns" = Table.SelectColumns(Source,{"Segment", "Granular Band"}),
    #"Trimmed Text" = Table.TransformColumns(#"Removed Other Columns",{},Text.Trim),
    #"Removed Duplicates" = Table.Distinct(#"Trimmed Text", {"Granular Band"})
in
    #"Removed Duplicates"

我的问题是我不明白该行的语法含义是什么。我理解微软的例子基本上就是这个意思,削减这个;这是我要修剪的文字。很简单。

但我不知道实际工作的行的语法含义是什么。据我所知它转换表列(Table.TransformColumns);但我不知道对前一行(#"Removed Other Columns")的引用是否为Text.Trim的任何实际“输入”,或者{}是否是对表中所有列的引用,或(更重要的是我)我将如何引用特定的列。 (我已经尝试了一些指定列的方法,并且每次都失败了。)我也不明白为什么我不需要Text.Trim之后的任何参数(就像在Microsoft的例子中一样)。

如果有人会以我能理解的方式翻译线条“说”,我一定会很感激。

1 个答案:

答案 0 :(得分:1)

生成的代码:

#"Trimmed Text" = Table.TransformColumns(#"Removed Other Columns",{},Text.Trim),

表示您最有可能选择了所有列,然后选择了Transform - Format - Trim。 如果您选择了1列或更多列,那么这些列的名称和所需的操作将介于{}之间,如

= Table.TransformColumns(#"Removed Other Columns",{{"SomeText", Text.Trim}})

在Table.TransformColumns中调用的任何函数都会获取从Table.TransformColumns自动提供的列值,因此在这种情况下:Text.Trim的第一个参数(文本为可为空的文本)。 其他参数将使用默认值i.c.空格,因此默认情况下会删除所有前导和尾随空格。

如果要在Table.TransformColumns上下文中使用Text.Trim的其他参数,则需要调整代码并提供关键字“each”,并使用_作为列值的占位符。 例如,下一个代码删除前导和尾随空格和分号:

= Table.TransformColumns(#"Removed Other Columns",{{"SomeText", each Text.Trim(_, {" ",";"})}})