2017-04-07 79 views
0

我有一个Excel工作表,其值与下表类似。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)
等等...

是否有一个公式来自动完成这个?

+0

A1和E1也可能是空白的吗?对于你所展示的所有例子,答案只是E1-A1,因为它们之间的单元被取消。 –

+0

是的。任何单元都可以是空白的。 F中的单元格可以是0或负值或正值。 – user1777929

+0

因此,要清楚,你的第三行应该解析为“-186”,而不是“-93”,是否正确? – BruceWayne

回答

3

式中:

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

也可以写为:

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

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

,其中仅所述第一和最后一个值为准所有其他无效自己,从而留下这个公式:

= - 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 functionINDEX function

+0

非常感谢。这个公式工作! – user1777929

相关问题