Кажется, что естественный способ сделать это в Power Query M - это использовать AddColumn и ExpandColumn. Вот эквивалент
SELECT *
FROM ExcelTable e
OUTER APPLY (
SELECT *
FROM SomeOtherTbl s
WHERE s.SomeOtherId = e.Id
)
В запросе Power M это
let
SomeOtherTbl = Table.FromRecords({[SomeOtherId = 0, Field1 = "Hate MS docs"],
[SomeOtherId = 1, Field1 = "samples formatting"]}),
ExcelTable = Table.FromRecords({[Id = 0],
[Id = 1]}),
F = (id) => Table.SelectRows(SomeOtherTbl, each [SomeOtherId] = id),
OuterApplyStep1 = Table.AddColumn(ExcelTable, "FFFF", each F([Id])),
ColumnNames = Table.Schema(OuterApplyStep1{0}[FFFF])[Name],
OuterApplyStep2 = Table.ExpandTableColumn(OuterApplyStep1, "FFFF", ColumnNames, ColumnNames)
in
OuterApplyStep2
Приятно то, что меня не волнуют имена столбцов второй таблицы. Плохо то, что код не работает, если нет соответствия - Table.Schema падает.