【问题标题】:How do I conditionally sum cells in excel?如何有条件地对excel中的单元格求和?
【发布时间】:2012-08-14 06:37:37
【问题描述】:

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

【问题讨论】:

    标签: excel-formula


    【解决方案1】:

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

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

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

    【讨论】:

    • “数组公式”是关键——我不知道excel中有什么叫做“数组公式”的东西
    • 它非常有用——一开始可能很难掌握,但在很多情况下它可以让事情变得简单(比如这里:))。
    【解决方案2】:

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

    【讨论】:

    • 哈哈 - 最简单的解决方案,但我会尽一切努力避免额外的列。我正在寻找一个美观优雅的解决方案:)
    • “Beautiful excel”听起来像是一本厚厚而昂贵的书的名字:)
    【解决方案3】:

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

    C行是这样的

    if(B1 = "",A1,B1)
    

    你会有 C 行

    C
    
    10
    100
    30
    90
    50
    

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

    【讨论】:

      猜你喜欢
      • 2023-01-12
      • 1970-01-01
      • 1970-01-01
      • 2014-04-27
      • 1970-01-01
      • 2018-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多