Объединение листов Excel из нескольких рабочих книг в Power BI - PullRequest
0 голосов
/ 20 июня 2019

Мое требование: мне нужно объединить листы Excel из нескольких рабочих книг с помощью Power BI.

Структура папок выглядит следующим образом: январь, февраль, март, апрель - это имя папки, которое состоит из имени книги как Янв 1, 12 января, 15 января, 1 февраля, 12 февраля и т. Д. И тип 1, тип 2 и тип 3 - это имена листов в каждой книге.

Я хотел бы объединить все листы типа 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 Ответ

1 голос
/ 22 июня 2019

Что ж, получить то, что вы хотите, довольно просто с Get and transform> From file> From a folder. screenshot

В процессе вы укажете, что хотите лист "type 1", давая вам это в конце мастера: screenshot

Тогда вы просто повторите это для типов 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 2 или type 3, чтобы получить два других комбинированных листа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...