Впр или индекс что быстрей работает

Самый быстрый ВПР

Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

Когда я писал свою первую книжку пять лет назад, то уже делал сравнительный скоростной тест различных способов поиска и подстановки данных функциями ВПР, ИНДЕКС+ПОИСКПОЗ, СУММЕСЛИ и др. С тех пор сменилось три версии Office, появились надстройки Power Query и Power Pivot, кардинально изменившие весь процесс работы с данными. А в прошлом году ещё и обновился вычислительный движок Excel, получив поддержку динамических массивов и новые функции ПРОСМОТРХ, ФИЛЬТР и т.п.

Подопытный кролик

Тест будем проводить на следующем примере:

Впр или индекс что быстрей работает. speed1. Впр или индекс что быстрей работает фото. Впр или индекс что быстрей работает-speed1. картинка Впр или индекс что быстрей работает. картинка speed1. Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

Способ 1. ВПР

Впр или индекс что быстрей работает. speed2. Впр или индекс что быстрей работает фото. Впр или индекс что быстрей работает-speed2. картинка Впр или индекс что быстрей работает. картинка speed2. Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

Время вычисления = 4,3 сек.

Способ 2. ВПР с выделением столбцов целиком

Впр или индекс что быстрей работает. speed3. Впр или индекс что быстрей работает фото. Впр или индекс что быстрей работает-speed3. картинка Впр или индекс что быстрей работает. картинка speed3. Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

В старых версиях Excel такое выделение не сильно влияло на скорость вычислений, но сейчас (неожиданно для меня, признаюсь) результат получился в разы хуже предыдущего.

Время вычисления = 14,5 сек.

Способ 3. ИНДЕКС и ПОИСКПОЗ

Впр или индекс что быстрей работает. speed4. Впр или индекс что быстрей работает фото. Впр или индекс что быстрей работает-speed4. картинка Впр или индекс что быстрей работает. картинка speed4. Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

Формула выходит чуть сложнее, но, при этом имеет несколько ощутимых преимуществ перед классической ВПР, а именно:

По скорости, однако же, этот способ проигрывает ВПР почти в два раза:

Время вычисления = 7,8 сек.

Если же, вдобавок, полениться и выделять не ограниченные диапазоны, а столбцы целиком:

Впр или индекс что быстрей работает. speed5. Впр или индекс что быстрей работает фото. Впр или индекс что быстрей работает-speed5. картинка Впр или индекс что быстрей работает. картинка speed5. Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

. то результат получается совсем печальный:

Время вычисления = 28,5 сек.

28 секунд, Карл! В 6 раз медленнее ВПР!

Способ 4. СУММЕСЛИ

Впр или индекс что быстрей работает. speed6. Впр или индекс что быстрей работает фото. Впр или индекс что быстрей работает-speed6. картинка Впр или индекс что быстрей работает. картинка speed6. Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

Время вычисления = 12,8 сек.

При выделении столбцов целиком, т.е. использовании формулы вида =СУММЕСЛИ( G:G ; B2 ; H:H ) всё ещё хуже:

Время вычисления = 41,7 сек.

Это самый плохой результат в нашем тесте.

Способ 5. СУММПРОИЗВ

Этот подход сейчас встречается не часто, но всё ещё достаточно регулярно. Обычно так любят извращаться пользователи старой школы, ещё хорошо помнящие те времена, когда в Excel было всего 255 столбцов и 56 цветов 🙂

Впр или индекс что быстрей работает. speed7. Впр или индекс что быстрей работает фото. Впр или индекс что быстрей работает-speed7. картинка Впр или индекс что быстрей работает. картинка speed7. Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

Время вычисления = 11,8 сек.

Способ 6. ПРОСМОТР

Впр или индекс что быстрей работает. speed8. Впр или индекс что быстрей работает фото. Впр или индекс что быстрей работает-speed8. картинка Впр или индекс что быстрей работает. картинка speed8. Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

На первый взгляд всё выглядит очень удобно и логично, но всю картину портят два неочевидных момента:

При работе с неидеальными данными в реальном мире это гарантированно создаст проблемы, как вы понимаете.

Скорость же вычислений у функции ПРОСМОТР (LOOKUP) весьма приличная:

Время вычисления = 7,6 сек.

Способ 7. Новая функция ПРОСМОТРХ

Эта функция пришла с одним из недавних обновлений пока только пользователям Office 365 и пока отсутствует во всех остальных версиях (Excel 2010, 2013, 2016, 2019). По сравнению с классической ВПР у этой функции есть масса преимуществ (упрощенный синтаксис, возможность искать не только сверху-вниз, возможность сразу задать значение вместо #Н/Д и т.д.) Формула для решения нашей задачи будет выглядеть в этом случае так:

Впр или индекс что быстрей работает. speed10. Впр или индекс что быстрей работает фото. Впр или индекс что быстрей работает-speed10. картинка Впр или индекс что быстрей работает. картинка speed10. Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

Время вычисления = 7,6 сек.

Почти в два раза медленнее, чем у ВПР, вместо которой Microsoft предлагает теперь использовать ПРОСМОТРХ. Жаль.

И, опять же, если полениться и выделить диапазоны в прайс-листе целыми столбцами:

Впр или индекс что быстрей работает. speed11. Впр или индекс что быстрей работает фото. Впр или индекс что быстрей работает-speed11. картинка Впр или индекс что быстрей работает. картинка speed11. Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

. то скорость падает до совершенно неприличных уже значений:

Время вычисления = 28,3 сек.

А если на динамических массивах?

Прошлогоднее (осень 2019) обновление вычислительного движка Microsoft Excel добавило ему поддержку динамических массивов (Dynamic Arrays), о которых я уже писал. Это принципиально новый подход к работе с данными, который можно использовать почти с любыми классическими функциями Excel. На примере ВПР это будет выглядеть так:

Впр или индекс что быстрей работает. speed12. Впр или индекс что быстрей работает фото. Впр или индекс что быстрей работает-speed12. картинка Впр или индекс что быстрей работает. картинка speed12. Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

Разница с классическим вариантом в том, что первым аргументом ВПР здесь выступает не одно искомое значение (а формулу потом нужно копировать вниз на остальные строки), а сразу весь массив из полумиллиона грузов B2:B500000, цены для которых мы хотим найти. Формула при этом сама распространяется вниз, занимая требуемое количество ячеек.

Время вычисления = 1 сек.

А вот олдскульные подходы на основе СУММПРОИЗВ и СУММЕСЛИ(МН) с динамическими массивами работать отказались 🙁

Что с умными таблицами?

Если предварительно превратить наши отгрузки и прайс в «умные» (по умолчанию они получат имена Таблица1 и Таблица2, соответственно), то формула с той же ВПР будет выглядеть как:

Впр или индекс что быстрей работает. speed13. Впр или индекс что быстрей работает фото. Впр или индекс что быстрей работает-speed13. картинка Впр или индекс что быстрей работает. картинка speed13. Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

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

Скорость же, как выяснилось, тоже вырастает очень значительно и примерно равна скорости работы на динамических массивах:

Время вычисления = 1 сек.

У меня есть подозрение, что дело тут не в самих «умных» таблицах, а всё в том же обновлении вычислительного движка, т.к. на старых версиях Excel такого прироста в скорости на умных таблицах я не помню.

Бонус. Запрос Power Query

Впр или индекс что быстрей работает. speed14. Впр или индекс что быстрей работает фото. Впр или индекс что быстрей работает-speed14. картинка Впр или индекс что быстрей работает. картинка speed14. Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

Впр или индекс что быстрей работает. speed15. Впр или индекс что быстрей работает фото. Впр или индекс что быстрей работает-speed15. картинка Впр или индекс что быстрей работает. картинка speed15. Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

Впр или индекс что быстрей работает. speed16. Впр или индекс что быстрей работает фото. Впр или индекс что быстрей работает-speed16. картинка Впр или индекс что быстрей работает. картинка speed16. Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

Время обновления = 8,2 сек.

Итоговая таблица и выводы

Если вы честно дочитали до этого места, то какие-то выводы, наверное, уже сделали самостоятельно. Если же пропустили все детали и сразу перешли к итогам, то вот вам общая результирующая таблица по скорости всех методов:

Впр или индекс что быстрей работает. speed17. Впр или индекс что быстрей работает фото. Впр или индекс что быстрей работает-speed17. картинка Впр или индекс что быстрей работает. картинка speed17. Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

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

Источник

Чем ИНДЕКС и ПОИСКПОЗ лучше ВПР в Excel

Ранее мы уже объясняли новичкам, как использовать базовые функции ВПР (англ. VLOOKUP, аббревиатура расшифровывается как “функция вертикального просмотра”). А опытным пользователям показали несколько формул посложнее.

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

У Вас может возникнуть вопрос: «Зачем это нужно?». А нужно это для того, чтобы показать все возможные способы поиска. К тому же, многочисленные ограничения ВПР часто мешают получить нужный результат. В этом отношении ИНДЕКС( ) ПОИСКПОЗ( ) гораздо функциональнее и разнообразнее, а также в них меньшее количество ограничений.

Основы ИНДЕКС ПОИСКПОЗ

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

Функция ИНДЕКС: синтаксис и применение

Эта функция помогает в поиске требуемого значения среди указанных областей поиска, основываясь на номере колонки или строки. Синтаксисы:

=ИНДЕКС(массив, номер строки, номер столбца):

Пример простой формулы:

Функция будет производить поиск в диапазоне от А1 до С10. Цифры показывают, из какой строки (2) и колонки (3) показать искомое значение. Результатом будет ячейка С2.

Довольно просто, верно? Но когда вы работаете с настоящими документами, вы вряд ли будете располагать информацией касательно номеров колонок или ячеек. Именно для этого и существует функция ПОИСКПОЗ().

Функция ПОИСКПОЗ: синтаксис и использование

Функция ПОИСКПОЗ() ищет нужное значение и показывает его примерный номер в указанной области поиска.

Синтаксис Поискпоз() выглядит так:

=ПОИСКПОЗ(искомое значение, просматриваемый массив, тип сопоставления)

Например, в диапазоне В1:В3 прописаны Нью-Йорк, Париж, Лондон. Указанная ниже формула покажет номер 3, потому что Лондон является третьим по списку:

Как работать с функцией ИНДЕКС ПОИСКПОЗ

Вы наверняка уже начали понимать, по какому принципу строится совместная работа этих функций. Если вкратце, то ИНДЕКС() проводит поиск нужного значения среди указанных строк и колонок. А ПОИСКПОЗ() показывает номера этих значений:

=ИНДЕКС(колонка из которой возвращается значение, ПОИСКПОЗ(значение для поиска, колонка в которой искать, 0))

Все еще сложно понять, как это работает? Может быть на примере получится объяснить лучше. Предположим, у Вас есть список мировых столиц и численность их населения:

Для того, чтобы выяснить размеры населения какой-то определенной столицы, например, столицы Японии, воспользуемся такой формулой:

=ИНДЕКС(С2:С10, ПОИСКПОЗ(Япония, А2:А10,0))

Таким образом, вышеуказанная формула становится стандартной формулой ИНДЕКС(С2:С10,3). Формула проводит поиск в ячейках от С2 до С10 и выдает данные из третьей ячейки этого диапазона, то есть С4, потому что отсчет начинается со второй строки.

Не хотите прописывать название города в формуле? Тогда напишите его в любой ячейке, скажем, F1, и используйте её как ссылку в формуле ПОИСКПОЗ(). И у вас получится динамическая формула поиска:

=ИНДЕКС(С2:С10, ПОИСКПОЗ( )(F1,A2:A10,0))

Впр или индекс что быстрей работает. table2. Впр или индекс что быстрей работает фото. Впр или индекс что быстрей работает-table2. картинка Впр или индекс что быстрей работает. картинка table2. Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

Важно! Количество строк в массиве ИНДЕКС() должно быть такое же, как и количество строк в рассматриваемом массиве в ПОИСКПОЗ(), иначе вы получите неправильный результат.

Подождите-ка, почему бы просто не использовать формулу ВПР()?

=ВПР(F1, A2:C10, 3, Ложь)

Какой смысл тратить время в попытках разобраться во всех этих сложностях ИНДЕКС ПОИСКПОЗ?

В этом случае нет разницы, какую функцию использовать. Это просто пример, чтобы был понятен принцип совместной работы функций ИНДЕКС() и ПОИСКПОЗ(). Другие примеры покажут, на что способны эти функции в ситуациях, когда ВПР оказывается бессильным.

ИНДЕКС ПОИСКПОЗ или ВПР

Решая, какую использовать формулу для поиска, многие соглашаются что ИНДЕКС() и ПОИСКПОЗ() значительно лучше ВПР. Однако, многие люди все еще пользуются ВПР(). Во-первых, ВПР() проще, во-вторых, пользователи до конца не понимают все плюсы работы с ИНДЕКС() и ПОИСКПОЗ(). Не имея этих знаний, никто не согласится тратить свое время на изучение сложной системы.

Ниже мы приведем ключевые преимущества ИНДЕКС() и ПОИСКПОЗ() над ВПР():

А в формуле ИНДЕКС() и ПОИСКПОЗ() указывается диапазон колонок, а не отдельные колонки. В результате, можно безопасно добавлять и удалять колонки, без необходимости каждый раз обновлять формулу.

Влияние ВПР() на производительность будет особенно заметным, если ваш рабочий лист содержит большое количество формул вроде ВПР() и СУММ(). Для анализа каждого значения в массиве требуются отдельные проверки функций ВПР(). Так что Excel приходится обрабатывать огромное количество информацию, и это значительно замедляет работу.

Примеры формул

Мы уже выяснили полезность этих функций, так что можно перейти к самой интересной части: к применению знаний на практике.

Формула для поиска справа налево

Как уже было сказано, ВПР не может проводить такую форму поиска. Так что, если нужные значения расположены не в самой левой колонке, ВПР() не выдаст результат. Функции ИНДЕКС() и ПОИСКПОЗ() более универсальны, и для их работы расположение значений не играет большой роли.

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

В ячейке G1 прописываем значение, которое нужно найти, а потом используем указанную ниже формулу для поиска в диапазоне С1:С10 и возвращаем соответствующее значение из А2:А10:

Впр или индекс что быстрей работает. table3. Впр или индекс что быстрей работает фото. Впр или индекс что быстрей работает-table3. картинка Впр или индекс что быстрей работает. картинка table3. Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

ИНДЕКС ПОИСКПОЗ ПОИСКПОЗ для поиска в колонках и строках

В вышеуказанных примерах мы использовали эти функции как замену для ВПР(), чтобы вернуть значения из заранее определенного диапазона строк. Но что, если вам нужно провести матричный или двусторонний поиск?

Звучит сложно, но формула для таких расчетов похожа на стандартную формулу ИНДЕКС() ПОИСКПОЗ(), но только с одним различием: формулу ПОИСКПОЗ() нужно использовать дважды. Первый раз, чтобы получить номер строки, и второй раз — чтобы получить номер колонки:

=ИНДЕКС(массив, ПОИСКПОЗ(вертикальное искомое значение, искомая колонка, 0), ПОИСКПОЗ(горизонтальное искомое значение, искомая строка,0))

Посмотрим на таблицу внизу и попробуем составить формулу ИНДЕКС() ПОИСКПОЗ() ПОИСКПОЗ() для того, чтобы отобразить демографию в определенной стране за выбранный год.

Целевая страна указана в ячейке G1 (вертикальное искомое значение), а целевой год — в ячейке G2 (горизонтальное искомое значение). Формула будет выглядеть так:

=ИНДЕКС(B2:D11, ПОИСКПОЗ(G1,A2:A11,0), ПОИСКПОЗ(G2,B1:D1,0))

Впр или индекс что быстрей работает. table4. Впр или индекс что быстрей работает фото. Впр или индекс что быстрей работает-table4. картинка Впр или индекс что быстрей работает. картинка table4. Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

Как работает эта формула

Как и с любыми другими сложными формулами, в них легче разобраться, разбив их на отдельные уравнения. И тогда вы сможете понять, что делает каждая индивидуальная функция:

Найденные номера строк и колонок отправляются в соответствующее значение в формуле ИНДЕКС():

В результате, имеем значение, которое находится в ячейке на пересечении 2 строки и 3 колонки в диапазоне B2:D11. И формула показывает искомое значение, которое находится в ячейке D3.

Поиск по нескольким условиям с помощью ИНДЕКС и ПОИСКПОЗ

Если вы читали наше руководство по ВПР(), вы наверняка пробовали формулу поиска по нескольким условиям. Но этот способ поиска имеет одно значительное ограничение – необходимость добавлять вспомогательную колонку.

Но хорошая новость заключается в том, что с помощью ИНДЕКС() и ПОИСКПОЗ() можно проводить поиск по нескольким условиям без необходимости редактировать или менять вашу рабочую таблицу.

Вот общая формула поиска по нескольким условиям для ИНДЕКС() ПОИСКПОЗ():

Заметка: эту формулу нужно использовать вместе с сочетанием клавиш CTRL+SHIFT+ENTER.

Предположим, вам нужно найти искомое значение, основанное на 2 условиях: Покупатель и Продукт.

Для этого нужна следующая формула:

В этой формуле С2:С10 — диапазон в котором будет проходить поиск, F1 – это условие, А2:А10 — это диапазон для сравнения условия, F2 – условие 2, В2:В10 – диапазон для сравнения условия 2.

Не забывайте в конце работы с формулой нажать сочетание CTRL+SHIFT+ENTER – Excel автоматически закроет формулу фигурными скобками, как указано в примере:

Впр или индекс что быстрей работает. table5. Впр или индекс что быстрей работает фото. Впр или индекс что быстрей работает-table5. картинка Впр или индекс что быстрей работает. картинка table5. Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

Если же вы не хотите использовать формулу массива для вашей работы, то добавьте еще один ИНДЕКС() к формуле и нажмите ENTER, выглядеть это будет как на примере:

Впр или индекс что быстрей работает. table6. Впр или индекс что быстрей работает фото. Впр или индекс что быстрей работает-table6. картинка Впр или индекс что быстрей работает. картинка table6. Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

Как работают эти формулы

Эта формула работает по тому же принципу, что и стандартная формула ИНДЕКС() ПОИСКПОЗ(). Для того, чтобы искать по нескольким условиям, вы просто создаете несколько Ложных и Истинных условий, которые представляют правильные и неправильные индивидуальные условия. А потом эти условия распространяются на все соответствующие элементы массива. Формула конвертирует Ложные и Истинные аргументы в 0 и 1 соответственно и выводит массив, в котором 1 — это соответствующие условию значения, которые были найдены в строке. ПОИСКПОЗ() найдет первое соответствующее 1 значение и передаст его в формулу ИНДЕКС(). А она, в свою очередь, возвратит уже искомое значение в указанную строку из нужной колонки.

Формула без массива зависит от способности ИНДЕКС() самостоятельно с ними справляться. Второй ИНДЕКС() в формуле соответствует ложному значению (0), так что он передает весь массив с такими значениями в формулу ПОИСКПОЗ().

Это довольно пространное объяснение логики, по которой работает эта формула. Для более детальной информации прочтите статью « ИНДЕКС ПОИСКПОЗ с несколькими условиями ».

СРЗНАЧ, МАКС и МИН в ИНДЕКС и ПОИСКПОЗ

В Excel есть свои специальные функции для поиска средних, максимальных и минимальных значений. Но что, если нужно получить данные из ячейки, связанной с этими значениями? В этом случае СРЗНАЧ, МАКС и МИН нужно использовать вместе с ИНДЕКС и ПОИСКПОЗ.

ИНДЕКС ПОИСКПОЗ и МАКС

Чтобы найти наибольшее значение в колонке D и показать его в колонке C, используем формулу:

ИНДЕКС ПОИСКПОЗ и МИН

Чтобы обнаружить наименьшее значение в колонке D и вывести его в колонке С, используется такая формула:

ИНДЕКС ПОИСКПОЗ и СРЗНАЧ

Чтобы найти среднее значение в колонке D и вывести это значение в С:

Впр или индекс что быстрей работает. table7. Впр или индекс что быстрей работает фото. Впр или индекс что быстрей работает-table7. картинка Впр или индекс что быстрей работает. картинка table7. Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

ИНДЕКС ПОИСКПОЗ и ЕСНД/ЕСЛИОШИБКА

=ЕСНД(ИНДЕКС(С2:С10,ПОИСКПОЗ(F1,A2:A10,0)),значение не найдено)

С этой формулой, если ввести данные, которых нет в таблице, форма вам выдаст указанное сообщение.

Впр или индекс что быстрей работает. table8. Впр или индекс что быстрей работает фото. Впр или индекс что быстрей работает-table8. картинка Впр или индекс что быстрей работает. картинка table8. Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

Если же хотите отловить все ошибки, тогда кроме ЕСНД можно использовать ЕСЛИОШИБКА :

=ЕСЛИОШИБКА(ИНДЕКС(С2:С10,ПОИСКПОЗ(F1,A2:A10,0)), «Что-то пошло не так!»)

Но помните, что маскировать ошибки таким образом – не лучшая идея, ведь стандартные ошибки сообщают о нарушениях в формуле.

Надеемся, наше руководство пользования функцией ИНДЕКС ПОИСКПОЗ() оказалось полезным.

Источник

Функции MS Excel ИНДЕКС (INDEX) и ПОИСКПОЗ (MATCH) – более гибкая альтернатива ВПР

Многие пользователи знают и применяют формулу ВПР. Известно также, что ВПР имеет ряд особенностей и ограничений, которые несложно обойти. Однако есть нюанс, который значительно ограничивает возможности функции ВПР.

ВПР требует, чтобы в диапазоне с искомыми данными столбец критериев всегда был первым слева. Это обстоятельство, конечно, является ограничением ВПР. Как же быть, если искомые данные находятся левее столбца с критерием? Можно, конечно, расположить столбцы в нужном порядке, что в целом, является неплохим выходом из ситуации. Но бывает так, что сделать этого нельзя, или трудно. К примеру, вы работаете в чужом документе или регулярно получаете новый отчет. В общем, нужно решение, не зависящее от расположения столбцов. Такое решение существует.

Нужно воспользоваться комбинацией из двух функций: ИНДЕКС и ПОИСКПОЗ. Формула работает следующим образом. ИНДЕКС отсчитывает необходимое количество ячеек вниз в диапазоне искомых значений. Количество отсчитываемых ячеек определяется по столбцу критериев функцией ПОИСКПОЗ. Работу комбинации этих функций удобно рассмотреть с середины, где вначале находится номер ячейки с подходящим критерием, а затем этот номер подставляется в ИНДЕКС.

Впр или индекс что быстрей работает. lazy placeholder. Впр или индекс что быстрей работает фото. Впр или индекс что быстрей работает-lazy placeholder. картинка Впр или индекс что быстрей работает. картинка lazy placeholder. Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

Таким образом, чтобы подтянуть значение цены, соответствующее первому коду (книге), нужно прописать такую формулу.

Впр или индекс что быстрей работает. lazy placeholder. Впр или индекс что быстрей работает фото. Впр или индекс что быстрей работает-lazy placeholder. картинка Впр или индекс что быстрей работает. картинка lazy placeholder. Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

Следует обратить внимание на корректность ссылок, чтобы при копировании формулы ничего не «съехало». Протягиваем формулу вниз. Если в таблице, откуда подтягиваются данные, нет искомого критерия, то функция выдает ошибку #Н/Д.

Впр или индекс что быстрей работает. lazy placeholder. Впр или индекс что быстрей работает фото. Впр или индекс что быстрей работает-lazy placeholder. картинка Впр или индекс что быстрей работает. картинка lazy placeholder. Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

Довольно стандартная ситуация, с которой успешно справляется функция ЕСЛИОШИБКА. Она перехватывает ошибки и вместо них выдает что-либо другое, например, нули.

Конструкция формулы будет следующая:

Впр или индекс что быстрей работает. lazy placeholder. Впр или индекс что быстрей работает фото. Впр или индекс что быстрей работает-lazy placeholder. картинка Впр или индекс что быстрей работает. картинка lazy placeholder. Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

Вот, собственно, и все.

Таким образом, комбинация функций ИНДЕКС и ПОИСКПОЗ является полной заменой ВПР и обладает дополнительным преимуществом: умеет находить данные слева от столбца с критерием. Кроме того, сами столбцы можно двигать как угодно, лишь бы ссылка не съехала, чего нельзя проделать с ВПР, т.к. количество столбцов там указывается конкретным числом. Посему комбинация ИНДЕКС и ПОИСКПОЗ более универсальна, чем ВПР.

Ниже видеоурок по работе функций ИНДЕКС и ПОИСКПОЗ.

Источник

Функции ИНДЕКС и ПОИСКПОЗ в Excel – лучшая альтернатива для ВПР

Этот учебник рассказывает о главных преимуществах функций ИНДЕКС и ПОИСКПОЗ в Excel, которые делают их более привлекательными по сравнению с ВПР. Вы увидите несколько примеров формул, которые помогут Вам легко справиться со многими сложными задачами, перед которыми функция ВПР бессильна.

В нескольких недавних статьях мы приложили все усилия, чтобы разъяснить начинающим пользователям основы функции ВПР и показать примеры более сложных формул для продвинутых пользователей. Теперь мы попытаемся, если не отговорить Вас от использования ВПР, то хотя бы показать альтернативные способы реализации вертикального поиска в Excel.

Зачем нам это? – спросите Вы. Да, потому что ВПР – это не единственная функция поиска в Excel, и её многочисленные ограничения могут помешать Вам получить желаемый результат во многих ситуациях. С другой стороны, функции ИНДЕКС и ПОИСКПОЗ – более гибкие и имеют ряд особенностей, которые делают их более привлекательными, по сравнению с ВПР.

Базовая информация об ИНДЕКС и ПОИСКПОЗ

Так как задача этого учебника – показать возможности функций ИНДЕКС и ПОИСКПОЗ для реализации вертикального поиска в Excel, мы не будем задерживаться на их синтаксисе и применении.

Приведём здесь необходимый минимум для понимания сути, а затем разберём подробно примеры формул, которые показывают преимущества использования ИНДЕКС и ПОИСКПОЗ вместо ВПР.

ИНДЕКС – синтаксис и применение функции

Функция INDEX (ИНДЕКС) в Excel возвращает значение из массива по заданным номерам строки и столбца. Функция имеет вот такой синтаксис:

Каждый аргумент имеет очень простое объяснение:

Если указаны оба аргумента, то функция ИНДЕКС возвращает значение из ячейки, находящейся на пересечении указанных строки и столбца.

Вот простейший пример функции INDEX (ИНДЕКС):

Формула выполняет поиск в диапазоне A1:C10 и возвращает значение ячейки во 2-й строке и 3-м столбце, то есть из ячейки C2.

Очень просто, правда? Однако, на практике Вы далеко не всегда знаете, какие строка и столбец Вам нужны, и поэтому требуется помощь функции ПОИСКПОЗ.

ПОИСКПОЗ – синтаксис и применение функции

Функция MATCH (ПОИСКПОЗ) в Excel ищет указанное значение в диапазоне ячеек и возвращает относительную позицию этого значения в диапазоне.

Например, если в диапазоне B1:B3 содержатся значения New-York, Paris, London, тогда следующая формула возвратит цифру 3, поскольку «London» – это третий элемент в списке.

Функция MATCH (ПОИСКПОЗ) имеет вот такой синтаксис:

На первый взгляд, польза от функции ПОИСКПОЗ вызывает сомнение. Кому нужно знать положение элемента в диапазоне? Мы хотим знать значение этого элемента!

Позвольте напомнить, что относительное положение искомого значения (т.е. номер строки и/или столбца) – это как раз то, что мы должны указать для аргументов row_num (номер_строки) и/или column_num (номер_столбца) функции INDEX (ИНДЕКС). Как Вы помните, функция ИНДЕКС может возвратить значение, находящееся на пересечении заданных строки и столбца, но она не может определить, какие именно строка и столбец нас интересуют.

Как использовать ИНДЕКС и ПОИСКПОЗ в Excel

Теперь, когда Вам известна базовая информация об этих двух функциях, полагаю, что уже становится понятно, как функции ПОИСКПОЗ и ИНДЕКС могут работать вместе. ПОИСКПОЗ определяет относительную позицию искомого значения в заданном диапазоне ячеек, а ИНДЕКС использует это число (или числа) и возвращает результат из соответствующей ячейки.

Ещё не совсем понятно? Представьте функции ИНДЕКС и ПОИСКПОЗ в таком виде:

Думаю, ещё проще будет понять на примере. Предположим, у Вас есть вот такой список столиц государств:

Впр или индекс что быстрей работает. indeks poiskpoz excel 2. Впр или индекс что быстрей работает фото. Впр или индекс что быстрей работает-indeks poiskpoz excel 2. картинка Впр или индекс что быстрей работает. картинка indeks poiskpoz excel 2. Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

Давайте найдём население одной из столиц, например, Японии, используя следующую формулу:

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

Формула говорит примерно следующее: ищи в ячейках от D2 до D10 и извлеки значение из третьей строки, то есть из ячейки D4, так как счёт начинается со второй строки.

Вот такой результат получится в Excel:

Впр или индекс что быстрей работает. indeks poiskpoz excel 3. Впр или индекс что быстрей работает фото. Впр или индекс что быстрей работает-indeks poiskpoz excel 3. картинка Впр или индекс что быстрей работает. картинка indeks poiskpoz excel 3. Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

Важно! Количество строк и столбцов в массиве, который использует функция INDEX (ИНДЕКС), должно соответствовать значениям аргументов row_num (номер_строки) и column_num (номер_столбца) функции MATCH (ПОИСКПОЗ). Иначе результат формулы будет ошибочным.

Стоп, стоп… почему мы не можем просто использовать функцию VLOOKUP (ВПР)? Есть ли смысл тратить время, пытаясь разобраться в лабиринтах ПОИСКПОЗ и ИНДЕКС?

В данном случае – смысла нет! Цель этого примера – исключительно демонстрационная, чтобы Вы могли понять, как функции ПОИСКПОЗ и ИНДЕКС работают в паре. Последующие примеры покажут Вам истинную мощь связки ИНДЕКС и ПОИСКПОЗ, которая легко справляется с многими сложными ситуациями, когда ВПР оказывается в тупике.

Почему ИНДЕКС/ПОИСКПОЗ лучше, чем ВПР?

Решая, какую формулу использовать для вертикального поиска, большинство гуру Excel считают, что ИНДЕКС/ПОИСКПОЗ намного лучше, чем ВПР. Однако, многие пользователи Excel по-прежнему прибегают к использованию ВПР, т.к. эта функция гораздо проще. Так происходит, потому что очень немногие люди до конца понимают все преимущества перехода с ВПР на связку ИНДЕКС и ПОИСКПОЗ, а тратить время на изучение более сложной формулы никто не хочет.

Далее я попробую изложить главные преимущества использования ПОИСКПОЗ и ИНДЕКС в Excel, а Вы решите – остаться с ВПР или переключиться на ИНДЕКС/ПОИСКПОЗ.

4 главных преимущества использования ПОИСКПОЗ/ИНДЕКС в Excel:

1. Поиск справа налево. Как известно любому грамотному пользователю Excel, ВПР не может смотреть влево, а это значит, что искомое значение должно обязательно находиться в крайнем левом столбце исследуемого диапазона. В случае с ПОИСКПОЗ/ИНДЕКС, столбец поиска может быть, как в левой, так и в правой части диапазона поиска. Пример: Как находить значения, которые находятся слева покажет эту возможность в действии.

2. Безопасное добавление или удаление столбцов. Формулы с функцией ВПР перестают работать или возвращают ошибочные значения, если удалить или добавить столбец в таблицу поиска. Для функции ВПР любой вставленный или удалённый столбец изменит результат формулы, поскольку синтаксис ВПР требует указывать весь диапазон и конкретный номер столбца, из которого нужно извлечь данные.

Например, если у Вас есть таблица A1:C10, и требуется извлечь данные из столбца B, то нужно задать значение 2 для аргумента col_index_num (номер_столбца) функции ВПР, вот так:

=VLOOKUP(«lookup value»,A1:C10,2)
=ВПР(«lookup value»;A1:C10;2)

Если позднее Вы вставите новый столбец между столбцами A и B, то значение аргумента придется изменить с 2 на 3, иначе формула возвратит результат из только что вставленного столбца.

Используя ПОИСКПОЗ/ИНДЕКС, Вы можете удалять или добавлять столбцы к исследуемому диапазону, не искажая результат, так как определен непосредственно столбец, содержащий нужное значение. Действительно, это большое преимущество, особенно когда работать приходится с большими объёмами данных. Вы можете добавлять и удалять столбцы, не беспокоясь о том, что нужно будет исправлять каждую используемую функцию ВПР.

3. Нет ограничения на размер искомого значения. Используя ВПР, помните об ограничении на длину искомого значения в 255 символов, иначе рискуете получить ошибку #VALUE! (#ЗНАЧ!). Итак, если таблица содержит длинные строки, единственное действующее решение – это использовать ИНДЕКС/ПОИСКПОЗ.

Предположим, Вы используете вот такую формулу с ВПР, которая ищет в ячейках от B5 до D10 значение, указанное в ячейке A2:

Формула не будет работать, если значение в ячейке A2 длиннее 255 символов. Вместо неё Вам нужно использовать аналогичную формулу ИНДЕКС/ПОИСКПОЗ:

4. Более высокая скорость работы. Если Вы работаете с небольшими таблицами, то разница в быстродействии Excel будет, скорее всего, не заметная, особенно в последних версиях. Если же Вы работаете с большими таблицами, которые содержат тысячи строк и сотни формул поиска, Excel будет работать значительно быстрее, при использовании ПОИСКПОЗ и ИНДЕКС вместо ВПР. В целом, такая замена увеличивает скорость работы Excel на 13%.

Влияние ВПР на производительность Excel особенно заметно, если рабочая книга содержит сотни сложных формул массива, таких как ВПР+СУММ. Дело в том, что проверка каждого значения в массиве требует отдельного вызова функции ВПР. Поэтому, чем больше значений содержит массив и чем больше формул массива содержит Ваша таблица, тем медленнее работает Excel.

С другой стороны, формула с функциями ПОИСКПОЗ и ИНДЕКС просто совершает поиск и возвращает результат, выполняя аналогичную работу заметно быстрее.

ИНДЕКС и ПОИСКПОЗ – примеры формул

Теперь, когда Вы понимаете причины, из-за которых стоит изучать функции ПОИСКПОЗ и ИНДЕКС, давайте перейдём к самому интересному и увидим, как можно применить теоретические знания на практике.

Как выполнить поиск с левой стороны, используя ПОИСКПОЗ и ИНДЕКС

Любой учебник по ВПР твердит, что эта функция не может смотреть влево. Т.е. если просматриваемый столбец не является крайним левым в диапазоне поиска, то нет шансов получить от ВПР желаемый результат.

Функции ПОИСКПОЗ и ИНДЕКС в Excel гораздо более гибкие, и им все-равно, где находится столбец со значением, которое нужно извлечь. Для примера, снова вернёмся к таблице со столицами государств и населением. На этот раз запишем формулу ПОИСКПОЗ/ИНДЕКС, которая покажет, какое место по населению занимает столица России (Москва).

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

Впр или индекс что быстрей работает. indeks poiskpoz excel 4. Впр или индекс что быстрей работает фото. Впр или индекс что быстрей работает-indeks poiskpoz excel 4. картинка Впр или индекс что быстрей работает. картинка indeks poiskpoz excel 4. Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

Теперь у Вас не должно возникать проблем с пониманием, как работает эта формула:

Подсказка: Правильным решением будет всегда использовать абсолютные ссылки для ИНДЕКС и ПОИСКПОЗ, чтобы диапазоны поиска не сбились при копировании формулы в другие ячейки.

Вычисления при помощи ИНДЕКС и ПОИСКПОЗ в Excel (СРЗНАЧ, МАКС, МИН)

Вы можете вкладывать другие функции Excel в ИНДЕКС и ПОИСКПОЗ, например, чтобы найти минимальное, максимальное или ближайшее к среднему значение. Вот несколько вариантов формул, применительно к таблице из предыдущего примера:

1. MAX (МАКС). Формула находит максимум в столбце D и возвращает значение из столбца C той же строки:

2. MIN (МИН). Формула находит минимум в столбце D и возвращает значение из столбца C той же строки:

3. AVERAGE (СРЗНАЧ). Формула вычисляет среднее в диапазоне D2:D10, затем находит ближайшее к нему и возвращает значение из столбца C той же строки:

О чём нужно помнить, используя функцию СРЗНАЧ вместе с ИНДЕКС и ПОИСКПОЗ

Используя функцию СРЗНАЧ в комбинации с ИНДЕКС и ПОИСКПОЗ, в качестве третьего аргумента функции ПОИСКПОЗ чаще всего нужно будет указывать 1 или -1 в случае, если Вы не уверены, что просматриваемый диапазон содержит значение, равное среднему. Если же Вы уверены, что такое значение есть, – ставьте 0 для поиска точного совпадения.

В нашем примере значения в столбце D упорядочены по возрастанию, поэтому мы используем тип сопоставления 1. Формула ИНДЕКС/ПОИСКПОЗ возвращает «Moscow», поскольку величина населения города Москва – ближайшее меньшее к среднему значению (12 269 006).

Впр или индекс что быстрей работает. indeks poiskpoz excel 5. Впр или индекс что быстрей работает фото. Впр или индекс что быстрей работает-indeks poiskpoz excel 5. картинка Впр или индекс что быстрей работает. картинка indeks poiskpoz excel 5. Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

Как при помощи ИНДЕКС и ПОИСКПОЗ выполнять поиск по известным строке и столбцу

Эта формула эквивалентна двумерному поиску ВПР и позволяет найти значение на пересечении определённой строки и столбца.

В этом примере формула ИНДЕКС/ПОИСКПОЗ будет очень похожа на формулы, которые мы уже обсуждали в этом уроке, с одним лишь отличием. Угадайте каким?

Как Вы помните, синтаксис функции INDEX (ИНДЕКС) позволяет использовать три аргумента:

И я поздравляю тех из Вас, кто догадался!

Начнём с того, что запишем шаблон формулы. Для этого возьмём уже знакомую нам формулу ИНДЕКС/ПОИСКПОЗ и добавим в неё ещё одну функцию ПОИСКПОЗ, которая будет возвращать номер столбца.

Обратите внимание, что для двумерного поиска нужно указать всю таблицу в аргументе array (массив) функции INDEX (ИНДЕКС).

А теперь давайте испытаем этот шаблон на практике. Ниже Вы видите список самых населённых стран мира. Предположим, наша задача узнать население США в 2015 году.

Впр или индекс что быстрей работает. indeks poiskpoz excel 6. Впр или индекс что быстрей работает фото. Впр или индекс что быстрей работает-indeks poiskpoz excel 6. картинка Впр или индекс что быстрей работает. картинка indeks poiskpoz excel 6. Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

Хорошо, давайте запишем формулу. Когда мне нужно создать сложную формулу в Excel с вложенными функциями, то я сначала каждую вложенную записываю отдельно.

Итак, начнём с двух функций ПОИСКПОЗ, которые будут возвращать номера строки и столбца для функции ИНДЕКС:

Результатом этой формулы будет 5, поскольку «2015» находится в 5-ом столбце.

Теперь вставляем эти формулы в функцию ИНДЕКС и вуаля:

Если заменить функции ПОИСКПОЗ на значения, которые они возвращают, формула станет легкой и понятной:

Эта формула возвращает значение на пересечении 4-ой строки и 5-го столбца в диапазоне A1:E11, то есть значение ячейки E4. Просто? Да!

Впр или индекс что быстрей работает. indeks poiskpoz excel 7. Впр или индекс что быстрей работает фото. Впр или индекс что быстрей работает-indeks poiskpoz excel 7. картинка Впр или индекс что быстрей работает. картинка indeks poiskpoz excel 7. Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

Поиск по нескольким критериям с ИНДЕКС и ПОИСКПОЗ

В учебнике по ВПР мы показывали пример формулы с функцией ВПР для поиска по нескольким критериям. Однако, существенным ограничением такого решения была необходимость добавлять вспомогательный столбец. Хорошая новость: формула ИНДЕКС/ПОИСКПОЗ может искать по значениям в двух столбцах, без необходимости создания вспомогательного столбца!

Предположим, у нас есть список заказов, и мы хотим найти сумму по двум критериям – имя покупателя (Customer) и продукт (Product). Дело усложняется тем, что один покупатель может купить сразу несколько разных продуктов, и имена покупателей в таблице на листе Lookup table расположены в произвольном порядке.

Впр или индекс что быстрей работает. indeks poiskpoz excel 8. Впр или индекс что быстрей работает фото. Впр или индекс что быстрей работает-indeks poiskpoz excel 8. картинка Впр или индекс что быстрей работает. картинка indeks poiskpoz excel 8. Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

Вот такая формула ИНДЕКС/ПОИСКПОЗ решает задачу:

Эта формула сложнее других, которые мы обсуждали ранее, но вооруженные знанием функций ИНДЕКС и ПОИСКПОЗ Вы одолеете ее. Самая сложная часть – это функция ПОИСКПОЗ, думаю, её нужно объяснить первой.

MATCH(1,(A2=’Lookup table’!$A$2:$A$13),0)*(B2=’Lookup table’!$B$2:$B$13)
ПОИСКПОЗ(1;(A2=’Lookup table’!$A$2:$A$13);0)*(B2=’Lookup table’!$B$2:$B$13)

В формуле, показанной выше, искомое значение – это 1, а массив поиска – это результат умножения. Хорошо, что же мы должны перемножить и почему? Давайте разберем все по порядку:

Теперь понимаете, почему мы задали 1, как искомое значение? Правильно, чтобы функция ПОИСКПОЗ возвращала позицию только, когда оба критерия выполняются.

Обратите внимание: В этом случае необходимо использовать третий не обязательный аргумент функции ИНДЕКС. Он необходим, т.к. в первом аргументе мы задаем всю таблицу и должны указать функции, из какого столбца нужно извлечь значение. В нашем случае это столбец C (Sum), и поэтому мы ввели 3.

И, наконец, т.к. нам нужно проверить каждую ячейку в массиве, эта формула должна быть формулой массива. Вы можете видеть это по фигурным скобкам, в которые она заключена. Поэтому, когда закончите вводить формулу, не забудьте нажать Ctrl+Shift+Enter.

Если всё сделано верно, Вы получите результат как на рисунке ниже:

Впр или индекс что быстрей работает. indeks poiskpoz excel 9. Впр или индекс что быстрей работает фото. Впр или индекс что быстрей работает-indeks poiskpoz excel 9. картинка Впр или индекс что быстрей работает. картинка indeks poiskpoz excel 9. Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

ИНДЕКС и ПОИСКПОЗ в сочетании с ЕСЛИОШИБКА в Excel

Как Вы, вероятно, уже заметили (и не раз), если вводить некорректное значение, например, которого нет в просматриваемом массиве, формула ИНДЕКС/ПОИСКПОЗ сообщает об ошибке #N/A (#Н/Д) или #VALUE! (#ЗНАЧ!). Если Вы хотите заменить такое сообщение на что-то более понятное, то можете вставить формулу с ИНДЕКС и ПОИСКПОЗ в функцию ЕСЛИОШИБКА.

Синтаксис функции ЕСЛИОШИБКА очень прост:

Где аргумент value (значение) – это значение, проверяемое на предмет наличия ошибки (в нашем случае – результат формулы ИНДЕКС/ПОИСКПОЗ); а аргумент value_if_error (значение_если_ошибка) – это значение, которое нужно возвратить, если формула выдаст ошибку.

Например, Вы можете вставить формулу из предыдущего примера в функцию ЕСЛИОШИБКА вот таким образом:

=IFERROR(INDEX($A$1:$E$11,MATCH($G$2,$B$1:$B$11,0),MATCH($G$3,$A$1:$E$1,0)),
«Совпадений не найдено. Попробуйте еще раз!») =ЕСЛИОШИБКА(ИНДЕКС($A$1:$E$11;ПОИСКПОЗ($G$2;$B$1:$B$11;0);ПОИСКПОЗ($G$3;$A$1:$E$1;0));
«Совпадений не найдено. Попробуйте еще раз!»)

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

Впр или индекс что быстрей работает. indeks poiskpoz excel 10. Впр или индекс что быстрей работает фото. Впр или индекс что быстрей работает-indeks poiskpoz excel 10. картинка Впр или индекс что быстрей работает. картинка indeks poiskpoz excel 10. Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

Если Вы предпочитаете в случае ошибки оставить ячейку пустой, то можете использовать кавычки («»), как значение второго аргумента функции ЕСЛИОШИБКА. Вот так:

Надеюсь, что хотя бы одна формула, описанная в этом учебнике, показалась Вам полезной. Если Вы сталкивались с другими задачами поиска, для которых не смогли найти подходящее решение среди информации в этом уроке, смело опишите свою проблему в комментариях, и мы все вместе постараемся решить её.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *