Допустим, у меня есть несколько файлов в одной папке.Я могу загрузить из этой папки свое подключение к данным, и оно должно выглядеть следующим образом:
Теперь я добавлю пользовательский столбец, который читает двоичный файлфайл в каждой строке и возвращает таблицу.Мои файлы отформатированы как CSV, поэтому я написал бы следующее:
= Table.AddColumn(Source, "Custom", each Table.PromoteHeaders(Csv.Document([Content])))
Я удалю все остальные столбцы, кроме этого нового, а затем использую Table.Combine
, чтобы превратить этот столбец в объединенную таблицу:
= Table.Combine(#"Removed Other Columns"[Custom])
Здесь первые четыре строки от FileA
, а последние четыре от FileBV
.
Это не совсем то, что я хочу, но я могу удалить эти null
значения, отвинтив столбцы без идентификатора, а затем снова повернувшись, чтобы вернуться к нужной форме.(Вероятно, есть лучший способ, о котором я не думаю.)
Не развернутый:
Поворот:
M Код:
let
Source = Folder.Files("C:\Users\Computer\test"),
BinToTable = Table.AddColumn(Source, "Custom", each Table.PromoteHeaders(Csv.Document([Content]))),
#"Removed Other Columns" = Table.SelectColumns(BinToTable,{"Custom"}),
#"Added Custom" = Table.Combine(#"Removed Other Columns"[Custom]),
#"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Added Custom", {"ID"}, "Attribute", "Value"),
#"Pivoted Column" = Table.Pivot(#"Unpivoted Columns", List.Distinct(#"Unpivoted Columns"[Attribute]), "Attribute", "Value")
in
#"Pivoted Column"
Это не супер-элегантно, но оно должно быть довольно надежным, так как мы никогда не используем имена или числастолбцов в базовых файлах за исключением ID
.