5

我有一个 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

4 回答 4

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

作为数组公式输入...即使用 CTRL+Shift+Enter 而不仅仅是 Enter。如果操作正确,Excel 会在公式{} 周围加上大括号。

于 2011-01-19T21:30:24.193 回答
3

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

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

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

于 2012-11-23T09:14:31.890 回答
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
于 2011-01-19T21:52:55.647 回答
0

这对我有用:

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

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

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

对我来说效果很好,可以很好地绘制我的图表,而不必真正显示数据(直到有人选择了单元格并看到了值)。

于 2013-08-27T17:59:14.697 回答