我想在 D 列中填写一个公式,根据 B 列上的代理来计算状态持续时间。
示例:我需要一个公式来计算特工 John 从上午 8 点到上午 11 点下一个状态休息 在单元格 D2 上的待命持续时间。然而,约翰特工的下一行是另一个特工的另一条记录。如果约翰的下一个状态位于第 5 行(上午 11 点休息)的另一个行,我如何计算他的持续时间?由于约翰特工从上午 8 点到上午 11 点待命,因此单元 D2 上的预期输出应为 3 小时。
谢谢你
来自 @Spectral Instance 的简短回答,但对于是否可以做得更快的问题有一个很长的答案。
这个想法是对数据进行一次排序,然后使用二分搜索。
公式:
=LET(colA,A1:A100000, colB,B1:B100000, 键,colB&TEXT(ROW(colB),"000000"), 键1,colB&TEXT(ROW(colB)+1,"000000"), 排序键,排序(键), sortA,SORTBY(colA,键), XLOOKUP(keys1,sortkeys,sortA,,1,2))