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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2009, 14:40   #1
Konstantin_Z
Пользователь
 
Регистрация: 22.08.2008
Сообщений: 65
По умолчанию Формула с ДЛСТР() работает корректно, хотя ...

Хотелось посчитать количество ячеек в которых хоть что-то есть (условно не пустые)
написал формулу (как формула массива, конечно)

=СУММ(ЕСЛИ(ДЛСТР(C3:G20);1))

а потом увидел, что кое-что забыл, а именно проверку на >0

то есть
=СУММ(ЕСЛИ(ДЛСТР(C3:G20)>0;1))

но, как это ни странно, и первая и вторая формула возвращает один и тот же результат...

кто может прокомментировать, почему первая формула тоже работает корректно? )
Konstantin_Z вне форума Ответить с цитированием
Старый 22.12.2009, 14:48   #2
Konstantin_Z
Пользователь
 
Регистрация: 22.08.2008
Сообщений: 65
По умолчанию

вот файл )
Вложения
Тип файла: zip dlstr_b.zip (1.7 Кб, 10 просмотров)
Konstantin_Z вне форума Ответить с цитированием
Старый 22.12.2009, 14:52   #3
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Это из справки:
Синтаксис
ЕСЛИ(лог_выражение;значение_если_ис тина;значение_если_ложь)
в качестве лог_выражение (логического выражения, которое возвращает логические ЛОЖЬ или ИСТИНА) можно ипользовать просто числа (выражения которые возвращают число). если число не 0 - это для ЕСЛИ(...) истина. Это не документированно, но я этим пользуюсь...
собственно, обе формулы проверяли одно и тоже условие
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 22.12.2009, 14:56   #4
Konstantin_Z
Пользователь
 
Регистрация: 22.08.2008
Сообщений: 65
По умолчанию

Это все, как бы понятно, но все равно спасибо! :-)

Однако, все же, неясно как ДЛСТР(C3:G20)
/без проверки на >0/

смогло подсчитать кол-во ячеек удовлетворящих условию >0 ??
Konstantin_Z вне форума Ответить с цитированием
Старый 22.12.2009, 15:21   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

напишите =если(20;1;0) - получите в ячейке 1. В данном случае 20 - это ИСТИНА.
аналогично ДЛСТР(...) для непустых строк возвращала соответственные значения, любое значение не равное 0 ЕСЛИ принимал за ИСТИНУ.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
(паскаль) Обработка кв. матрицы. Программа есть. Не корректно работает функция SUM.. aslanbek999 Помощь студентам 3 02.06.2009 19:51
не корректно работает PlaySound, помогите!!! Rerek Общие вопросы C/C++ 0 13.04.2009 18:37
Программа работает не корректно Neymexa Общие вопросы C/C++ 5 24.12.2008 19:17
FHandle - говорит что нет, хотя эта же процедура успешно работает в модуле Dialogs, о mrandrey Общие вопросы Delphi 2 08.06.2007 15:21