Excel -时间交点

pbgvytdp  于 2023-06-25  发布在  其他
关注(0)|答案(2)|浏览(114)

我希望Excel检查两个时间间隔是否相交。

例如,I3-J3和I5-J5相交。
如何使Excel在另一个单元格中显示此交点?

laawzig2

laawzig21#

以下公式将显示最后一行的任何干涉。只需将此公式复制到单元格K3中并将其复制下来:

=IF(OR(AND(OR(I3>(I$2:I2)),OR(I3<(J$2:J2))),AND(OR(I3>(I$2:I2)),OR(I3<(J$2:J2)))),"interference","OK")

请注意,这是一个数组公式,必须使用Ctrl + Shift + Enter输入。有关数组公式的更多信息,您可能需要阅读以下文章:https://support.office.com/en-us/article/Guidelines-and-examples-of-array-formulas-7D94A64E-3FF3-4686-9372-ECFD5CAA57C7

如果你想同时显示interferenceI$2:I2,那么你必须扩展I$2:I2J$2:J2以包含整个列表。因此,这可能分别是(例如)I$2:I$500J$2:J$500。但是,不能包括行本身。否则,您将始终得到interference,因为公式将检查自身。因此,您必须为每一行生成单独的公式,并且不能输入通用公式并将其复制下来。
我不知道如何显示(仅使用公式)干扰项。这主要是由于可能存在多个干扰条目,然后必须列出这些条目并以,分隔。我不认为仅仅用公式就能做到这一点。
注意:上述解决方案基于以下基本原则:Excel中的所有日期和时间(本质上)都只是格式化为日期或时间的数字。有关更多信息,您可能需要阅读以下内容:因此,上面的公式只是检查列I中的日期是否在列I和列J中的任何先前日期之间。如果列I中的日期是>,列I中的前一个日期也是<,与列J中的日期相比,则这是干扰。必须对K列中的日期进行同样的检查,然后两者都必须与OR组合。这就是上面的整个公式。

更新:

根据@Gordon提供的评论,可以使用COUNTIFS函数改进公式。只需在单元格C2中输入以下公式并将其复制下来:

=SUM(COUNTIFS(A:A,"<"&A2,B:B,">"&A2),COUNTIFS(A:A,"<"&B2,B:B,">"&B2))

任何大于0的数字意味着至少存在一个干扰。使用此公式,现在可以计数/显示多个碰撞,如以下屏幕截图所示:

请注意,改进后的公式不再要求您知道表的范围。相反,您可以搜索整个列A:AB:B中的干涉。

kpbpu008

kpbpu0082#

我想改进@Ralph提供的公式。该公式仅考虑两种相交情况-时间间隔重叠时。但还有两种情况的交集:

  • 当间隔X在间隔Y之前开始并且在间隔Y结束之后结束时(大间隔)
  • 当间隔X在间隔Y之后开始并且在间隔Y结束之前结束时(小间隔)

所以我的最终公式看起来像这样:

=SUM(COUNTIFS(A:A, "<"&A2, B:B, ">"&A2), COUNTIFS(A:A, "<"&B2, B:B, ">"&B2), COUNTIFS(A:A, ">"&A2, B:B, "<"&B2), COUNTIFS(A:A, "<"&A2, B:B, ">"&B2))

相关问题