将函数应用于公式中的参数

如何将函数应用于SUMIF或COUNTIF公式的参数? 例如:

=SUMIF(YEAR(B1:B10),"2017", A1:A10) 

B1:B10包含一组date。 例如:

 1 AB 2 200 01/01/2017 3 300 01/01/2017 4 420 01/01/2016 5 250 01/01/2016 

当我尝试:

 =SUMPRODUCT(A:A*(YEAR(B:B)=2017)) 

要么

 =SUMPRODUCT(A1:A5*(YEAR(B1:B5)=2017)) 

我得到#REF! 但是,如果我定义的范围如下所示:

 =SUMPRODUCT(A2:A5*(YEAR(B2:B5)=2017)) 

我得到了我期望的结果。

在数组中使用SUMPRODUCT 。 乘以一个布尔数组将其转换为0 or 1数组:

 =SUMPRODUCT(A1:A10*(YEAR(B1:B10)=2017)) 

ps:这是一个有效的正常公式,不需要CSE

另一方面, SUMIFSUMIFS希望它们的范围参数是纯范围,而不是数组。


所以看起来你的数据是异构的,有些单元格不是数字或不是date。 要处理这个问题,试试这个数组公式

 =SUM(IF(ISNUMBER(A1:A5), A1:A5, 0)*(YEAR(IF(ISNUMBER(B1:B5),B1:B5,0))=2017)) Ctrl+Shift+Enter 

如果你真的喜欢SUMIF,那么你将需要使用SUMIFS和括号date:

 =SUMIFS(A:A,B:B,">=1/1/2017",B:B,"<=12/31/2017") 

你可以用COUNTIFS做同样的事情。

无需使用CTRL + SHIFT + ENTER(CSE)

 =SUMPRODUCT(--(TEXT(B7:B10,"YYYY")="2017")*A1:A10)