我有一张Google工作表文档,其中多张工作表具有相同的列布局。如果列G =" cat",我想要对列J求和。
基本上,这个:
=SUMIF('A'!G3:G,"=cat", 'A'!J3:J) + SUMIF('B'!G3:G,"=cat", 'B'!J3:J) + SUMIF('C'!G3:G,"=cat", 'C'!J3:J)
但是,有很多床单,这很麻烦。我怎样才能将其减少到这样的程度:
=SUMIF(INDIRECT({A,B,C}&"!G3:G"), "=cat", INDIRECT({A,B,C}&"!J3:J"))
答案 0 :(得分:1)
excel有INDIRECT
数组公式的解决方案,请参见here。
不幸的是INDIRECT
doesn't support对google-sheets
无法使用语法{A,B,C}&"!G3:G
。
第一步是将公式简化为:
=SUM(FILTER({Sheet1!B:B;Sheet2!B:B},{Sheet1!A:A;Sheet2!A:A} = "Cat"))
困难的部分是手动键入带范围的所有工作表名称。我建议列出一个名为Sheets_List
的工作表名称列表:
Sheet1
Sheet2
然后使用join
生成正确的公式文本:
="{'"&JOIN("'!B:B;'",Sheets_List)&"'!B:B}"
结果是文本"{'Sheet1'!B:B;'Sheet2'!B:B}"
,用它来构建公式。