【问题标题】:Combine excel sheets from multiple workbooks in Power BI在 Power BI 中合并来自多个工作簿的 Excel 工作表
【发布时间】:2023-03-24 01:26:01
【问题描述】:

我的要求是,我需要使用 Power BI 合并来自多个工作簿的 Excel 工作表。

文件夹结构如下 Jan、Feb、Mar、April 为文件夹名称,由工作簿名称 Jan1、Jan12、Jan15、Feb1、Feb12 等组成,type 1、type 2 和 type 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"

【问题讨论】:

  • 到目前为止您尝试过什么,遇到了什么问题?请edit您的问题以显示您的代码以及任何相关的错误消息。
  • 问题中添加功能

标签: powerbi powerquery m


【解决方案1】:

嗯,通过Get and transform > From file > From a folder 获得您想要的非常简单。

在此过程中,您将指定您想要的工作表“类型 1”,在向导结束时为您提供:

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

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

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 1 替换为type 2type 3 即可获得另外两个组合表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-14
    • 2021-08-09
    • 1970-01-01
    相关资源
    最近更新 更多