如何求和包含错误的值的命名范围?

我有一个Excel电子表格,从另一个来源,我需要运行一个计算导入数据。 我需要处理的数据是在一个命名的范围内 – 它恰好在范围C12:C36中 – 但是它被称为“SumData”。

此范围中的值包含当前包含#NUM! 和#N / A,但可能包含其他错误。 我需要总结这些价值。

我知道如何做总和公式:

=SUM(SumData) 

要么

 =SUM(C12:C36) 

我也可以使用IFERROR来检查错误:

 =IFERROR(C12:C36, 0) 

但IFERROR只能看到我正在input的公式检查当前对应的行。 即如果我的公式是在D12中input的,它只检查行C12上的错误,并返回值(如果C12包含错误,则返回0)。

如果我把两者结合起来:

 =SUM(IFERROR(SumData,0)) 

我没有得到有效的返回值。 它基本上给了我最接近的相应的行 – 例如:

  CD ----------- 12 #NUM! 13 2 =SUM(IFERROR(SumData,0)) = 2 (I would expect this to produce 48) 14 5 15 7 16 #N/A 17 23 18 6 19 5 

我究竟做错了什么?

 =SUM(IF(ISNUMBER(SumData),SumData)) 

作为数组公式input…即使用CTRL + Shift + Enter,而不只是input。 如果你做得正确,那么Excel会在公式{}中加上大括号。

尝试使用此公式如果您倾向于添加一个包含错误的单元格范围:

 =SUMIFS(sumrange,criteria range1,"<>"&"#NAME?",criteria range2,"<>"&"#N/A",criteria range3,"<>"&"NUM!") 

由于您不知道哪个单元格有错误,因此build议使用与sumrange相同的标准范围。

不幸的是,这是IFERROR函数的文档function,如下所示: http : //office.microsoft.com/en-us/excel-help/iferror-function-HA001231765.aspx 。

本质上,范围input不会导致范围输出。 相反,您将得到IFERROR调用发生的CELL指定范围内的位置输出。 这很不直观。

一个解决scheme是插入一个列来保存各个IFERROR结果,然后总结一下,如下所示。 设置好D列之后,将其隐藏起来。

  CDE -------------------------------------- 12 #NUM! =IFERROR(E12, 0) -> 0 13 2 =IFERROR(E13, 0) -> 2 =SUM(E12:E19) -> 48 14 5 =IFERROR(E14, 0) -> 5 15 7 =IFERROR(E15, 0) -> 7 16 #N/A =IFERROR(E16, 0) -> 0 17 23 =IFERROR(E17, 0) -> 23 18 6 =IFERROR(E18, 0) -> 6 19 5 =IFERROR(E19, 0) -> 5 

这适用于我:

 =IF(SUMIFS(RANGE,CRIT-RANGE,CRITCELL)=0,NA(),SUMIFS(RANGE,CRIT-RANGE,CRITCELL)) 

但是我使用显示的表格; 所以我不得不推出一个条件格式。

如果单元格包含错误:使字体{与背景颜色相同}

对我来说工作得非常好,并且很好地绘制了我的graphics,而不必真正显示数据(直到有人select单元格并看到该值)。