Как мне суммировать именованный диапазон значений, который содержит ошибки? - PullRequest
5 голосов
/ 19 января 2011

У меня есть электронная таблица Excel, которая импортирует данные из другого источника, для которого мне нужно выполнить расчет. Данные, с которыми мне нужно работать, находятся в именованном диапазоне - он оказывается в диапазоне C12: C36 - но он называется "SumData".

Значения в этом диапазоне содержат ряд ошибок, включая #NUM! и # Н / Д, но потенциально могут содержать другие ошибки. Мне нужно сложить эти значения.

Я понимаю, как сделать формулу суммы:

=SUM(SumData)

Или

=SUM(C12:C36)

Я также могу использовать IFERROR для проверки ошибок:

=IFERROR(C12:C36, 0)

Но IFERROR появляется только для проверки текущей строки, соответствующей введенной мной формуле. то есть, если моя формула вводится в D12, она проверяет только ошибку в строке C12 и возвращает значение (или 0, если C12 содержит ошибку).

Если я объединю два, чтобы сделать:

=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 ]

8 голосов
/ 20 января 2011
=SUM(IF(ISNUMBER(SumData),SumData))

введено как формула массива ... то есть, используя CTRL + Shift + Enter, а НЕ просто Enter. Если вы сделаете это правильно, то Excel будет заключать фигурные скобки вокруг формулы {}.

3 голосов
/ 23 ноября 2012

Попробуйте использовать эту формулу, если вы хотите добавить диапазон ячеек с ошибкой:

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

Поскольку вы не знаете, в какой ячейке есть ошибка, рекомендуется использовать диапазоны критериев, аналогичные сумме.

0 голосов
/ 27 августа 2013

Это работает для меня:

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

Но я использую таблицы, которые отображаются; поэтому мне пришлось выдвинуть на него условный формат.

Если в ячейке содержится ошибка: сделать шрифт {того же цвета, что и фон}

Работает очень хорошо для меня и хорошо строит график без необходимости реального отображения данных (пока кто-нибудь не выберет ячейку и не увидит значение).

0 голосов
/ 20 января 2011

К сожалению, это документированная функциональность функции IFERROR, как показано здесь: http://office.microsoft.com/en-us/excel-help/iferror-function-HA001231765.aspx.

По сути, вход RANGE не приводит к выходу RANGE. Скорее вы получите выход для позиции в диапазоне, указанном CELL, где происходит вызов IFERROR. Это довольно не интуитивно понятно.

Одним из решений является вставка столбца для хранения отдельных результатов 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
...