2

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

          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 循环。

4

3 回答 3

4

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

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

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

本质上,您是在说:

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

  1. 总和 B1:B6

希望这是有道理的并有所帮助!

于 2013-08-13T13:42:44.457 回答
3
=SUM(IF(ISNUMBER(B1:B5),B1:B5,A1:A5))

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

我已将其设置为 5 行;只需根据需要扩展即可。

于 2013-08-13T13:42:37.377 回答
2

许多其他可能性之一可能是一个辅助列,其中包含:

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

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

不一定比许多替代方案更好,但可能更容易看到“正在发生的事情”,并且 =IF 可能已经很熟悉了。

于 2013-08-13T14:04:53.317 回答