如何引用公式中的合并单元格(或 "bottom-up" 范围)

How to refer to a merged cell in a formula (or to a "bottom-up" range)

我在 Google 表格上得到了这个(长)table:

B列的单元格可以垂直合并,但每个多单元格的行数是随机的。

因为对于每个多单元格,顶部单元格是包含值的单元格,我需要使用一个公式,例如,引用单元格 B1 中的单元格 A1A2,在单元格 A3A4A5 中的单元格 B3,依此类推。

我想建立一种自下而上的联合。例如。如果我在单元格 A10 中,我想从 $B10 向顶部移动,直到找到一个非空值(即直到 $B7)。 为此,我尝试将上述公式插入 A10:

=INDEX($B10:$B,MATCH(FALSE,ISBLANK($B10:$B),FALSE))

但它不接受从端点较低位置开始的范围。或者,更好的是,这样的范围将自动翻转为 $B:$B10。因此,第一个非空值是 $B 中的一个, A10 中的返回值是 3 而不是 1.

有没有办法表达这种倒置的范围?如果不可能,我该如何解决这个问题?

您可以用值填充 C 列

=ArrayFormula(lookup(row(B1:B),row(B1:B)/if(B1:B<>"",1,0),B1:B))

或者,对于一个特定的行,您可以通过

检索最后一个值
=ArrayFormula(lookup(row(),row(B:B)/if(B:B<>"",1,0),B:B))

在 A10 或您可以使用的任何其他行中:

=INDEX(VLOOKUP(ROW(), IF(B:B<>"", {ROW(B:B), B:B}), 2))

如果您想用 B 值填充整个 A 列,请在 A1 中使用:

=INDEX(VLOOKUP(ROW(B:B), IF(B:B<>"", {ROW(B:B), B:B}), 2))