【Azure Power BI】Power BI獲取SharePoint List列表後,如何展開List/Table中的欄位,以及使用逗號拼接為一個字串

路边两盏灯發表於2024-03-12

問題描述

Power BI獲取SharePoint List列表作為資料來源。但是在資料來源中,有Table屬性值,有List屬性值。如果直接展開,則會形成“笛卡爾”集的效果,變成N多行資料。

效果圖如下:

【Azure Power BI】Power BI獲取SharePoint List列表後,如何展開List/Table中的欄位,以及使用逗號拼接為一個字串

但是,我們最終所需要的效果是:

保留整體表格的行數不變,把Table中所需要的欄位,List中的值使用“逗號”分隔,展示在一行中。

【Azure Power BI】Power BI獲取SharePoint List列表後,如何展開List/Table中的欄位,以及使用逗號拼接為一個字串

那麼,在真實的Sharepoint List + Power BI中,如何來展開List/Table中的欄位呢? 如何來使用 , 拼接呢?

問題解答

解決以上的問題,主要使用的知識點為:

1)在Table屬性列,透過“新增新列”,從Table中取出Column2列中的值,形成一個新的List列

#"Added Custom" = Table.AddColumn(#"SharePoint List", "Custom", each [Count][Column2]),

2)在新的List列中,透過 Text.Combine 函式把List中的全部值轉換為目標字串

#"Extracted Values" = Table.TransformColumns(#"Added Custom", {"Custom", each Text.Combine(List.Transform(_, Text.From), ","), type text}),

詳細操作步驟如下:

步驟一:在Table列中,展開檢視Table中的資料及列名

點選Add Column --> Custome Column --> 選擇正確的列(這裡是Text) --> 在第4點中,需要手動輸入Text表中的列名。

【Azure Power BI】Power BI獲取SharePoint List列表後,如何展開List/Table中的欄位,以及使用逗號拼接為一個字串

點選OK後,新的資料結構為List。

【Azure Power BI】Power BI獲取SharePoint List列表後,如何展開List/Table中的欄位,以及使用逗號拼接為一個字串

第二步:展開List,並且使用Comma分隔

點選列頭右邊的展開符號,選擇“Extract Values...”後,並選擇 Comma分隔。

【Azure Power BI】Power BI獲取SharePoint List列表後,如何展開List/Table中的欄位,以及使用逗號拼接為一個字串

最終效果,達到了把 Table --> List --> String 的目的。

動態效果圖

【Azure Power BI】Power BI獲取SharePoint List列表後,如何展開List/Table中的欄位,以及使用逗號拼接為一個字串

完整的Power BI Query語句為

let
    Source = Table.FromRows(),
    #"SharePoint List" = ... ... .... .... ,
    #"Renamed Columns" = Table.RenameColumns(#"SharePoint List",{{"Column1", "ID"}, {"Count", "Text"}}),
    #"Added Custom" = Table.AddColumn(#"Renamed Columns", "Custom", each [Text][Column2]),
    #"Extracted Values" = Table.TransformColumns(#"Added Custom", {"Custom", each Text.Combine(List.Transform(_, Text.From), ","), type text}),
    #"Replaced Errors" = Table.ReplaceErrorValues(#"Extracted Values", {{"Custom", " < no value >"}}),
    #"Replaced Value" = Table.ReplaceValue(#"Replaced Errors",null,"<no null>",Replacer.ReplaceValue,{"Custom"})
in
    #"Replaced Value"

參考資料

SharePoint list expand table column : https://community.fabric.microsoft.com/t5/Desktop/SharePoint-list-expand-table-column/td-p/2150752

相關文章