【发布时间】:2017-12-21 16:33:30
【问题描述】:
我确信我已经看到用一个简短的公式完成了这项工作,但我正在努力记住如何做到这一点。
我正在尝试查找某个日期在某个时间间隔内的位置,并将另一列相加,从该时间间隔内的那个点到所有指定日期时间间隔的结束。
因此,在下图中,间隔位于 D 和 E 列中,要查找的日期位于单元格 F1 中,即 12/12/2016。
我想找到 12/12/2016 在范围内的位置并相应地求和列 F,即 12/12/2016 - 13/12/2016(2 天),然后之后的所有间隔将是 2 + 6+2+1+3 = 14。我在单元格J14 中返回此结果。
我目前使用直方图的想法来计算这个,但是公式很大而且笨拙,我只知道我在 SO 的某个地方看到了一个类似的问题,但找不到它,用 @987654330 来做这个仅限 @ 和 OFFSET。我猜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 |
【问题讨论】:
-
=SUMIF(E6:E11,">="&F1,F6:F11)-F1+INDEX(D6:D11,MATCH(F1,D6:D11))调整范围以适应并将结果格式化为常规或数字 -
那是给我一个#NAME?目前有错误
-
评论中似乎有隐藏字符。删除公式中最后的
D11,手动重新输入 -
@tigeravatar 正确。如果您作为答案发布,我将奖励您作为第一个回复并支持亚历克西斯答案的人。
标签: excel excel-formula