我有一张纸,上面有关于两台机器运行时间的信息。它具有三个主要列:“ A”是机器的编号; “ B”是开始工作的时间和日期;而“ C”是手术的结束时间和日期。
我正在尝试编写一个公式(第四列),该公式查找下一个操作的“开始时间”-以机器编号为条件。为此,我必须输入“结束时间”并从另一行找到最接近的较大“开始时间”,该时间取决于机器编号。
我尝试了两种方法来实现,但没有一种方法能100%正确地工作。
首先,我“过滤”以A为条件的B范围。然后,我将此过滤后的范围插入到一个公式中,该公式寻找最接近的较大值。
以下是一个示例工作表(颜色仅用于跟踪/调试目的,不必在公式上出现):
这是我尝试过的两个公式:
=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))
在第一个示例中,仅最后一个结果返回正确。该列的其余部分重复相同的值。
第二个是不稳定的,有时会带来最接近的更大的数字,有时会带来最近的更小的数字,但是比第一个更好。