我试图在"结果"中自动填充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
答案 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 强>
要回答你的公式出错的原因,
MATCH
中的第二个参数应该有ARRAYFORMULA
,否则您基本上只与第一个元素匹配。INDEX
不适用于ARRAYFORMULA
。它只能搜索给定范围内的单个值。第一部分可以通过在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")