Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.04.2011, 13:24   #1
Severny
Форумчанин
 
Регистрация: 07.10.2010
Сообщений: 144
По умолчанию СУММПРОИЗВ не игнорирует при суммировании ошибки

Добрый день!
Может быть с названия темы не совсем понятно о чем я хочу спросить, по этому прикрепляю пример.
Я ячейке G7 заается условие по которому происходит суммирования массива, но так как в суммируемом диапазоне кроме чисел есть еще знак "-" то возвращает ошибку. "-" убрать нельзя, нельзя его и на 0 заменить, так как диап. F8:F15 это результат других формул.
Прошу о помощи
Вложения
Тип файла: rar Пример 27.rar (8.1 Кб, 20 просмотров)
Severny вне форума Ответить с цитированием
Старый 01.04.2011, 13:41   #2
vikttur
Участник клуба
 
Регистрация: 16.05.2010
Сообщений: 1,249
По умолчанию

Потому что в ячейках текст ("-")
Код:
=СУММПРОИЗВ(--(E8:E15=G7);--ЕЧИСЛО(F8:F15);F8:F15)
Формула массива
Код:
{=СУММ(ЕСЛИ(E8:E15=G7;F8:F15))}
vikttur вне форума Ответить с цитированием
Старый 01.04.2011, 14:16   #3
Severny
Форумчанин
 
Регистрация: 07.10.2010
Сообщений: 144
По умолчанию

Спасибо vikttur!
А зачем нужны вот эти черточки =СУММПРОИЗВ(--(...=...); --ЕЧИСЛО(...);...)? А тоя тоже пытался ЕЧИСЛО использовать, но без толку.

Последний раз редактировалось Severny; 01.04.2011 в 14:18.
Severny вне форума Ответить с цитированием
Старый 01.04.2011, 15:58   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

видите-ли, уважаемый, Severny,
логические функции или операции сравнения возвращают значение ИСТИНА или ЛОЖЬ.
=СУММПРОИЗВ({ИСТИНА;ИСТИНА;ЛОЖЬ}) - вернет 0
но замечено - если ИСТИНА или ЛОЖЬ использовать в арифметических выражениях, то они там участвуют как 1 и 0 соответственно.
и тогда
=СУММПРОИЗВ({ИСТИНА;ИСТИНА;ЛОЖЬ}*1) - вернет 2
а
=СУММПРОИЗВ(-{ИСТИНА;ИСТИНА;ЛОЖЬ}) - вернет -2
а
=СУММПРОИЗВ(--{ИСТИНА;ИСТИНА;ЛОЖЬ}) - снова 2
используют --, а не *1 - потому что считается (и не безосновательно)что -- быстрее чем *1. на трех значениях это не заметно, на когда в диапазоне будет 500тыс. элементов - это скажется на скорости вычислений.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 05.04.2011, 17:34   #5
Severny
Форумчанин
 
Регистрация: 07.10.2010
Сообщений: 144
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
видите-ли, уважаемый, Severny,
...
трех значениях это не заметно, на когда в диапазоне будет 500тыс. элементов - это скажется на скорости вычислений.
Спасибо IgorGO, для меня Вашим постам цены нет!
Severny вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
формула суммпроизв. запись в ячейку gsg Microsoft Office Excel 3 18.11.2010 09:16
Delphi игнорирует параметр SuperDuper Общие вопросы Delphi 6 23.08.2010 21:28
Компилятор игнорирует ошибочный код N1KeL Помощь студентам 8 29.11.2009 21:22
компилятор игнорирует переменные, объясните dextering Общие вопросы Delphi 23 15.06.2009 11:58