Попрошу у Вас совета по следующей проблеме. Есть папка с файлами-выгрузками с одинаковой структурой, которую я не могу менять. В каждом файле таблица-диапазон. Строится запрос PQ, который объединяет все в одну таблицу. Пример запроса в файле с примером. При этом есть потребность, чтобы напротив каждой строчки было указано из какого файла взята эта строка и когда тот файл был создан. То есть +две колонки вначале таблицы [Имя] и [Дата]. В результате удается получить эти данные в нужные колонки.
Но проблема начинается здесь. В запросе применяю команду "повысить заголовки" и она "затирает" правильные заголовки в первых двух столбцах значениями из первой строки. В то время как в остальной часть таблицы значения из первой строки справедливо занимают места заголовков. Из-за того, что заголовки первых двух столбцов могут меняться, я не смогу больше к ним обращаться и работать дальше с таким запросом
а. Есть ли способ как-нибудь по хитрому расправится с заголовками? б. Может есть другой способ добиться того, чтобы каждая строка с данными была "промаркирована" откуда она пришла (без изменения структуры выгрузки исходных файлов).
let
Источник = Table.SelectRows(Folder.Files("D:\пост планета заголовки\папка с файлами"),each [Attributes][Kind]="Excel File" and not Text.StartsWith([Name], "~"))[[Name],[Date created],[Content]],
Листы = Table.ExpandListColumn(Table.TransformColumns(Источник, {{"Content",each let a=_ in Table.SelectRows(Excel.Workbook(a),each try [Kind]="Sheet" otherwise true)[Data]}}),"Content"),
#"Развернутый элемент Content" = Table.ExpandTableColumn(Table.TransformColumns(Листы,{{"Content",Table.PromoteHeaders}}),"Content",List.Transform(Record.FieldValues(Листы[Content]{0}{0}),Text.From))
in
#"Развернутый элемент Content"
Или так для мозговыноса (для строки формул)
Код
= ((a)=>
((b)=>
((c)=>
Table.ExpandTableColumn(c,"Content",Table.ColumnNames(c[Content]{0}))
)(
Table.TransformColumns(b,{{"Content",Table.PromoteHeaders}})
)
)(
Table.ExpandListColumn(
Table.TransformColumns(
a,
{
{
"Content",
each
Table.SelectRows(
Excel.Workbook(_),
each
try [Kind]="Sheet" otherwise true
)[Data]
}
}
),
"Content"
)
)
)(
Table.SelectRows(
Folder.Files("D:\пост планета заголовки\папка с файлами"),
each
[Attributes][Kind]="Excel File" and
not Text.StartsWith([Name], "~")
)[[Name],[Date created],[Content]]
)
Использую стандартный метод загрузки данных из папки и изменив на этапе удаления столбцов наименование столбца. = Table.SelectColumns(#"Переименованные столбцы1", {"Source.Name", "Date created", "Преобразовать файл из папка с файлами"})