Excel中的贪心求和

Excel中的贪心求和,excel,excel-formula,Excel,Excel Formula,我在创建实现“贪婪”求和的公式(不是宏,这很容易)时遇到问题。“贪婪”总和将行中的值添加到指定的限制。例如: 如果限制为3,则第I行中的值为1;1.2=>公式应返回2(1+1,因为加2将越过限制) 你能帮我吗 您可以尝试使用索引功能设置输入范围的限制。假设你有这些号码 1; 1; 5; 2; 1; 1; 1; 1 在单元格F1:M1中 =SUM(INDEX(F1:M1,1,1):INDEX(F1:M1,1,3)) 将返回(1+1+5);也就是说,范围内第一个单元格中的值小于范围内第三个单元格

我在创建实现“贪婪”求和的公式(不是宏,这很容易)时遇到问题。“贪婪”总和将行中的值添加到指定的限制。例如: 如果限制为3,则第I行中的值为1;1.2=>公式应返回2(1+1,因为加2将越过限制)


你能帮我吗

您可以尝试使用
索引
功能设置输入范围的限制。假设你有这些号码

1; 1; 5; 2; 1; 1; 1; 1
在单元格
F1:M1

=SUM(INDEX(F1:M1,1,1):INDEX(F1:M1,1,3))

将返回
(1+1+5)
;也就是说,范围内第一个单元格中的值小于范围内第三个单元格中的值。

假设
A2:C2中的值和
A1中的阈值,数组公式**

=IF(A2>A1,“无解”,IF(和(A2:C2)=转置(列(A2:C2)))>A1,0)-1))

问候


**数组公式的输入方式与“标准”公式不同。不要只按ENTER键,而是先按住CTRL和SHIFT键,然后再按ENTER键。如果您做得正确,您会注意到Excel在公式周围放了一个大括号{}(尽管您自己不要尝试手动插入这些括号)。

OP不想要一个范围的前三个,而是要求和,直到达到阈值为止。因此,如果阈值为4,则只有前两个会相加。如果阈值是8,那么使用您的示例作为参考,前三个阈值就是8。但是不要使用偏移或间接。请参阅。@Jeeped,但如果存在非易失性解决方案,则应避免使用易失性解决方案(当然,后者不会采取过度复杂的措施来避免所述的易失性)。@XORLX-是,该链接仅显示返回计数的公式。它仍需修改,以显示阈值前的实际总数。指数很可能被抵消部分所取代。