【问题标题】:Excel - Formula to calculate difference between columns with blank cellsExcel - 计算具有空白单元格的列之间差异的公式
【发布时间】:2017-04-08 19:21:32
【问题描述】:

我有一个 Excel 表,其值类似于下表。

-------------------------------------
|  A  |  B  |  C  |  D  |  E  |  F  |
-------------------------------------
|   95|     |   98|   96|   95|     |
-------------------------------------
|   96|   95|     |   92|   91|     |
-------------------------------------
|   93|     |   92|   98|   94|     |
-------------------------------------
|   92|   98|     |   95|   92|     |
-------------------------------------
|   95|     |   99|   92|   98|     |
-------------------------------------

F1 的公式应该是=(B1-A1)+(C1-B1)+(D1-C1)+(E1-D1)

但是,有些单元格是空白的。因此,如果单元格为空白,则应占用下一个单元格。

例如; F1 应该是 =(C1-A1)+(D1-C1)+(E1-D1)
F2 应该是 =(B2-A2)+(D2-B2)+(E2-D2)
等等……

是否有一个公式可以自动执行此操作?

【问题讨论】:

  • A1 和 E1 也可以为空吗?对于您展示的所有示例,答案只是 E1-A1,因为中间的单元格抵消了。
  • 是的。任何单元格都可以是空白的。 F中的单元格可以为0或负或正。
  • 所以,要明确一点,您的第三行应该解析为-186,而不是-93,对吗?

标签: excel excel-formula


【解决方案1】:

公式:

= (B1-A1) + (C1-B1) + (D1-C1) + (E1-D1)

也可以写成:

= B1 - A1 + C1 - B1 + D1 - C1 + E1 - D1

= - A1 + (B1 - B1) + (C1 - C1) + (D1 - D1) + E1

其中只有第一个和最后一个值占主导地位,因为所有其他 void 本身,因此留下这个公式:

= - A1 + E1

所以公式就变成了last non-blank value减去first non-blank value

试试这个公式:

= INDEX( $A1:$E1, 0, AGGREGATE( 14, 6, COLUMN(1:1) / ( $A1:$E1 <> "" ), 1 ))
- INDEX( $A1:$E1, 0, AGGREGATE( 15, 6, COLUMN(1:1) / ( $A1:$E1 <> "") ,1 ))

有关使用的工作表函数的进一步说明,请参阅这些页面:

AGGREGATE function, INDEX function.

【讨论】:

    猜你喜欢
    • 2017-02-26
    • 1970-01-01
    • 1970-01-01
    • 2020-02-03
    • 1970-01-01
    • 2019-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多