0

我正在处理 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),

...它看起来不像 Microsoft 的语法,但对我来说很好,因为我将它插入到我的代码中,如下所示:

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(就像在微软的例子中一样)。

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

4

1 回答 1

1

生成的代码:

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

表示您很可能选择了所有列,然后选择了变换 - 格式 - 修剪。如果您选择了 1 列或更多列,则这些列的名称和所需操作将位于 {} 之间,例如

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

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

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

= Table.TransformColumns(#"Removed Other Columns",{{"SomeText", each Text.Trim(_, {" ",";"})}})
于 2017-04-04T14:30:38.803 回答