首页 文章

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

提问于
浏览
0

我正在尝试使用以下公式在“结果”表单中自动填充Google表格列,该公式从“来源”电子表格中提取数据:

= IFERROR(INDEX(来源!$ B $ 2:$ D,MATCH($ A2&C $ 1,来源!$ B $ 2:$ B&Source!$ C $ 2:$ C,0),3),“”)

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

即,这些都不起作用:

= ArrayFormula(IFERROR(INDEX(来源!$ B $ 2:$ D,MATCH($ A2&C $ 1,来源!$ B $ 2:$ B&Source!$ C $ 2:$ C,0),3),“”))= ArrayFormula (IFERROR(INDEX(来源!$ B $ 2:$ D,MATCH($ A2:$ A&C $ 1,来源!$ B $ 2:$ B&Source!$ C $ 2:$ C,0),3),“”))

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

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

2 回答

  • 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

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

    • MATCH 中的第二个参数应该有 ARRAYFORMULA ,否则您基本上只与第一个元素匹配 .

    • INDEX 不适用于 ARRAYFORMULA . 它只能搜索给定范围内的单个值 .

    第一部分可以通过在 MATCH 中添加 ARRAYFORMULA 来解决 .

    如果您没有搜索单元格组合(日期和名称),那么简单的 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))
    
  • 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")

相关问题