Excel - 时间交点

时间:2017-02-22 13:13:39

标签: excel

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

data

例如,I3-J3和I5-J5相交。

如何让Excel在另一个单元格中显示此交集?

1 个答案:

答案 0 :(得分:1)

以下公式将显示最后一行的任何干扰。只需将此公式复制到单元格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

enter image description here

如果您想为这两行显示interference,那么您必须扩展I$2:I2J$2:J2以包含整个列表。因此,这可能分别是(例如)I$2:I$500J$2:J$500。但是,您不能包含行本身。否则,您始终会获得interference,因为公式会自行检查。因此,您必须为每一行生成单独的公式,并且您无法输入通用公式并将其复制下来。

我不确定如何显示干扰条目(仅限公式)。这主要是因为可能存在多个干扰条目,然后必须将其列出,。我不认为只能用公式来完成。

注意:上述解决方案基于以下基本原则:Excel中的所有日期和时间(基本上)只是格式化为日期或时间的数字。有关详细信息,您可能需要阅读以下内容:Change date format using substitute or replace 因此,上述公式只是检查列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的数字表示至少存在一次干扰。有了这个公式,它现在正在计算/显示多个干扰,如下面的屏幕截图所示:

enter image description here

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