如何将函数应用于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))
我得到了我期望的结果。
答案 0 :(得分:3)
对数组使用SUMPRODUCT
。乘以布尔数组将其转换为0 or 1
数组:
=SUMPRODUCT(A1:A10*(YEAR(B1:B10)=2017))
p.s。:这是一个有效的正常公式,不需要CSE
。
另一方面,SUMIF
和SUMIFS
希望它们的范围参数是纯范围,而不是数组。
因此,您的数据似乎是异构的,而某些单元格不是数字或不是日期。要解决此问题,请尝试使用数组公式:
=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)