Arrayformula 计算与 row()
Arrayformula calculation with row()
=OFFSET(INDIRECT($A),5+row()-2,4,1,1)
我希望在同一列的所有行中重复上述公式,因此计算将根据 row()
发生变化。我试着像下面这样说,H 列是结果所在的位置。但是 row()
没有跟随,所有结果都只是使用公式行。 $A$4 是我用来输入范围名称的地方。
=ARRAYFORMULA(D3:D&OFFSET(INDIRECT($A),5+row()-3,4,1,1))
我知道我可以把它拖下来,但自动总是更好。在我过度复杂化公式之前,是否有一个简单的解决方案来完成这项工作?
更新:
示例 sheet link
https://docs.google.com/spreadsheets/d/1di8a9I0Fv-vuQFDNfV3sPsnWbDuBWTNDYlvUAI5pOCk/edit?usp=sharing
我添加了一个新的 sheet(“Erik Help”),其中包含两个公式,每个公式都会 return 相同的结果:
=IFERROR(OFFSET(INDIRECT("CLASS_"&$A),5+row()-3,4,COUNT(INDEX(INDIRECT("CLASS_"&$A))),1),"NO DATA")
-或-
=IFERROR(QUERY({INDEX(INDIRECT("CLASS_"&$A),,5)},"Select * WHERE Col1 Is Not Null",0),"NO DATA")
D3 公式更好,因为它不依赖于公式所在的行(即,它可以放在任何地方并得到相同的结果)。它更“干净”(即,它没有 INDIRECT 子句的冗余)。如有必要,它也更易于阅读和编辑。
=OFFSET(INDIRECT($A),5+row()-2,4,1,1)
我希望在同一列的所有行中重复上述公式,因此计算将根据 row()
发生变化。我试着像下面这样说,H 列是结果所在的位置。但是 row()
没有跟随,所有结果都只是使用公式行。 $A$4 是我用来输入范围名称的地方。
=ARRAYFORMULA(D3:D&OFFSET(INDIRECT($A),5+row()-3,4,1,1))
我知道我可以把它拖下来,但自动总是更好。在我过度复杂化公式之前,是否有一个简单的解决方案来完成这项工作?
更新: 示例 sheet link https://docs.google.com/spreadsheets/d/1di8a9I0Fv-vuQFDNfV3sPsnWbDuBWTNDYlvUAI5pOCk/edit?usp=sharing
我添加了一个新的 sheet(“Erik Help”),其中包含两个公式,每个公式都会 return 相同的结果:
=IFERROR(OFFSET(INDIRECT("CLASS_"&$A),5+row()-3,4,COUNT(INDEX(INDIRECT("CLASS_"&$A))),1),"NO DATA")
-或-
=IFERROR(QUERY({INDEX(INDIRECT("CLASS_"&$A),,5)},"Select * WHERE Col1 Is Not Null",0),"NO DATA")
D3 公式更好,因为它不依赖于公式所在的行(即,它可以放在任何地方并得到相同的结果)。它更“干净”(即,它没有 INDIRECT 子句的冗余)。如有必要,它也更易于阅读和编辑。