【问题标题】:SUMPRODUCT over range that includes errors包含错误的 SUMPRODUCT 超出范围
【发布时间】:2014-08-20 08:11:55
【问题描述】:

您将如何修改此公式以允许 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

这行不通

【问题讨论】:

  • 不,这不是那个的副本,并且那里显示的方法似乎不适用于这个特定的公式

标签: excel excel-formula


【解决方案1】:

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

来确认

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

【讨论】:

    【解决方案2】:

    基于这个非常相似的问题: 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)
    

    【讨论】:

      猜你喜欢
      • 2013-04-01
      • 1970-01-01
      • 2011-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-27
      • 2016-09-08
      • 1970-01-01
      相关资源
      最近更新 更多