合并Power BI中多个工作簿中的Excel工作表

时间:2019-06-20 14:37:18

标签: powerbi powerquery m

我的要求是,我需要使用Power BI合并多个工作簿中的excel表格。

文件夹结构是这样的,文件夹名称是Jan,Feb,Mar,April,由工作簿名称Jan1,Jan12,Jan15,Feb1,Feb12等组成,类型1,类型2和类型3是工作表每个工作簿中的名称。

我想合并Jan,Feb,Mar文件夹中的所有类型1的工作表,并且我需要编写一个M函数以对所有其他类型(即类型2和类型3)重复该过程。

您能否使用Power Query帮助我解决此要求?

到目前为止,我尝试创建一个函数以从文件夹中获取数据,然后我执行了手动步骤以合并工作簿中的数据。

(filepath)=> 
let
    Source = Folder.Files(filepath),
    #"Filtered Rows1" = Table.SelectRows(Source, each not Text.StartsWith([Name], "~$")),
    #"Filtered Hidden Files1" = Table.SelectRows(#"Filtered Rows1", each [Attributes]?[Hidden]? <> true),
    #"Reordered Columns" = Table.ReorderColumns(#"Filtered Hidden Files1",{"Name", "Content", "Extension", "Date accessed", "Date modified", "Date created", "Attributes", "Folder Path", "Source Type"}),
    #"Removed Columns" = Table.RemoveColumns(#"Reordered Columns",{"Extension", "Date accessed", "Date modified", "Date created", "Attributes", "Folder Path", "Source Type"})
in
    #"Removed Columns"

1 个答案:

答案 0 :(得分:1)

好吧,使用<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="replace"/> > Get and transform> From file可以很轻松地得到想要的东西。 screenshot

在此过程中,您将指定所需的工作表“类型1”,并在向导末尾为您提供: screenshot

然后,您只需对类型2和3重复此操作。

编辑:如果由于某种原因您不想使用“从文件夹”向导,则所有这些都可以在一个查询中完成:

From a folder

只需调整源文件夹,然后重复此查询,并将let Source = Folder.Files("C:\temp"), #"Filtered Hidden Files" = Table.SelectRows(Source, each [Attributes]?[Hidden]? <> true), #"Added Workbook" = Table.AddColumn(#"Filtered Hidden Files", "Workbook", each Excel.Workbook([Content], null, true)), #"Added Sheet" = Table.AddColumn(#"Added Workbook", "Sheet", each Table.PromoteHeaders( [Workbook]{[Item="type 1",Kind="Sheet"]}[Data] , [PromoteAllScalars=true]) ), #"Renamed Columns" = Table.RenameColumns(#"Added Sheet",{{"Name", "Source"}}), #"Removed Other Columns" = Table.SelectColumns(#"Renamed Columns",{"Source", "Sheet"}), #"Expanded Tables" = Table.ExpandTableColumn( #"Removed Other Columns" , "Sheet", Table.ColumnNames( #"Removed Other Columns"[Sheet]{0} ) ) in #"Expanded Tables" 替换为type 1type 2,即可得到另外两个合并的工作表。