【问题标题】:How do I sum a named range of values that contains errors?如何对包含错误的命名值范围求和?
【发布时间】:2011-06-12 00:14:28
【问题描述】:

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

我做错了什么?

【问题讨论】:

    标签: excel worksheet-function excel-2010


    【解决方案1】:

    这对我有用:

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

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

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:

        不幸的是,这是 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
        

        【讨论】:

        • CTRL+SHIFT+ENTER 根据@Mark Ba​​ker 的示例工作就像一种享受。我猜当您使用 CTRL+SHIFT+ENTER 时,它会将 Sum(thisBit) 中的函数视为委托而不是值。这是我在其他任何地方都没有发现的一个很好的功能!
        • “将 Sum(thisBit) 中的函数视为委托” - 哇,这是对它如何工作的精彩解释!我看到马克的回答并认为它不直观,但这种解释确实有助于在我的脑海中巩固它。谢谢!
        【解决方案4】:
        =SUM(IF(ISNUMBER(SumData),SumData))
        

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

        【讨论】:

        • 谢谢 - 我有,但没有按 CTRL+SHIFT+ENTER - 我从来没有找到任何参考!
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-03
        • 1970-01-01
        • 2017-08-09
        • 1970-01-01
        相关资源
        最近更新 更多