我正在尝试使用以下公式在“结果”表单中自动填充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 回答
这是您正在寻找的公式:
我测试了这个并且它工作得很好 .
TL;DR
要回答你的公式出错的原因,
MATCH
中的第二个参数应该有ARRAYFORMULA
,否则您基本上只与第一个元素匹配 .INDEX
不适用于ARRAYFORMULA
. 它只能搜索给定范围内的单个值 .第一部分可以通过在
MATCH
中添加ARRAYFORMULA
来解决 .如果您没有搜索单元格组合(日期和名称),那么简单的
VLOOKUP
可以解决第二个问题 . 扭曲的HLOOKUP
来救你 .没有
IFERROR
部分,公式如下所示:该公式产生相同的输出(参见单元格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")