如何使用Excel确定多个日期范围之间的天数?

时间:2014-11-08 04:22:52

标签: excel excel-formula

嘿希望有人可以帮助我,第一次发帖但是我很难在excel写一个公式来记录休息时间以及它们发生的那一周。基本上我有一个周结束日期列表,可能会不时发生休息(或休息),我想要的是能够记录休息范围(比如8/11 / 2014-22 / 11/2014)和让公式提供每周一次的值,该值由该中断影响,显示该时期内有多少天受到影响。

EG。

WEEK | WEEKEND | BREAK

第1周10/08/2014?

第2周17/08/2014?

第3周11/08/2014?

第4周18/08/2014?

BREAKS

Break 1 11/08 / 2014-13 / 08/2014

Break 2 17/08 / 2014-18 / 08/2014

希望这是有道理的,我已经尝试将其作为IF公式编写,但是要继续试图让范围正确并使其不超过该周的7天。想想我可能完全以错误的方式接近它。

提前致谢!

1 个答案:

答案 0 :(得分:0)

尝试以下方法。它不会扩展 - 如果你有很多中断,VBA宏可能是要走的路(也可能是阵列,但我怀疑它会很痛苦。)

D2中的公式应与C2相同,除非引用第11行替换为对第12行的引用。在E2中,您将使用第13行等。将公式放入C2-> Y2(或许多你需要)你应该能够复制第2行。

   A      | B       | C                       | D          | ... | Z
1  WEEK   | WEEKEND | BREAK1                  | BREAK2     | ... | DAYS OUT
2  week 1 | 10/8/14 | = if(and($b$11>($b2-7), | = if(and...| ... | =sum(c2:y2)
                               $b$11<=$b2),
                           if($b2<$c$11,$b2-$b$11+1,$c$11-$b$11+1), 
                           if(and($b2-$c$11<7,$b2>=$c$11),$c$11-($b2-6)+1,0))

3  week 2 | 17/8/14 | = if(and($b$11>($b3-7),
                           ...
4 ...
....
10 BREAK  | START   | END
11 Break 1| 11/8/14 | 13/8/14
12 Break 2| 17/8/14 | 18/8/14
13 ...

C2中的公式:

  1. 检查在周末结束的一周内是否开始休息
  2. 如果是,它会检查它是否在本周结束。如果是这样,那些日子就是休息日(休息结束 - 休息开始+ 1)。如果不是这样的话,那些日子就是日子 休息开始到周末(周末 - 休息开始+ 1)
  3. 如果休息时间没有在周末结束的一周开始,请检查休息时间是否结束。如果是这样,那么日子就是(休息结束 - 周开始+ 1)。否则,就没有日子了。