我希望Excel检查两个时间间隔是否相交。
例如,I3-J3和I5-J5相交。
如何让Excel在另一个单元格中显示此交集?
答案 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
如果您想为这两行显示interference
,那么您必须扩展I$2:I2
和J$2:J2
以包含整个列表。因此,这可能分别是(例如)I$2:I$500
和J$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
的数字表示至少存在一次干扰。有了这个公式,它现在正在计算/显示多个干扰,如下面的屏幕截图所示:
请注意,改进的公式不再需要您知道表的范围。相反,您可以搜索整个列A:A
和B:B
进行干扰。