计算date范围是否适合其他date范围

我有一组数据以及某些date(姓名,开始,结束)休假的人的姓名。

例:

Name Start End Joe 10-Jan-14 21-Jan-14 Billy 12-Feb-14 10-Mar-14 David 11-Jan-14 20-Jan-14 Patty 10-Jan-14 19-Jan-14 Megan 05-Jan-14 20-Jan-14 ------------------------------- Block 15-Jan-14 22-Jan-14 

我想要计算在阻塞date期间将要休假的范围内的人数。 应该返回4; JoeDavidPattyMegan

我拥有的公式是:

 =COUNTIFS(colStart, ">="&B1, colEnd, "<="&B2) 

colStartcolEnd是“开始”和“结束”列的命名范围。

B1B2是电子表格上的阻止date。

我的问题是,它不会计算在块开始date之前开始或在块结束date之后结束的人。即使他们将在块date的某个时间点上休假。 Joe ,例如..从1月10 Jan开始。 他将在封锁期间继续休假。

在视觉上,我比较数字线。 我只需要帮助把它翻译成代码。

把你的配方稍微调整一下。

如果开始date等于或早于B2并且结束date大于或等于B1,那么周期必须有某种重叠 – 如果这些条件中的一个或另一个不成立,则不存在重叠,因此这个公式给你的计数

=COUNTIFS(colStart,"<="&B2,colEnd,">="&B1)

以下是如何从杰瑞的答案的反面查看它。 你有两个你想要的场景。

  1. 阻止后的开始date
  2. 阻止之前的结束date

计算所有date并排除这两个。

 =COUNT(colStart)-SUMPRODUCT((colStart>blkEnd)+(colEnd<blkStart)) 

假设开始date参考在B1上,结束date参考在B2上。

此外,请考虑数据集标题在单元格A4(Name)上开始,第一行数据是#5。

在D5上键入(并将公式向下拖动):

 =IF(OR(AND(B5>$B$1,B5<$B$2),AND(C5>$B$1,C5<$B$2),AND(B5<$B$1,C5>$B$2)),1,0) 

那么,在任何单元格中:

 =SUM(D5:D9)