Функция R cbind()
обеспечивает функциональность, аналогичную описанной, поэтому в Power BI я назвал свой запрос "cbind". R не беспокоит несколько столбцов, имеющих одно и то же имя, но M есть, следовательно, использование префикса для устранения неоднозначности столбцов. Префикс должен быть предоставлен в качестве необязательного аргумента; мои префиксные имена переменных предполагают иметь дело с этими обнуляемыми аргументами. Table.FromColumns()
не позволяет пользователю указать значение для заполнения пробелов, поэтому null
это так.
(table1 as table, table2 as table) =>
let
Prefix1NoNull = "a.",
Prefix2NoNull = "b.",
CommonColumns = List.Intersect({Table.ColumnNames(table1), Table.ColumnNames(table2)}),
Table1Names = List.Transform(Table.ColumnNames(table1), each if List.Contains(CommonColumns, _) then Prefix1NoNull & _ else _),
Table2Names = List.Transform(Table.ColumnNames(table2), each if List.Contains(CommonColumns, _) then Prefix2NoNull & _ else _),
Result = Table.FromColumns(Table.ToColumns(table1) & Table.ToColumns(table2), Table1Names & Table2Names)
in
Result