2011-01-19 2 views
5

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

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

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

=SUM(SumData) 

Или

=SUM(C12:C36) 

Я могу также использовать ЕСЛИОШИБКА, чтобы проверить на наличие ошибок:

=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 

Что я делаю неправильно?

ответ

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

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

+0

Спасибо. У меня было это, но не ударил CTRL + SHIFT + ВВОД - я никогда не нашел ссылки на это! – BobTheBuilder

0

К сожалению, это документально подтвержденная функциональность функции IFERROR, которая находится здесь: http://office.microsoft.com/en-us/excel-help/iferror-function-HA0.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 
+1

CTRL + SHIFT + ВВОД в соответствии с примером @Mark Baker работал как удовольствие. Я предполагаю, что он обрабатывает функцию в Sum (thisBit) как делегат вместо значения, когда вы используете CTRL + SHIFT + ENTER. Это сладостная функциональность, которую я никогда не видел нигде! – BobTheBuilder

+0

"обрабатывает функцию в Sum (thisBit) как делегат" - Вау, это удивительное объяснение того, как это работает! Я увидел ответ Марка и подумал, что это неинтуитивно, но это объяснение действительно помогло укрепить его в моем сознании. Благодаря! –

3

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

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

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

0

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

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

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

If Cell Contains an Error: Make font {same colour as background}

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

Смежные вопросы