日期间隔的交集

Microsoft Excel 用户的典型任务之一。 我们有两个“开始-结束”类型的日期范围。 挑战在于确定这些范围是否重叠,如果重叠,重叠多少天。

相交与否?

我们先来解决原则上是否存在区间交集的问题? 假设我们有一张这样的员工轮班表:

可以清楚地看到雅罗斯拉夫和埃琳娜的工作班次相交,但如何在不借助建立日历时间表和视觉控制的情况下计算这一点? 该功能将帮助我们 SUMPRODUCT (总和).

让我们在表格中插入另一列,如果日期相交,则该公式会产生布尔值 TRUE:

穿越是几天?

如果从根本上理解我们的区间是否相交并不容易,而是要确切地知道有多少天正好落入相交,那么任务就会变得更加复杂。 从逻辑上讲,有必要在一个公式中“泵送”多达 3 种不同的情况:

  • 间隔不重叠
  • 其中一个区间完全吸收了另一个区间
  • 区间部分相交

不时地,我看到其他用户使用一堆嵌套的 IF 函数等来实现这种方法。

事实上,一切都可以使用该功能精美地完成 MEDIAN (中位数) 从类别 统计.

如果我们有条件地将第一个区间的开始指定为 N1, 和结束 K1, 和第二个的开始 N2 并结束 K2,那么一般来说,我们的公式可以写成:

=中位数(N1;K1+ 1;K2+1)-中位数(N1;K1+ 1;N2)

紧凑而优雅,不是吗? 😉

  • Excel 实际上如何处理日期? 如何计算日期之间的日历或工作日数?
  • 如何使用条件格式在 Excel 中构建日历计划(假期、培训、轮班……)?
  • 使用 IF (IF) 函数检查一个或多个条件

发表评论