168

Ответ на пост «Функция ВПР в Excel»1

Отличный гайд, но есть неточности.

- ИСТИНА - поиск приблизительного соответствия.

Это, строго говоря, неправда. Хоть то же самое написано на сайте office.microsoft.com, но это всё равно неправда.


Значение "ИСТИНА" параметра "Тип поиска" означает, что ВПР выполнит бинарный поиск и вернёт то, что найдёт. Если массив отсортирован по возрастанию, то это действительно будет ближайшее "снизу" значение (например, для числа 123 это будет число 122, а для текста "абв" это будет "абб", при условии, конечно, что эти значения есть в массиве поиска). Если же массив не отсортирован или отсортирован не по возрастанию - алгоритм бинарного поиска либо вернёт ошибку "#Н/Д", либо всё-таки что-то найдёт. Скорее всего, совсем не то, что вы искали (даже если искомое значение есть в массиве!). Дело в том, что, во-первых, ВПР не проверяет, отсортирован массив или нет, а во-вторых, он не проверят действительно ли найденное алгоритмом бинарного поиска значение совпадает с тем, что искалось.


Функция ВПР выдаёт ошибку #Н/Д если:
...
2. Включен приблизительный поиск (Интервальный просмотр=1), но Таблица, в которой происходит поиск, не отсортирована по возрастанию наименований.

Это тоже неправда. Как я писал выше, ВПР может что-то найти даже в несортированном массиве.


Зачем вообще нужен алгоритм бинарного поиска в ВПР?


Дело в том, что бинарный поиск работает намного, намного быстрее, чем "обычный" (O(log n) против O(n)). Особенно эта разница будет заметна на больших массивах данных. Но пользоваться им надо с осторожностью. Чтобы отсечь неправильно найденные значения (по причине проблем с сортировкой или из-за отсутствия искомого значения в массиве), можно воспользоваться приёмом под названием "двойной ВПР":


=ЕСЛИ(
ВПР(Искомое_значение; Первый_столбец_таблицы; 1; ИСТИНА) = Искомое_значение;  ВПР(Искомое_значение; Таблица_где_ищем; Номер_столбца_результатов; ИСТИНА);
НД()
)

Т.е. сначала мы проверяем, что ВПР находит то, что нужно, а только затем возвращаем найденное. Скорость работы больше обычного ВПР в 10-100 (sic!) раз. Такой разброс скорее всего связан с тем, насколько хорошо у Excel получается оптимизировать ваш "обычный" поиск.

MS, Libreoffice & Google docs

782 поста15K подписчиков

Правила сообщества

1. Не нарушать правила Пикабу

2. Публиковать посты соответствующие тематике сообщества

3. Проявлять уважение к пользователям

4. Не допускается публикация постов с вопросами, ответы на которые легко найти с помощью любого поискового сайта.

По интересующим вопросам можно обратиться к автору поста схожей тематики, либо к пользователям в комментариях


Важно - сообщество призвано помочь, а не постебаться над постами авторов! Помните, не все обладают 100 процентными знаниями и навыками работы с Office. Хотя вы и можете написать, что вы знали об описываемом приёме раньше, пост неинтересный и т.п. и т.д., просьба воздержаться от подобных комментариев, вместо этого предложите способ лучше, либо дополните его своей полезной информацией и вам будут благодарны пользователи.

Утверждения вроде "пост - отстой", это оскорбление автора и будет наказываться баном.

Автор поста оценил этот комментарий

Ладно ТС чё прицепился парень отличные гайды делает. А ты если хочешь хайпа создай свои с блекджеком и т. П.

раскрыть ветку (1)
11
Автор поста оценил этот комментарий

Я не прицепился, я лишь поправил и углубил некоторые моменты, которые были упущены.

показать ответы
3
DELETED
Автор поста оценил этот комментарий

Сейчас появилась универсальная функция xlookup, кстати.

раскрыть ветку (1)
6
Автор поста оценил этот комментарий

В версии, что стоит у меня на работе (одна из сборок Office 365), пока что нет, увы. Очень жду. Там много очень интересных функций добавили.

показать ответы
0
Автор поста оценил этот комментарий

Спасибо за наглядное пояснение) Не люблю ВПР, считаю не удобным, пользуюсь Индекс(;поискпоз()), теперь хоть буду знать когда мне действительно может понадобиться ВПР)

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Последний аргумент ПОИСКПОЗ() работает так же, только там на выбор:

• 0 - линейный поиск;

• 1 - бинарный поиск (массив сортирован по возрастанию);

• –1 - бинарный поиск (массив сортирован по убыванию).


Тоже пользуюсь ИНДЕКС(; ПОИСКПОЗ()).

показать ответы
0
Автор поста оценил этот комментарий

Очень редко им пользуюсь - узнал о нем когда уже привык к Vlookup.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Есть ряд преимуществ перед ВПР. Возможно, запилю пост в ближайшее время.

показать ответы
0
Автор поста оценил этот комментарий

Без слов не понятно

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
1900 не високосный
показать ответы
1
Автор поста оценил этот комментарий

Недавно в очередной раз от безысходности пользовался функциями экселя.


Гуглил примеры на английском, потом переводил на русский с помощью таблицы соответствия английских и русских формул.


И да, не забыть поменять одинарные и двойные кавычки.


И точку на запятую.


А ещё мне надо было отсортировать по колонке типа 11-jan-2020. Я вытаскивал дни, месяцы и года как части строки. Я даже сделал таблицу jan=1, feb=2, и т.д. Как я благодарил богов, что все месяцы сокращены до 3 букв! И это в 2020м году, Карл!


Функция ВПР - это шедевр. Абсолютно ни о чем не говорящее сокращение (в английском ещё туда-сюда). И эта магия с нечетким поиском, которая нужна ничтожному проценту пользователей, но постоянно подсовывается.


Для сравнения, на sql я часто пишу запросы быстрее, чем печатаю сообщения в мессенджерах.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Вместо тысячи слов:

Иллюстрация к комментарию
показать ответы

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества