【问题标题】:Excel: How to sum a column to date from a specified date where date ranges are involvedExcel:如何从涉及日期范围的指定日期对列进行总和
【发布时间】: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


【解决方案1】:

这应该适合你:

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

【讨论】:

  • 能否使用动态范围进行扩展,以便自动更新新范围?
  • 是的,这不会造成任何问题。您可以使用整列引用或定义动态命名范围。
【解决方案2】:

这个怎么样?

=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 中不可用。

【讨论】:

  • 尽管从头开始输入,但仍然会得到 #Name。
  • 这是由于 MINIFS 部分,MS Office Professional Plus 2016 没有给我任何提示并且似乎不接受。
  • 应该在 2016 年工作,除非 2016 年有更新?我明天再去一次。
  • 现在赞成,因为找到了所需的构建信息。对延误表示歉意。
猜你喜欢
  • 2011-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-08
  • 1970-01-01
  • 2020-06-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多