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

时间:2017-05-24 21:56:54

标签: excel excel-formula

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

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

B1:B10包含日期数组。例如:

1   A    B          
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))

我得到了我期望的结果。

3 个答案:

答案 0 :(得分:3)

对数组使用SUMPRODUCT。乘以布尔数组将其转换为0 or 1数组:

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

p.s。:这是一个有效的正常公式,不需要CSE

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

因此,您的数据似乎是异构的,而某些单元格不是数字或不是日期。要解决此问题,请尝试使用数组公式

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

答案 1 :(得分:1)

如果你真的喜欢SUMIF,那么你将需要使用SUMIFS并括起日期:

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

您可以对COUNTIFS执行相同的操作。

答案 2 :(得分:1)

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

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