使用 ARRAYFORMULA 获取相对单元格引用?
Getting a relative cell reference using ARRAYFORMULA?
ArrayFormula 用于在多个不同(连续)位置重复相同的公式 - 对吗?
我想做的是使用 OFFSET 获取相对 相对 定位的单元格的值 current ArrayFormula 单元格。
因此,例如,ArrayFormula 中的每个单元格都应该能够显示其左侧单元格的值,如下所示(假设 ArrayFormula 是从 A2 到 A20):
=ArrayFormula(offset($A:$A, 0,
-1
, 1, 1))
这不起作用 - 对于 ArrayFormula 中的所有单元格,它只显示 A2 左侧单元格的值。
我怎样才能完成这项工作?任何类型的基于相对位置的集合都可以,我什至尝试过 indirect("R[0]C[-1]", FALSE)
和 indirect(address(row(),column()-1))
但两者的结果相同。
可以在此处找到我正在努力实现的示例:https://docs.google.com/spreadsheets/d/1qfGuiTLxPfUCjFh6tVtgofUNYvFm5jpqry--uxHEmaI/edit?usp=sharing
在此示例中,我尝试使用 OFFSET 获取 3 个值的范围,从当前单元格上一左一的单元格开始,到下一左一的单元格结束。然后我尝试获取该范围的 COUNTA。
第 Data
列混合包含空单元格和非空单元格。列 Formula
包含我的 ArrayFormula。 Expectation
列包含静态值,这些值是左侧列中相应单元格的正确值。
如您所见,Formula
中的所有单元格输出 3
,这是 B2 的正确值。
(请注意,在本例中,我在公式的开头添加了 if(row(A2:A29),
,以强制 ArrayFormula 起作用)
=ARRAYFORMULA(IFERROR(
IF(INDIRECT("A1:A"&MAX(IF(A:A<>"", ROW(A:A), )))<>"", 1, )+
{IF(INDIRECT("A2:A"&MAX(IF(A:A<>"", ROW(A:A), )))<>"", 1, ); ""}+
{IF(INDIRECT("A3:A"&MAX(IF(A:A<>"", ROW(A:A), )))<>"", 1, ); ""}))
ArrayFormula 用于在多个不同(连续)位置重复相同的公式 - 对吗?
我想做的是使用 OFFSET 获取相对 相对 定位的单元格的值 current ArrayFormula 单元格。
因此,例如,ArrayFormula 中的每个单元格都应该能够显示其左侧单元格的值,如下所示(假设 ArrayFormula 是从 A2 到 A20):
=ArrayFormula(offset($A:$A, 0,
-1
, 1, 1))
这不起作用 - 对于 ArrayFormula 中的所有单元格,它只显示 A2 左侧单元格的值。
我怎样才能完成这项工作?任何类型的基于相对位置的集合都可以,我什至尝试过 indirect("R[0]C[-1]", FALSE)
和 indirect(address(row(),column()-1))
但两者的结果相同。
可以在此处找到我正在努力实现的示例:https://docs.google.com/spreadsheets/d/1qfGuiTLxPfUCjFh6tVtgofUNYvFm5jpqry--uxHEmaI/edit?usp=sharing
在此示例中,我尝试使用 OFFSET 获取 3 个值的范围,从当前单元格上一左一的单元格开始,到下一左一的单元格结束。然后我尝试获取该范围的 COUNTA。
第 Data
列混合包含空单元格和非空单元格。列 Formula
包含我的 ArrayFormula。 Expectation
列包含静态值,这些值是左侧列中相应单元格的正确值。
如您所见,Formula
中的所有单元格输出 3
,这是 B2 的正确值。
(请注意,在本例中,我在公式的开头添加了 if(row(A2:A29),
,以强制 ArrayFormula 起作用)
=ARRAYFORMULA(IFERROR(
IF(INDIRECT("A1:A"&MAX(IF(A:A<>"", ROW(A:A), )))<>"", 1, )+
{IF(INDIRECT("A2:A"&MAX(IF(A:A<>"", ROW(A:A), )))<>"", 1, ); ""}+
{IF(INDIRECT("A3:A"&MAX(IF(A:A<>"", ROW(A:A), )))<>"", 1, ); ""}))