条件总和

时间:2013-08-13 13:36:05

标签: excel excel-vba excel-formula sum array-formulas vba

我需要一个快速的宏/公式。我有两列:

          A   |   B
              |    
       |  10  |   9  |
       |  11  |      |
       |  8   |   10 |
       |     N/A     |
       |  4   |      |
       |  7   |   8  |

total  |  40  |   27 |

现在我想在一个列中添加一个总和,该列将A列中的所有值相加,但是如果它存在,则将该值替换为B列中的值。

所以我希望总和最终为9 + 11 + 10 + 4 + 8 = 42

我不完全确定Excel计算的强大功能或如何在公式中执行for循环。

3 个答案:

答案 0 :(得分:4)

有很多方法可以做到这一点,但我会把两个总和加在一起......

假设您在单元格A1到B6中提供了问题中提供的数据,您的公式可能如下所示:

=SUMIF(B1:B6,"",A1:A6)+SUM(B1:B6)

从本质上讲,你说的是:

  1. 总和A1:A6任何地方B1:B6为空白
  2. PLUS

    1. 总和B1:B6
    2. 希望这有意义并且有所帮助!

答案 1 :(得分:3)

=SUM(IF(ISNUMBER(B1:B5),B1:B5,A1:A5))

会这样做。请注意,公式是数组公式;完成单元格输入后,按Ctrl + Shift + Return键,而不是Return键。这告诉Excel公式是数组类型。

我已经设置了5行;只需根据需要进行扩展。

答案 2 :(得分:2)

许多其他可能性之一可能是包含以下内容的辅助列:

=IF(ISBLANK(B3),A3,B3)  

向下复制(如有必要,向上复制!)

不一定更好比许多替代品更好但也许更容易看到'发生了什么'并且= IF可能已经熟悉了。