我有一个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
我做错了什么?
答案 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))
但是我使用了显示的表格;因此我不得不将条件格式推到它上面。
如果单元格包含错误:使字体{与背景颜色相同}
非常适合我并且很好地绘制我的图形而无需真正显示数据(直到有人选择单元格并看到值)。