Excel:如何将涉及日期范围的指定日期的列与日期相加

时间:2017-12-21 16:33:30

标签: excel excel-formula

我确定我已经用一个简短的公式看到了这一点,但我很难记住如何做到这一点。

我试图找到一个日期在一个区间内的位置,并将另一列与从该区间中的那一点到所有指定日期间隔的末尾相加。

因此,在下图中,区间在D和E列中,要查找的日期在单元格F1中,即12/12/2016

我想找到12/12/2016在范围内的位置,并相应地对F列求和,即12/12/2016 - 13/12/2016(2天),然后所有后续时间段为2 + 6+2+1+3 = 14 。我将此结果返回到单元格J14

Data

我已经使用直方图的想法来计算这个,但是这个公式很大而且不实用,我只知道我已经看到了类似的问题,在SO的某个地方却无法找到它,这样就可以了仅SUMPRODUCTOFFSET。我猜也可以使用FREQUENCY

所以我现在的目标是:

=SUMPRODUCT(OFFSET(F6,MATCH(TRUE,OFFSET(E6,0,0,COUNT(E6:E1048576),)>F1,0)-1,0,COUNTA(F6:F1048576),))-(F1-OFFSET(D6,MATCH(TRUE,OFFSET(E6,0,0,COUNT(E6:E1048576),)>F1,0)-1,,,))

如果我把它分成几个阶段,我会发现哪个桶(范围)具有目标值:

={MATCH(TRUE,OFFSET(E6,0,0,COUNT(E6:E1048576),)>F1,0)}

我用以下方法计算距离:

=F1-OFFSET(D6,H13-1,,,)

我从这一点总结到范围的结尾:

=SUMPRODUCT(OFFSET(F6,H13-1,0,COUNTA(F6:F1048576),))-I13

那么,任何人都可以帮助我使用更短效的配方吗?

数据:

| Start of measurement | 12/12/2016 |                |
|----------------------|------------|----------------|
|                      |            |                |
|                      |            |                |
|                      |            |                |
| From                 | To         | Number of days |
| 13/11/2016           | 17/11/2016 | 5              |
| 10/12/2016           | 13/12/2016 | 4              |
| 03/02/2017           | 08/02/2017 | 6              |
| 06/12/2017           | 07/12/2017 | 2              |
| 09/12/2017           | 09/12/2017 | 1              |
| 12/12/2017           | 14/12/2017 | 3              |

2 个答案:

答案 0 :(得分:1)

这个怎么样?

=SUMIFS(F6:F11,D6:D11,">="&F1)+MINIFS(E6:E11,E6:E11,">="&F1)-F1+1

SUMIFS()代表6+2+1+3部分,MINIFS() - F1 + 1代表2部分。

请注意,___IFS()函数更新,在旧版本的Excel中不可用。

答案 1 :(得分:1)

这应该适合你:

=SUMIF(E6:E11,">="&F1,F6:F11)-F1+INDEX(D6:D11,MATCH(F1,D6:D11))