我有以下Excel表:
Date | Value
===========+=======
24.02.2019 | 1350
25.02.2019 | 1120
26.02.2019 | 1200
|
|
|
===========+=======
DIFFERENCE | 80
底部总行(DIFFERENCE)应该计算表中最后插入的记录的值与上一条记录的值之间的差。明天当我插入新记录27.02.2019的值1300时,最下面一行应显示差异100(1300-1200)。最后插入的行和底部的总行之间有未定义的空白行数。
答案 0 :(得分:1)
这是另一个例子
=INDIRECT("B"&COUNTA(INDIRECT("B1:B"&ROW()-1)))-INDIRECT("B"&COUNTA(INDIRECT("B1:B"&ROW()-1))-1)
答案 1 :(得分:0)
嗯,这很有效,又快又脏……
=OFFSET(B1,LOOKUP(2,1/(B:B<>""),ROW(B:B))-1,,)-OFFSET(B1,LOOKUP(2,1/(B:B<>""),ROW(B:B))-2,,)
如果要在同一列中显示结果,则必须控制范围B:B ...
答案 2 :(得分:0)
我认为这里不需要OFFSET
和INDIRECT
,您可以像这样简单地使用INDEX:
=INDEX($B$2:$B$10,COUNTA($B$2:$B$10))-INDEX($B$2:$B$10,COUNTA($B$2:$B$10)-1)
注意:OFFSET
和INDIRECT
是易失函数,而INDEX
不是易失函数。易失性意味着如果工作簿中的任何地方发生任何更改,则必须重新计算其值。但是,在具有非易失性功能的情况下,仅当其参数(在本例中为$ B $ 2:$ B $ 10)更改时才启动重新计算。因此,总的来说,我的解决方案比之前发布的其他两个解决方案效率更高。