If statement 基于数组的SUMIF

If statement 基于数组的SUMIF,if-statement,google-sheets,sum,array-formulas,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 |

不确定我是否忽略了什么,但我似乎找不到答案。我有两张纸:

表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
我想要的是所有欧洲国家的总成本。在过去,我只是在表1的区域中使用了一个带VLOOKUP的C列,然后汇总了这些数据。我希望避免这种情况,因为工作表1中的数据量巨大且动态

我当然可以用

=FILTER(Sheet2!country, Sheet2!region="EU")
它将返回一个{“DE”,“AT”,“FR”}数组,但我不能使用

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

是否有其他替代方案?

为了使用VLOOKUP,您必须更改第2页的布局,以便在第1列有国家,在第2列有地区

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

=VLOOKUP(A3,表4!$A$2:$B$6,2) 尽可能向下拖动

对于sumif:


=sumif(C3:C7,“EU”,B3:B7)

然后,用索引匹配替换VLOOKUP

=IFERROR(索引(表2!$A$2:A$6,匹配(A3,表2!$B$2:B$6,0)))


表2中的B栏是国家,A栏是地区,也许你在寻找这样的东西:

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

我知道这一点,但正如我所说的,应该避免这样做,因为表格太大了,如果我早些时候提供,您可以使用sum,或者使用查询。这是一个。我非常感谢你的努力——你正在做的是一个更复杂的VLOOKUP版本,然后是一个基于它的SUMIF。我知道怎么做,但它根本不能回答我的问题。问题是:我怎么才能得到这些区域的总和。不是国家和地区本身。你可以使用我在上一篇文章中提供的sumif吗?或者使用查询..Sumif需要一个条件。我的问题是如何使用数组作为标准,或者什么是合理的替代方案。这并不能解决这类问题,因为返回的数据不是数组。我认为除了使用索引匹配将区域带过来,然后使用一个查询,例如=查询(A1:D6,“选择D,求和(B)按D分组”,1)对成本求和并列出区域之外,没有其他方法。这样你就不需要SUMIF了。也许其他人有更好的解决办法。