SUMPRODUCT超出范围,包括错误

你将如何去修改这个公式来允许列C中的错误?

=SUMPRODUCT((C$4:C$45)*(ROUNDUP(MONTH($B$4:$B$45)/3,0)=VALUE(LEFT($B48,1)))*(YEAR($B$4:$B$45)=VALUE(RIGHT($B48,2))+2000))/3 

列是以下格式:

 AUG-14 =NA() SEP-14 =NA() OCT-14 102.45 NOV-14 103.11 DEC-14 104.23 JAN-15 =NA() 

此公式计算B48中标签的季度平均值,例如3Q14。

尝试:

 =SUMPRODUCT(ISNUMBER(C$4:C$45),(ROUNDUP(MONTH($B$4:$B$45)/3,0)=VALUE(LEFT($B48,1)))*(YEAR($B$4:$B$45)=VALUE(RIGHT($B48,2))+2000))/3 

这不起作用

错误在哪里? (我知道你说列C,但我的意思是在哪些行?)。

您可以使用AVERAGEIFS (需要Excel 2007或更高版本),这将忽略相关季度中的错误,即

=AVERAGEIFS(C$4:C$45,B$4:B$45,">="&DATE(100+RIGHT($B48,2),LEFT(B48)*3-2,1),B$4:B$45,"<"&DATE(100+RIGHT(B48,2),LEFT($B48)*3+1,1))

如果你可能有错误,甚至在相关的季度,那么试试这个“数组公式”

=AVERAGE(IF(ISNUMBER(C$4:C$45),IF(INT((MONTH(B$4:B$45)+2)/3)&"Q"&TEXT(B$4:B$45,"yy")=$B48,C$4:C$45)))

后一个公式需要用CTRL + SHIFT + ENTER确认

如果没有合格的date,那么你得到#DIV/0! 错误。 您可以通过将整个公式包含在IFERROR函数中来隐藏该公式

基于这个非常相似的问题: 我如何总结一个包含错误的命名范围值?

我认为以下应该为你工作:

 =SUMPRODUCT(IF(ISNUMBER(((C$4:C$45)*(ROUNDUP(MONTH($B$4:$B$45)/3,0)=VALUE(LEFT($B48,1)))*(YEAR($B$4:$B$45)=VALUE(RIGHT($B48,2))+2000))/3)