2017-04-04 278 views
0

我在一家電力BI查詢工作,試圖從文本修剪空白。Text.Trim語法含義

縱觀微軟的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(如微軟的例子)的任何參數。

如果有人能翻譯一下線的方式,我可以理解「的說法」,我確實很感激。

回答

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(文本爲可爲空的文本)的第一個參數。 其他參數將使用默認值i.c.空間,因此默認情況下所有前導空格和尾隨空格都將被刪除。

如果要在Table.TransformColumns上下文中使用Text.Trim的其他參數,則需要調整代碼並提供關鍵字「each」,並使用_作爲佔位符作爲列值。 例如,下一個代碼刪除前導空格和尾部空格以及分號:

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