У меня есть силовой запрос с 14 таблицами из 14 листов. Столбцы в каждой таблице различны. У некоторых есть столбцы, уникальные для листа. Все они имеют около 10 столбцов, но порядок меняется.

Как я могу добавить собственный столбец для отображения источника листа или источника таблицы?

(Я стратегически назвал таблицы / листы для каждой таблицы на листе следующим образом: Table Name = Sheet Name). Я новичок в power-query, и под новым, я имею в виду, я построил свой первый сегодня.

Я попробовал пользовательский столбец с формулой:
Table.AddColumn(#"Changed Type", "Custom", each Source{[Item="Report",Kind="Sheet"]}[Name]) который не работает, как показано ниже.

1 ответ1

0

Все таблицы, которые вы хотите связать вместе в своем запросе, не обязательно должны иметь одинаковую структуру (имена столбцов). Вот решение для этого случая.
Вы должны написать собственный М-код. Используйте в качестве первого шага Excel.Функция CurrentWorkbook .

Вот M-код, который вы можете поместить в свой редактор (имя запроса в моем примере "OutputTable" -> заменяется приведенным ниже кодом!):

let
    Source = Excel.CurrentWorkbook(),
    // Filter out the table (= your Query Name) which will result as output
    #"Filtered Rows" = Table.SelectRows(Source, each ([Name] <> "OutputTable")),

    // Bring the table name as 1st column
    #"Reordered Columns" = Table.ReorderColumns(#"Filtered Rows",{"Name", "Content"}),

    // Rename the "Name" column to prevent conflict with next steps
    #"Renamed Columns" = Table.RenameColumns(#"Reordered Columns",{{"Name", "TableName"}}),

    // Find out all column names present in Content tables 
    #"all table column name" = List.Accumulate(#"Renamed Columns"[Content], {}, (state, current) => List.Union({state, Table.ColumnNames(current)})),

    // Dynamically expand all columns
    #"Expanded {0}" = Table.ExpandTableColumn(#"Renamed Columns", "Content", #"all table column name")
in
    #"Expanded {0}"

Шаг # "имя столбца всей таблицы" вдохновлен этим ответом на Stackoverflow.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .