如何抓取最后一个非空行?
How to grab the last non empty row?
情况是这样的。在这种情况下,我将从第 2 行开始作为起点。在 B 列中,我想记录最后一个非空 A 列的行。例如:B 列中的第一个数据是 2,这是第一行,然后在下一行中,只要 A 列为空,它就会保留“2”,直到我达到 A 列中的值 (1)。当它到达 A 列(第 7 行)中的下一个非空行时,B 中的值现在将保留该值 (7) 并且它将一直保持该值,直到它到达 A 中的下一个非空行,这是第15行等希望我能解释清楚
现在我只在 B2 单元格中使用基本公式:
=if( A2<>1, min( row(A2), indirect( "b" & (row(A2) -1) ) ) , row( A2) )
然后复制到B列的其他单元格。有用。但我只是想将其转换为 arrayformula() 并且没有运气。有谁知道如何使用 arrayformula 使其工作?
试试这个:
=ArrayFormula(vlookup(row(A2:A24),query({row();ArrayFormula(value(substitute(A3:A24,1,row(A3:A24))))},"select * where Col1>0"),1,true))
它有几个阶段:
首先,它使用 row() 从第一个单元格中获取行号。然后它将 A 列中的所有 1 个单元格替换为相应的行号。然后使用查询删除空值或 0 值。我有一小 table 个:
2
7
15
19
下一阶段是从 a2:a24 中获取每个行号并通过我的 table 进行 vlookup。
使用带有 'true' 参数的 vlookup,它 returns 距 table 最近的值,该值小于测试的行号。所以2returns2、3returns2、4returns2等
使用:
=INDEX(VLOOKUP(ROW(A2:A), {2; FILTER(ROW(A3:A), A3:A<>"")}, 1, 1))
情况是这样的。在这种情况下,我将从第 2 行开始作为起点。在 B 列中,我想记录最后一个非空 A 列的行。例如:B 列中的第一个数据是 2,这是第一行,然后在下一行中,只要 A 列为空,它就会保留“2”,直到我达到 A 列中的值 (1)。当它到达 A 列(第 7 行)中的下一个非空行时,B 中的值现在将保留该值 (7) 并且它将一直保持该值,直到它到达 A 中的下一个非空行,这是第15行等希望我能解释清楚
现在我只在 B2 单元格中使用基本公式:
=if( A2<>1, min( row(A2), indirect( "b" & (row(A2) -1) ) ) , row( A2) )
然后复制到B列的其他单元格。有用。但我只是想将其转换为 arrayformula() 并且没有运气。有谁知道如何使用 arrayformula 使其工作?
试试这个:
=ArrayFormula(vlookup(row(A2:A24),query({row();ArrayFormula(value(substitute(A3:A24,1,row(A3:A24))))},"select * where Col1>0"),1,true))
它有几个阶段: 首先,它使用 row() 从第一个单元格中获取行号。然后它将 A 列中的所有 1 个单元格替换为相应的行号。然后使用查询删除空值或 0 值。我有一小 table 个:
2 7 15 19
下一阶段是从 a2:a24 中获取每个行号并通过我的 table 进行 vlookup。 使用带有 'true' 参数的 vlookup,它 returns 距 table 最近的值,该值小于测试的行号。所以2returns2、3returns2、4returns2等
使用:
=INDEX(VLOOKUP(ROW(A2:A), {2; FILTER(ROW(A3:A), A3:A<>"")}, 1, 1))