如何找到当前单元格上方最近的非空白单元格?

How to find nearest non-blank cell above the current cell?

我有一列数据,我需要找到前一个非空白单元格。例如,如果我有以下数据:

foo
-
-
-
-
(formula)

其中 - 表示一个空白单元格,然后我希望 (formula) 单元格找到对包含 foo 的单元格的引用,无论它们之间插入了多少个空白单元格。测试列中包含空白单元格的新行可能会随时插入到公式行和之前的非空白行之间,公式应该能够处理这种情况。

理想情况下,我希望能够将公式放在一行的任何单元格中,以找到该行上方最近的非空白单元格,例如 A 列。

进一步说明我的需求的图片(并可能引出其他方法来做我想做的事):

使用FILTER, ROW, MAX + ISBLANK()公式得到,

=FILTER(B1:B9, ROW(B1:B9)=MAX(FILTER(ARRAYFORMULA(ROW(B1:B9)), NOT(ISBLANK(B1:B9)))))

这基本上可以满足您的需求。更准确地说,下面的公式是 "paste it anywhere" 根据您的要求输入,只需将下面的公式粘贴到任何单元格上,它就会为您提供最后一个非空白单元格值。

=FILTER( INDIRECT(CHAR(64+COLUMN())&"1:"&CHAR(64+COLUMN())&ROW()-1) , ROW(INDIRECT(CHAR(64+COLUMN())&"1:"&CHAR(64+COLUMN())&ROW()-1))=MAX( FILTER( ARRAYFORMULA(ROW(INDIRECT(CHAR(64+COLUMN())&"1:"&CHAR(64+COLUMN())&ROW()-1))) , NOT(ISBLANK(INDIRECT(CHAR(64+COLUMN())&"1:"&CHAR(64+COLUMN())&ROW()-1))))))

如果公式要走A9,请试试:

=index($A:$A,match("zzz",$A:$A9))