如何在Google表格中的数组公式中进行相对引用

时间:2018-09-05 20:04:10

标签: google-sheets

这是我的问题的简单版本:

我想将以下公式更改为数组公式...

原始公式(来自单元格J2):

=if(F4="VM:",G4,J1)

我试图转换为数组公式(在单元格K1中):

=arrayformula(if(row(A:A)=1,G3,if(F:F = "VM:",G:G,indirect("K"&row(A:A)-1))))

这在F =“ VM:”的行上有效,但在其他行上返回#REF错误。功能INDIRECT参数1的值为'K0'。这不是有效的单元格/范围参考。

关于如何解决此问题的想法?


我的问题的更复杂版本。即为什么我要尝试这样做?...

我有一个奇怪的电子表格,其中的数据确实应该存在于Wiki中。

我想为每个人创建过滤器视图,以便他们可以轻松地仅对自己的供应商进行过滤。原始公式会起作用,但是随着更多供应商的加入,我希望该公式也能自动应用于这些行。

如果有更好的方法,我在听。

enter image description here

2 个答案:

答案 0 :(得分:1)

我不能完全理解您的需求,但是如果您想自动填充公式,则只需要在第4行中的desire列中使用此代码即可(您可以将其更改为其他任何代码-从这一点开始将自动填充) :

=ArrayFormula(if(F4:F="VM:",G4:G,J1:J))

这是您想要得到的吗?

澄清后:

仅在J2中需要此代码:

=ArrayFormula(VLOOKUP(ROW(J2:J),
  QUERY({F:G,ROW(G:G)},"select Col3,Col2 where Col1='VM:'",1)
,2,1)
)

enter image description here

为您工作吗?

答案 1 :(得分:0)

也许您只需要隐藏错误?

=IFERROR(ARRAYFORMULA(IF(ROW(A:A)=1,G3,IF(F:F = "VM:",G:G,INDIRECT("K"&ROW(A:A)-1)))),)