【发布时间】:2020-02-19 17:12:10
【问题描述】:
我有一张关于两台机器运行时间的信息表。它具有三个主要列:“A”是机器编号; “B”是开始运行的时间和日期;而“C”是操作的结束时间和日期。
我正在尝试编写一个公式(第四列)来查找下一个操作的“开始时间” - 以机器编号为条件。为此,我必须输入“结束时间”并从另一行找到最接近的更大“开始时间” - 以机器编号为条件。
我已经尝试了两种方法来做到这一点,没有一种方法 100% 正确。
首先,我“过滤” B 的范围,以 A 为条件。然后,我将此过滤后的范围插入到一个公式中,以寻找最接近的更大值。
示例表如下(颜色仅用于跟踪/调试目的,它们不必在公式中):
这是我尝试过的两个公式:
=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))
在第一个示例中,只有最后一个结果正确返回。该列的其余部分重复相同的值。
第二个是不稳定的,有时会带来最接近的较大数字,有时会带来最接近的较小数字,但比第一个效果更好。
【问题讨论】:
-
分享您的工作表副本以及所需输出的示例
-
忘记添加,已编辑!
标签: google-sheets google-sheets-formula array-formulas counting gs-vlookup