包含错误的范围内的SUMPRODUCT

时间:2014-08-20 08:11:55

标签: excel excel-formula

您如何修改此公式以允许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中保留的标签上的季度平均值,例如2014年第3季度。

尝试:

=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

这不起作用

2 个答案:

答案 0 :(得分:2)

错误在哪里? (我知道你说的是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))

如果您可能有错误,即使在相关的季度,也请尝试这个&#34;数组公式&#34;

=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

确认

如果没有符合条件的日期,则会出现#DIV/0!错误。您可以通过将整个公式包装在IFERROR函数

中来隐藏它

答案 1 :(得分:0)

基于这个非常相似的问题: How do I sum a named range of values that contains errors?

我认为以下内容适合您:

=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)