【问题标题】:Excel: Cumulative sum of min values of 2 columns without needing to create an extra columnExcel:2列最小值的累积总和,无需创建额外的列
【发布时间】:2019-10-11 05:50:13
【问题描述】:

我有两列需要找到最小值,然后创建它们的累积总和。我可以通过创建一个额外的列来保存最小值然后对它们进行累积求和来做到这一点,例如:

Col1 Col2 min(Col1, Col2) Cumulative Sum of Mins
   1    3               1                      1
   4    2               2                      3
   3    5               3                      6

有没有办法在不创建额外列的情况下做到这一点?

我已经尝试过sum(if(A$2:A2 < B$2:B2, A$2:A2, B$2:B2)),我从另一个相似但不相似的问题中找到(并修改)它,但这似乎只是找到整个范围内的最小值并将其输出到单个单元格中;将公式复制并粘贴到其他字段会导致:

公式中使用的值的数据类型错误

【问题讨论】:

    标签: excel excel-2016 cumulative-sum


    【解决方案1】:

    把这个放在C2中并复制下来:

    =IFERROR(--C1,0)+MIN(A2:B2)
    


    另一种方法是使用 SUMPRODUCT

    =SUMPRODUCT(($A$2:A2<$B$2:B2)*($A$2:A2)+($A$2:A2>$B$2:B2)*($B$2:B2))
    

    但这是一个数组类型的公式,因此复制的每一行都会以指数方式增加计算次数。如果使用的行数过多,用户会在计算中看到时间延迟。

    【讨论】:

    • 完全不相关且随机的问题,但是如果您在第 1 行中没有列标题,这将如何工作?现在您的第一个数据将在A1:B1 中,而您的公式需要为--C0,这不起作用。我尝试删除第一行,它可以工作,但第一行现在有一个=IFERROR(--#REF!, 0)+MIN(A1:B1) 的公式,这不太好。
    • 这假设有第一行,这就是为什么我说把它放在 C2 而不是 C1。如果没有标头,则 OP 需要将 =MIN(A1:B1) 放入 C1 中,将另一个公式放入 C2 中。
    • 谢谢 - 我不知道为什么我没有想到自己将当前最小 val 添加到上一行的计算列中!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-16
    • 1970-01-01
    相关资源
    最近更新 更多