如何在总和中包括两列数据,直到达到某个值,然后对剩余的行只累加一列?

时间:2019-01-16 01:58:30

标签: excel excel-formula

说我有一个excel数据表,其中包含带有ID的已过时条目和两列“工作时间”,以及后续各列中的表格以汇总数据。

示例:

在此示例中,A到D列是原始数据,I列和J列是我当前拥有的公式,L和M列是我想要的最终数字。

我使用的列

{=IFERROR(INDEX($A$2:$A$15,MATCH(0,COUNTIF($I$1:I1,$A$2:$A$15), 0)),"")}

从A列中查找唯一ID。

J列使用

=MIN(SUM((SUMIF($A$2:$A$15,I2,$C$2:$C$15))+(SUMIF($A$2:$A$15,I2,$D$2:$D$15))))

对C列和D列的所有值求和,以包含在I列中。

基本上我想发生的是让J列将C和D列的所有值求和,直到这些值的总和为50,并且达到50后,它应该只求和C列中的剩余值

例如,对于ID 12345,它应该加上25 + 22 + 3,将总和取为50,这时应该对列C的剩余值求和(单元格C4的其余部分,忽略单元格D5,只保留汇总C列)。 12345的最终号码应为72。

注意:条目将始终按时间顺序进行。

1 个答案:

答案 0 :(得分:0)

我想到的最好的方法是使用一个帮助器列。使用此更新的帮助程序公式,只需按日期对数据进行排序。在E2单元格中,使用以下公式并复制下来:

=MAX(INDEX((A$1:A1=A2)*E$1:E1,))+C2+D2*(MAX(INDEX((A$1:A1=A2)*E$1:E1,))+C2<50)

要获得汇总表中的总和,请在单元格J2中使用此公式并向下复制:

=MAX(INDEX(($A$2:$A$15=I2)*$E$2:$E$15,))

您可以根据需要隐藏帮助器列,或将其移到其他工作表中。