Excel公式引用单元格范围内最后一个单元格上方

我正在尝试设置一个公式来自动计算范围内最近添加的单元格(其中包括范围底部的#N / A值)与其上面的单元格之间的百分比变化。 我一直在使用这个公式来获取底部的值,而不是#N / A单元格:

LOOKUP(2, 1/NOT(ISNA(G8:G19)), G8:G19) 

哪个工作正常。 我首先想到如何到达上面的单元格是使用OFFSET,如下所示:

 OFFSET(LOOKUP(2, 1/NOT(ISNA(G8:G19)), G8:G19), -1, 0) 

但这给了我一个错误,我想是因为查找函数返回单元格中的值而不是单元格引用。 我应该如何格式化一个函数来返回一个范围内的最后一个非N / A单元格之上的单元格的值?

尝试使用这个替代方法来寻找列G中最后一个非错误的数值。

 =index(G:G, match(1e99, G:G))/index(G:G, match(1e99, G:G)-1) 

使用MATCH查找列中的最后一个数字将行号返回到INDEX 。 从行号中减去1是一件简单的事情。

一种方法是使用这个数组公式:

 =INDEX($G$8:$G$19,MATCH(2,IF(NOT(ISNA($G$8:$G$19)),1))-1) 

作为一个数组公式,在退出编辑模式而不是input时,必须用Ctrl-Shift-Enter确认。 如果正确完成,则Excel将在公式周围放置{}

在这里输入图像说明