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

时间:2011-01-19 19:40:45

标签: excel worksheet-function excel-2010

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

此范围内的值包含许多错误,目前包括#NUM!和#N / A,但可能包含其他错误。我需要总结这些值。

我理解如何做总和公式:

=SUM(SumData)

或者

=SUM(C12:C36)

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

=IFERROR(C12:C36, 0)

但IFERROR似乎只检查我正在输入的公式的当前相应行。即如果我的公式是在D12中输入的,它只检查行C12上的错误,并返回该值(如果C12包含错误,则返回0)。

如果我将两者结合起来:

=SUM(IFERROR(SumData,0))

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

    C      D
    -----------
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

我做错了什么?

4 个答案:

答案 0 :(得分:8)

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

作为数组公式输入...即使用CTRL + Shift + Enter而不是Enter。如果你正确地执行它,那么Excel将在公式{}周围放置大括号。

答案 1 :(得分:3)

如果您倾向于添加包含错误的单元格区域,请尝试使用此公式:

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

由于您不知道哪个单元格有错误,因此建议使用与该排序相同的条件范围。

答案 2 :(得分:0)

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

基本上,RANGE输入不会产生RANGE输出。相反,您可以获得发生IFERROR调用的CELL指示范围内的位置输出。这是相当不直观的。

一种解决方案是插入一列来保存单个IFERROR结果,并对其进行求和,如下所示。设置D列后,只需将其隐藏。

    C      D                      E
    --------------------------------------
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

答案 3 :(得分:0)

这对我有用:

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

但是我使用了显示的表格;因此我不得不将条件格式推到它上面。

  

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

非常适合我并且很好地绘制我的图形而无需真正显示数据(直到有人选择单元格并看到值)。