Страницы: 1
RSS
Очень нужна помощь!
 
Очень нужна помощь.Вопрос в примере
 
Попробуйте формулу типа такой:  
 
=ЕСЛИ(ЕНД(ВПР(A4;ТелефСправочник;2;0));"Нету :)";ВПР(A4;ТелефСправочник;2;0))
 
Огромное спасибо! EducatedFool Вы меня очень выручили
 
Можно заменить две функции:  
ЕНД(ВПР(A4;ТелефСправочник;2;0))  
одной:  
СЧЁТЕСЛИ(ТелефСправочник;A4)  
При этом не забыть переставить местами истинное и ложное значения.
 
Спасибо, буду знать.  
 
А то я в формулах плохо разбираюсь, поэтому и использую конструкции типа  
=ЕСЛИ(ЕНД(формула);"Нету :)";формула)  
 
Я так понимаю, СЧЁТЕСЛИ(ТелефСправочник;A4) будет работать побыстрее ВПР?  
Или разница в скорости будет незаметна?
 
Если данных реально много, то...  
 
1) ЕНД(ВПР(A4;ТелефСправочник;2;0)) безусловно скорострельнее, чем СЧЁТЕСЛИ(ТелефСправочник;A4)  
 
2) ЕНД(ПОИСКПОЗ(A4;ТелефСправочник;0)) еще одна быстрая альтернатива ЕНД(ВПР(A4;ТелефСправочник;2;0))
KL
 
вот
 
{quote}{login=KL}{date=11.08.2009 05:25}{thema=}{post}ЕНД(ВПР(A4;ТелефСправочник;2;0)) безусловно скорострельнее, чем СЧЁТЕСЛИ(ТелефСправочник;A4){/post}{/quote}  
Но почему? Я-то думал, что наоборот. И ВПР при ненахождении искомого значения, и СЧЕТЕСЛИ перебирают весь диапазон, но к ВПР добавляется еще проверка на ошибку.
 
Выше пост - это я.
 
{quote}{login=vikttur}{date=12.08.2009 12:05}{thema=Re: }{post}{quote}{login=KL}{date=11.08.2009 05:25}{thema=}{post}ЕНД(ВПР(A4;ТелефСправочник;2;0)) безусловно скорострельнее, чем СЧЁТЕСЛИ(ТелефСправочник;A4){/post}{/quote}  
Но почему? Я-то думал, что наоборот. И ВПР при ненахождении искомого значения, и СЧЕТЕСЛИ перебирают весь диапазон, но к ВПР добавляется еще проверка на ошибку.{/post}{/quote}  
 
Нет, это не так :-) ВПР() (а также ГПР() и ПОИСКПОЗ()) выходит из цикла при первом же совпадении, а вот СЧЁТЕСЛИ() (а также СУММЕСЛИ()) действительно проверяет все ячейки, хоть и быстрее чем условная конструкция с СУММПРОИЗВ(). Проверка же на ошибку помимо того, что ЕНД очень быстрая функция, осуществляется всего лишь по одному конечному значению независимо от размеров диапазона поиска. Таким образом, при ничтожно малом кол-ве строк, скажем порядка 10-20, может возникнуть ситуация, при которой СЧЁТЕСЛИ() окажется даже быстрее ЕНД(ВПР()), но при этом и абсолютное время и разница в нем будут ничтожно малыми. А вот при диапазонах в тысячи строк разница начинает расти чуть не в прогрессии :-)
 
Теперь я забыл залогиниться :-)
KL
 
Да, спасибо, понял ошибку - ВПР ведь просматривает весь диапазон только в случае отсутствия искомого.
 
{quote}{login=vikttur}{date=12.08.2009 12:34}{thema=}{post}Да, спасибо, понял ошибку - ВПР ведь просматривает весь диапазон только в случае отсутствия искомого.{/post}{/quote}  
или если оно в самом конце :-)
KL
 
Кстати, если говорить о приблизительном поиске ВПР(), ГПР(), ПОИСКПОЗ() и ПРОСМОТР(), то там вообще поиск бинарный, т.ч. максимальное количество проверок четко ограничено. Для огромных диапазонов эти функции с последним параметром ИСТИНА, 1, -1, или полностью опущенным, - просто молниеносны.
KL
Страницы: 1
Читают тему
Наверх