Я не думаю, что вы можете сделать это с помощью "объединения" как такового, но вы определенно можете сделать это с помощью пользовательского столбца.
let
Source = Table.FromRows({{1,1000},{2,2000},{3,3000},{4,4000}},{"ID1","Cumulative1"}),
#"Added Custom" = Table.AddColumn(Source, "Cumulative2", (T1) => List.Min(Table.SelectRows(Table2, each [Cumulative2] >= T1[Cumulative1])[Cumulative2]), type number)
in
#"Added Custom"
или отформатированный немного
let
Source = Table.FromRows({{1,1000},
{2,2000},
{3,3000},
{4,4000}},
{"ID1","Cumulative1"}
),
#"Added Custom" = Table.AddColumn(Source, "Cumulative2",
(T1) => List.Min(
Table.SelectRows(Table2,
each [Cumulative2] >= T1[Cumulative1]
)[Cumulative2]
),
type number
)
in
#"Added Custom"
Таким образом, в каждой строке в Table1
я беру Table2
и выбираю только те строки, где
Table2[Cumulative2] >= Table1[Cumulative1]
, а затем возвращаю только столбец Cumulative2
из этой таблицы (и один столбецсписок).
Так как я хочу первое значение в этом списке, я использую List.Min
.
Редактировать: Это может быть немного чище ивместо этого более эффективно:
(T1) => List.First(List.Select(Table2[Cumulative2], each _ >= T1[Cumulative1])),