如何有条件地对excel中的单元格求和?

时间:2012-08-14 06:37:37

标签: excel-formula

这是我正在使用的表格(ascii艺术表现形式):

|---|---------|-----------|--
|   |A        |B          |
|---|---------------------|--
|1  |price    |override   |
|---|---------|-----------|--
|2  |10       |           |
|---|---------|-----------|--
|3  |20       |100        |
|---|---------|-----------|--
|4  |30       |           |
|---|---------|-----------|--
|5  |40       |90         |
|---|---------|-----------|--
|6  |50       |           |
|---|---------|-----------|--
|7  |150      |280        | <-- SUMS
|---|---------|-----------|--
|   |         |           |

列A有一些价格,列B有超值价格(如果有)。 第1行到第6行有价格,第7行有总和。

第7行计算为“= SUM(A1:A7)”

我想为单元格B7编写一个公式,它将执行以下操作:

for every cell in range A1:A7
    if the override field for that price is blank
        add the original price to the total
    else
        add the override price to the total

我的问题:上面会采用什么公式?

我看过IF(无法弄清楚如何在一个范围内应用它)和SUMIF(无法弄清楚如何获得“当前细胞”和“相对细胞”),但我想不到一种方法来做到这一点。我是excel公式的新手。

3 个答案:

答案 0 :(得分:8)

尝试数组公式怎么样?在单元格B7中,尝试添加以下内容:

=SUM(IF(ISBLANK(B2:B7), A2:A7, B2:B7))

然后按Ctrl+Shift+Enter输入数组公式。这将检查B列中是否有值并在总和中使用它;否则,它将使用A列中的值。

答案 1 :(得分:0)

似乎最简单的方法是创建第三列,您可以使用=IF(ISBLANK(B1); A1; B1)公式按价格或覆盖填充哪些单元格。然后将鼠标拖动到所有单元格上(相应地更新它)。然后你只需在第三列中加总值。 对不起,不是excel艺术家

答案 2 :(得分:0)

我会有一个新的row.row C来收取总和所需的价格。

C行就像这样

if(B1 = "",A1,B1)

你将有C行

C

10
100
30
90
50

然后总结这一行C.你会得到你想要的东西。