Насколько я знаю, нет никаких вариантов изменить метод сопоставления по умолчанию в функциях соединения в PQ.Однако вы можете сделать два объединения в каждом столбце, который хотите, а затем объединить результаты этих объединений.
Это приведет к дублированию совпадений при совпадении как col1, так и col2, но я не уверен, что это ожидаемый результат.Если нет, вы можете использовать PQ для настройки индексов, чтобы ловить эти дубликаты и удалять их.
Предполагается, что в Query2 также добавлен индекс, который выглядит следующим образом:
let
Source = Query1,
#"Added Index" = Table.AddIndexColumn(Source, "Index", 0, 1),
#"Merged Queries" = Table.NestedJoin(#"Added Index",{"col1"},Query2,{"col1"},"col1Join",JoinKind.LeftOuter),
#"Merged Queries1" = Table.NestedJoin(#"Merged Queries",{"col2"},Query2,{"col2"},"col2Join",JoinKind.LeftOuter),
#"Added Custom" = Table.AddColumn(#"Merged Queries1", "MergeTables", each Table.Combine({[col1Join],[col2Join]})),
#"Expanded Custom" = Table.ExpandTableColumn(#"Added Custom", "MergeTables", {"col1", "col2", "Index"}, {"Query2.col1", "Query2.col2", "Query2.Index"}),
#"Removed Duplicates" = Table.Distinct(#"Expanded Custom", {"Index", "Query2.Index"}),
#"Removed Columns" = Table.RemoveColumns(#"Removed Duplicates",{"Index", "col1Join", "col2Join", "Query2.Index"})
in
#"Removed Columns"
Не очень масштабнорешение, но я думаю, что оно работает правильно?