交叉日期范围的天数(表)

时间:2015-11-19 08:57:34

标签: excel date excel-formula intersection

我有两张桌子:

表1:

Start Date | End Date   | Value
--------------------------------
dd.mm.yyyy | dd.mm.yyyy | 3

表2:

Start Date | End Date   | Value
--------------------------------
dd.mm.yyyy | dd.mm.yyyy | ????

表2 的值应按以下方式计算:

  1. 查找表1中表1的开始日期和结束日期的所有行 与表2的当前行开始和结束日期相交
  2. 对于每一行,将表1的值乘以 相交的日子
  3. 总结这些值
  4. 示例:

    表1:

    Start Date | End Date   | Value
    --------------------------------
    01.01.2015 | 05.01.2015 | 3
    03.01.2015 | 08.01.2015 | 6
    

    表2:

    Start Date | End Date   | Value
    --------------------------------
    02.01.2015 | 07.01.2015 | (4 * 3) + (5 * 6)
    

    可以通过以下方式细分价值:

    (表1中的4天交叉,第1行*第1行的值)+(表1中的5天交叉,第2行*第2行的值)

    不幸的是,我真的不知道如何做到这一点。最好的是如果不涉及VBA(只有公式)。

    有什么想法吗?

    谢谢你!

1 个答案:

答案 0 :(得分:0)

获取两个日期范围交集的基本公式为: -

MIN(End1,End2)-MAX(Start1,Start2)+1

如果结果为零或负数,则没有重叠。

我想把它放到一个数组公式中,因为每个结果必须乘以表1的同一行中的值,但MIN和MAX不起作用所以我最终得到了很多IF语句: -

=SUM(IF(IF($B$2:$B$3<F2,$B$2:$B$3,F2)-IF($A$2:$A$3>E2,$A$2:$A$3,E2)<0,0,
IF($B$2:$B$3<F2,$B$2:$B$3,F2)-IF($A$2:$A$3>E2,$A$2:$A$3,E2)+1)*$C$2:$C$3)

其中表1数据在A2:C3中,表2数据在E2:G2中。

需要使用 Ctrl Shift 输入

在G2中输入

Will post screen shot later