如何引用公式中的合并单元格(或 "bottom-up" 范围)
How to refer to a merged cell in a formula (or to a "bottom-up" range)
我在 Google 表格上得到了这个(长)table:
B列的单元格可以垂直合并,但每个多单元格的行数是随机的。
因为对于每个多单元格,顶部单元格是包含值的单元格,我需要使用一个公式,例如,引用单元格 B1
中的单元格 A1
和 A2
,在单元格 A3
、A4
和 A5
中的单元格 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))
我在 Google 表格上得到了这个(长)table:
B列的单元格可以垂直合并,但每个多单元格的行数是随机的。
因为对于每个多单元格,顶部单元格是包含值的单元格,我需要使用一个公式,例如,引用单元格 B1
中的单元格 A1
和 A2
,在单元格 A3
、A4
和 A5
中的单元格 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))