首页 > 解决方案 > Excel:根据输入聚合列的元素

问题描述

在此处输入图像描述

我想对上表进行动态分析:列表按值排序。如果达到输入,它应该自下而上聚合元素并停止。然后它应该返回时间总和。在这种情况下,输入限制为 50,因此 22+17 = 39 低于 50,但 22+17+14 = 53 高于 50。所以它应该给我 25+20 ) 45 分钟。

我尝试使用聚合功能,但一旦我按下它就会返回错误。

提前感谢您的帮助!

标签: excellistinputsumaggregate

解决方案


我喜欢表格,因为您有动态范围参考,如果您从表格中添加/删除行,它们会调整。

  • 创建一个并命名它tbl

  • 将两个帮助列添加到表中,创建一个反向运行总计(从下往上进行运行总计)。

  • 然后,您可以使用XLOOKUP来进行匹配。

在此处输入图像描述

Value RRT: =SUM(INDEX([Value],ROWS([Value])):[@Value])
time RRT: =SUM(INDEX([time],ROWS([time])):[@time])
result: =XLOOKUP(input,tbl[Value RRT],tbl[time RRT],"",-1,-1)

对于外观,您可以隐藏RRT 列,也可以将它们放置在工作表的其他位置。如果将它们与表格分开,则必须在公式中包含表格引用,并根据需要“填写”公式。所以它不会像让它们成为桌子的一部分那样充满活力。


推荐阅读