我希望仅使用每个预告片的状态代码“COMPLETE”和“ASSGN”的时间戳按顺序计算时间戳之间经过的小时数。 “COMPLETE”和“ASSGN”时间戳在计算中应具有不同的行程 ID。数据示例附在图像中。我已经使用图像中包含的基本公式手动完成了此操作,但如果可能的话我想自动执行此操作。这是为了计算两次行程之间的拖车停留时间。我遇到的问题是每个状态代码都有多个时间戳,它们应该按顺序计算。
示例数据解决方案:
公式应插入E2单元格和F2单元格,然后分别复制到E列和F列中。
显然,根据您显示持续时间的偏好,只需要 E 或 F 列之一。
为了按顺序计算每个拖车在 COMPLETE 和下一个 ASSGN 时间戳之间的停留时间,我使用了以下公式:
E 列(持续时间,格式为 [h]:mm):
=IF(D2="ASSGN";C2-MAX(FILTER(C$2:C2;(D$2:D2="COMPLETE")*(B$2:B2=B2);C2));"")
此公式计算同一预告片的当前 ASSGN 时间戳和最新 COMPLETE 时间戳之间的时间差。 FILTER 仅检索状态代码 = COMPLETE 且预告片匹配的相关时间戳。 MAX() 确保使用最新的完整时间戳。 F 列(以十进制小时表示的持续时间):
=IF(D2="ASSGN";(C2-MAX(FILTER(C$2:C2;(D$2:D2="COMPLETE")*(B$2:B2=B2);C2)))*24;"")
此公式扩展了前一个公式,将结果乘以 24,将时差转换为十进制小时数。 说明:
IF(D2="ASSGN", ...) 确保仅对出现 ASSGN 的行执行计算。 FILTER 动态过滤具有 COMPLETE 状态的同一预告片的时间戳。 MAX 确保按顺序使用最新的 COMPLETE 时间戳。 E 列提供以 [h]:mm 为单位的结果,而 F 列将其转换为具有两位小数的小时。 结果:该解决方案动态计算拖车停留时间,确保连续顺序和匹配拖车 ID。