Excel 表中未定义空格数的最后几行之间的差异

Excel 表中未定义空格数的最后几行之间的差异,excel,Excel,我有以下Excel表格: Date | Value ===========+======= 24.02.2019 | 1350 25.02.2019 | 1120 26.02.2019 | 1200 | | | ===========+======= DIFFERENCE | 80 底部总行差异应计算表中最后一条插入记录的值与上一条记录的值之间的差异。当我明天插入值为1300的2019年2月27日的新记录

我有以下Excel表格:

Date       | Value
===========+=======
24.02.2019 |  1350
25.02.2019 |  1120
26.02.2019 |  1200
           |
           |
           |
===========+=======
DIFFERENCE |    80

底部总行差异应计算表中最后一条插入记录的值与上一条记录的值之间的差异。当我明天插入值为1300的2019年2月27日的新记录时,底部一行应显示差值100 1300-1200。最后插入的行和底部总行之间有未定义数量的空行。

好吧,这很有效,既快又脏

=OFFSET(B1,LOOKUP(2,1/(B:B<>""),ROW(B:B))-1,,)-OFFSET(B1,LOOKUP(2,1/(B:B<>""),ROW(B:B))-2,,)

如果希望结果在同一列中,则必须控制范围B:B..

,下面是另一个示例

=间接B&COUNTAINDIRECTB1:B&ROW-1-间接B&COUNTAINDIRECTB1:B&ROW-1-1

我认为这里不需要偏移和间接,您可以简单地使用如下索引:

=INDEX($B$2:$B$10,COUNTA($B$2:$B$10))-INDEX($B$2:$B$10,COUNTA($B$2:$B$10)-1)

注:偏移和间接是可变函数,而索引不是。Volatile意味着,如果工作簿中的任何地方发生更改,则必须重新计算其值。但是,对于非易失性函数,只有当其参数在本例中$B$2:$B$10发生变化时,才会启动重新计算。因此,总体而言,我的解决方案比之前发布的其他两个更有效。

这是事实,但我的答案基于未知数量的行和空行,差异位于B列。如果差异位于B列的绝对单元格中,则您完全正确!我想我们知道行数:它们结束于差行之上。就像我说的,如果OP的情况是这样,那么你是绝对正确的。事实上,另一种编写公式的方法可以是=INDEXB:B,COUNTAA:A-1-INDEXB:B,COUNTAA:A-2:这似乎是最优雅的解决方案。在我看来,将B字母与row给定的当前行连接以获得公式所需的范围似乎是一种肮脏的方式,尽管它是有效的。