相交日期范围的天数 (Table)

Amount of days of intersected date ranges (Table)

我有 2 个 Table:

Table 1:

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

Table 2:

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

Table2的值应按以下方式计算:

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

示例:

Table 1:

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

Table 2:

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

其中值可以按以下方式细分:

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


不幸的是,我真的不知道该怎么做。最好是不涉及 VBA(仅涉及公式)。

有什么想法吗?

已经谢谢你了!

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

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

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

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

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

其中 table 1 个数据在 A2:C3 和 table 2 个数据在 E2:G2.

这需要在G2中用CtrlShiftEnter[=13=输入]