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

Duc*_*ppy 5 google-sheets google-sheets-formula

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

foo
-
-
-
-
(formula)
Run Code Online (Sandbox Code Playgroud)

其中-表示一个空白单元格,那么我希望该(formula)单元格找到对该单元格的引用,foo无论它们之间插入了多少空白单元格。可以随时在公式行和上一个非空白行之间插入测试列中带有空白单元格的新行,并且该公式应该能够处理该行。

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

一张可以进一步说明我的需求的图像(也许会引出其他方式来实现我的需求):

SO32890557 Q的例子

Nar*_*gam 5

使用FILTER,ROW,MAX + ISBLANK()公式来获取它,

在此处输入图片说明

=FILTER(B1:B9, ROW(B1:B9)=MAX(FILTER(ARRAYFORMULA(ROW(B1:B9)), NOT(ISBLANK(B1:B9)))))
Run Code Online (Sandbox Code Playgroud)

基本上可以满足您的需求。更准确地说,下面的公式是您所要求的“粘贴到任何地方”类型,只需将下面的公式粘贴到任何单元格上,它将为您提供最后一个非空白的单元格值。

=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))))))
Run Code Online (Sandbox Code Playgroud)