相交日期范围的天数 (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的值应按以下方式计算:
- 查找 Table 1 中开始和结束日期为 Table 1 的所有行
与 Table 2
的当前行开始和结束日期相交
- 对于每一行,将 Table 的值乘以 1
相交的日子
- 总结这些值
示例:
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=输入]
我有 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的值应按以下方式计算:
- 查找 Table 1 中开始和结束日期为 Table 1 的所有行 与 Table 2 的当前行开始和结束日期相交
- 对于每一行,将 Table 的值乘以 1 相交的日子
- 总结这些值
示例:
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=输入]