1

这是我正在使用的表格(它的 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公式的新手。

4

3 回答 3

8

试试数组公式怎么样?在 cellB7中,尝试添加:

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

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

于 2012-08-14T06:46:38.037 回答
0

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

于 2012-08-14T06:51:51.460 回答
0

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

C行是这样的

if(B1 = "",A1,B1)

你将有 C 行

C

10
100
30
90
50

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

于 2012-08-14T06:53:03.750 回答