计算日期范围是否适合其他日期范围

时间:2013-12-26 17:00:15

标签: excel date date-range

我有一组数据,其中包含某些日期(名称,开始,结束)的人员姓名。

示例:

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

我想计算一下这个范围内的人数,这些人将在封锁日期前去度假。它应该返回4; JoeDavidPattyMegan

我的公式是:

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

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

B1B2是我的电子表格中的阻止日期。

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

视觉上我正在比较数字线。我只需要帮助就可以将其转换为代码。

3 个答案:

答案 0 :(得分:4)

只需将你的公式转一点。

如果开始日期等于或早于B2 AND 结束日期大于或等于B1,那么期间必须存在某种重叠 - 如果其中一个或另一个条件不成立则没有重叠,因此这个公式给出了你的计数

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

答案 1 :(得分:2)

以下是如何从杰瑞的答案的另一面来看待它。您有两个想要的场景。

  1. 阻止后的开始日期
  2. 阻止前的结束日期
  3. 计算所有日期并排除这两个日期。

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

答案 2 :(得分:1)

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

另外,请考虑数据集标题从单元格A4(名称)开始,第一行数据是#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)