SUMIF基于数组

时间:2014-08-04 13:14:35

标签: if-statement google-sheets sum array-formulas

不确定我是否忽略了某些东西,但似乎无法找到答案。我有两张纸:

第1页

country   |   cost
---------------------
DE        |    5
FR        |    4
US        |    3
MX        |    2
AT        |    1

第2页

region    | country
---------------------
EU        |   DE
EU        |   FR
AM        |   US
AM        |   MX
EU        |   AT

我想要的是所有欧洲国家的成本总和。在过去,我只使用带有VLOOKUP的C列作为Sheet 1中的区域,然后对这些数据进行SUMIF。我想避免这种情况,因为Sheet 1中的数据量巨大且动态。

我当然可以使用

=FILTER(Sheet2!country, Sheet2!region="EU")

会返回{“DE”,“AT”,“FR”}的数组,但我不能使用

=SUMIF(Sheet1!cost, Sheet1!country=FILTER(Sheet2!country, Sheet2!region="EU"))

有替代方案吗?

3 个答案:

答案 0 :(得分:1)

也许你正在寻找这样的东西:

=ArrayFormula(sum(sumif(A:A,filter(Sheet2!B:B,Sheet2!A:A="EU"),B:B)))

答案 1 :(得分:0)

然后,用INDEX MATCH替换VLOOKUP,

= IFERROR(INDEX(Sheet2!$ A $ 2:A $ 6,MATCH(A3,Sheet2!$ B $ 2:B $ 6,0))

其中表2中的col B是国家/地区,col A是区域

答案 2 :(得分:-1)

为了使用VLOOKUP,您必须更改工作表2的布局,使其在第1列中具有国家/地区在第2列中具有区域

然后你可以在第一张的col C中使用VLOOKUP

= VLOOKUP(A3,Sheet4!$ A $ 2:$ B $ 6,2) 向下拖动

总结:

= sumif(C3:C7," EU",B3:B7)