ARRAYFORMULA在Google表格中自动填充公式的问题

时间:2016-01-19 19:55:12

标签: arrays google-sheets google-spreadsheet-api

我试图在"结果"中自动填充Google表格列。具有以下公式的工作表,该工具从"来源"电子表格:

= IFERROR(INDEX(来源$ B $ 2:$ d,MATCH($ A2和C $ 1,源$ B $ 2:!!$ B和源$ C ​​$ 2:$ C,0),3),& #34;")

当我将该公式放在ARRAYFORMULA中时,它不会自动填充,并且将MATCH search_key更改为范围(即$ A2:$ A& C $ 1)并不能解决问题。

即,这些都不起作用:

= ARRAYFORMULA(IFERROR(INDEX(来源$ B $ 2:$ d,MATCH($ A2和C $ 1,源$ B $ 2:!!$ B和源$ C ​​$ 2:$ C,0),3) ,"")) != ARRAYFORMULA(IFERROR(INDEX(来源$ B $ 2:$ d,MATCH($ A2:$ A和C $ 1,源$ B $ 2:$ B和源$ C ​​$ 2:!$ C,0),3) ,""))

有没有办法解决这个问题?或者另一种自动填充公式的方法?我也可以使用除INDEX / MATCH之外的函数,只要它可以根据两个垂直标准进行查找。不幸的是,我不认为数据透视表适合我的目的,因为我的"结果"页面还查询另一个电子表格以提供其他信息。

此处示例:https://docs.google.com/spreadsheets/d/1dsaMYsJeZl2o_rNTLwaVhnEehFvAKRMXghAJeEK220s/edit?usp=sharing

2 个答案:

答案 0 :(得分:0)

这是您正在寻找的公式:

=ARRAYFORMULA(IFERROR(HLOOKUP(Source!$D$2,Source!$D$2:$D$11,MATCH($A2:$A4&C$1,ARRAYFORMULA(Source!$B$2:$B&Source!$C$2:$C),0),0),0))

我对此进行了测试,效果非常好。

<强> TL; DR

要回答你的公式出错的原因,

  1. MATCH中的第二个参数应该有ARRAYFORMULA,否则您基本上只与第一个元素匹配。
  2. INDEX不适用于ARRAYFORMULA。它只能搜索给定范围内的单个值。
  3. 第一部分可以通过在ARRAYFORMULA内添加MATCH来解决。

    如果您没有搜索单元格组合(日期和名称),则简单的VLOOKUP可以解决第二个问题。一个扭曲的HLOOKUP来救你。

    没有IFERROR部分,公式如下:

    =ARRAYFORMULA(HLOOKUP(Source!$D$2,Source!$D$2:$D$11,MATCH($A2:$A4&C$1,ARRAYFORMULA(Source!$B$2:$B&Source!$C$2:$C),0),0))
    

答案 1 :(得分:0)

此公式产生相同的输出(参见单元格I1):

=QUERY({Source!A:D,ARRAYFORMULA(VLOOKUP(Source!B:B,'Project Lookup'!A:B,2,0))},"select Col2,Col5,sum(Col4) where Col1 is not null group by Col2,Col5 pivot Col3")