从过滤范围中找到最接近的更大

Finding closest greater from a filtered range

我有一个 sheet,其中包含有关两台机器运行时间的信息。它有三个主要列: "A" 是机器的编号; "B"是开始运行的时间和日期; "C" 是操作的结束时间和日期。

我正在尝试编写一个公式(第四列)来查找下一个操作的 "starting time" - 以机器编号为条件。为此,我必须输入 "ending time" 并从另一行中找到最接近的更大的 "starting time" - 以机器编号为条件。

我尝试了两种方法,none 100% 正确。

首先,我 "filtering" B 的范围,以 A 为条件。然后,我将这个过滤后的范围插入到一个公式中,寻找最接近的较大值。

一个示例 sheet 如下(颜色仅用于 tracking/debugging 目的,它们不必出现在公式中):

这是我试过的两个公式:

=small(filter(B:B;A:A=A1);COUNTIF(filter(B:B;A:A=A1);"<"&C1)+1)

=INDEX(filter(B:B;A:A=A1);MATCH(MIN(ABS(filter(B:B;A:A=A1)-C1));ABS(filter(B:B;A:A=A1)-C1);0))

在第一个例子中,只有最后一个结果正确。该列的其余部分重复相同的值。

第二个不稳定,有时会带来最接近的较大数字,有时会带来最接近的较小数字,但比第一个效果更好。

尝试:

=ARRAYFORMULA(IFERROR(VLOOKUP(A2:A&
 COUNTIFS(A2:A; A2:A; ROW(A2:A); "<="&ROW(A2:A))+1; FILTER({A2:A&
 COUNTIFS(A2:A; A2:A; ROW(A2:A); "<="&ROW(A2:A))\ 
 TEXT(B2:B; "dd/mm/yyyy hh:mm:ss")}; 
 COUNTIFS(A2:A; A2:A; ROW(A2:A); "<="&ROW(A2:A))>1); 2; 0)))