чем заменить впр в экселе

data_client

Альтернатива ВПР в Excel. Функции СМЕЩ и ПОИСКПОЗ

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

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

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

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

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

СМЕЩ(ссылка;смещение по строкам;смещение по столбцам)

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

К примеру для таблицы в скринщоте выше функция ПОИСКПОЗ(«Петров»;B2:B6;0) вернет значение 3. Мы ищем фамилию Петров в перечне фамилий. Она там третья по списку, поэтому формула вернула число 3.

Теперь давайте объединим наши знания и решим задачу по альтернативному ВПР в Экселе.

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

Итак, для нашего примера формула будет следующая:

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

Надеюсь, статья была для вас полезной. Спасибо за внимание.

Источник

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

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

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

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

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

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

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

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

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

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

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

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

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

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

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

Источник

Microsoft представила замену ВПР, ГПР а также ПОИСКПОЗ

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

С введением динамических массивов было вполне очевидно, что анонсом семи новых функций Microsoft не ограничится. В августе 2019, почти год после анонса масштабного обновления (сентябрь 2018), Microsoft представила замену одной из самых популярных функций в Excel.

Да, речь идет об ВПР или VLOOKUP в английской версии, попутно обновилась и ГПР (HLOOKUP, соответственно). На самом деле новая функция ПРОСМОТРХ (XLOOKUP) просто заменяет их обе. Кстати, в конце стоит именно латинский символ «X» (экс), а не русская «Х» (ха), что доставляет неудобств, если вы пользуетесь русской версией электронного процессора.

А вот для функции ПОИСКПОЗ (MATCH) была добавлена своя функция ПОИСКПОЗX XMATCH, которая, использует возможности динамических массивов, как и XLOOKUP.

Представление ПРОСМОТРХ (XLOOKUP)

Наименование функции намекает, на то, что она будет являться заменой, как для вертикального поиска, так и для горизонтального. Соответственно, данная функция будет заменять обе существующие и ВПР, и ГПР.

При всем при этом, синтаксис данной функции чрезвычайно прост:

Для тех, кто освоил использование ВПР, освоение данной функции не составит никакого труда. Простейший пример представлен на анимированном рисунке.

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

Почему Microsft представила новую функцию?

Все дело в тех недостатках, которые существуют при использовании ВПР (как и ГПР):

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

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

О полных возможностях функции ПРОСМОТРХ в нашем справочнике.

Немного об ПОИСКПОЗX (XMATCH)

В дополнении к XLOOKUP была анонсирована и новая функция ПОИСКПОЗX (XMATCH), с похожим на XLOOKUP синтаксисом, однако возвращает индекс искомого значения.

Подробно об использовании данной функции, также можно узнать в справочнике.

Источник

Функция ПРОСМОТРX (XLOOKUP) вместо ВПР, ГПР и других функций в Excel

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

Научитесь использовать все прикладные инструменты из функционала MS Excel.

Функция ВПР (VLOOKUP) скоро отпразднует юбилей 10 лет, что для временного цикла программного обеспечения сопоставимо с выходом на пенсию.

Перед разработчиками из Microsoft стояла задача подобрать достойную замену, и они не ударили в грязь лицом, выпустив функцию ПРОСМОТРX (XLOOKUP), которая представляет собой не только улучшенную версию ВПР, но ещё и замену ГПР, ИНДЕКС и ПОИСКПОЗ. Если хотите узнать о других полезных функциях Excel, то рекомендуем записаться на бесплатный онлайн-курс «Аналитика в Excel».

Пару слов про функцию ПРОСМОТРX

Прежде чем приступать к работе с функцией ПРОСМОТРХ, нужно учесть 3 момента:

1. Версию Excel: на данный момент, осень 2020 года, ПРОСМОТРX доступен только пользователям Office 365, хотя поговаривают, что эту брешь залатают в Standalone-версии Microsoft Office 2021.

2. Буква Х в названии функции – английская, поэтому велика вероятность ошибки при дотошном вводе; лучше всего использовать автозавершение ввода функций с помощью клавиши Tab.

3. Перебирать аргументы и диапазоны (не только в ПРОСМОТРХ, но и в других функциях) намного быстрее с зажатой клавишей Ctrl, чем с помощью ручного ввода точек с запятой.

Про атрибуты и возможности функции мы поговорим уже в боевых условиях, разбираясь с тем, что же всё-таки умеет делать ПРОСМОТРХ.

Левый ВПР? Я могу орудовать, где угодно!

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

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

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

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

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

«Загвоздка?!» – удивляется ПРОСМОТРХ. «Да ещё чего!».

Специально используем «Мастер функций» комбинацией Shift+F3 (или кнопочка Fx слева от строки ввода формул), чтобы показать аргументы.

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

Искомое значение – это ячейка А2, то есть Gary Miller, с него мы начнём выводить бонусы.

Просматриваемый массив – это столбец с сотрудниками на втором листе, то есть где функция ищет искомое значение. Закрепляем абсолютными ссылками.

Возвращаемый массив – тот самый столбец бонусов, которые мы хотим достать. Тоже забираем его со второго листа, зафиксировав с помощью F4.

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

Режим сопоставления – классическая указка Excel для поиска точных или приблизительных значения. В данном случае выбираем 0 – точный поиск.

Протягиваем результат в ячейке ниже и сразу обращаем внимание на 0 – это те сотрудники, которых ПРОСМОТРХ не обнаружил в списке.

Кстати, если изначально функция везде выдаёт вам нули, то нужно проверить формат ячеек и проставить там числовой

Чтобы посчитать годовой оклад, можно умножить наши результаты на показатели столбца В, то есть дописываем в формулу *B2:

Протягиваем и получаем максимальный бонус сотрудников.

Иди домой, ГПР!

Раз мы сказали о том, что ПРОСМОТРХ умеет работать в любых направлениях, то и с заменой ГПР, которая считает по строкам, тоже проблем не будет.

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

Заберём аналогичные данные для бонуса по сотрудникам, как делали ранее, но теперь обратимся к горизонтально развёрнутой табличке на другом листе. Естественно, строка с бонусом находится выше строки с сотрудниками, что в случае с обычным ГПР нам принесло бы ошибку. Сейчас же мы действуем по накатанной схеме:

Указываем ячейку с сотрудником. Затем выбираем диапазон с сотрудниками, в котором ПРОСМОТРХ находит искомое значение. Фиксируем по нажатию F4.

Далее указываем строку с бонусами, тоже фиксируем через F4.

Если ничего не найдено, ставим 0.

Точность поиска – тоже 0, точный поиск.

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

Получаем идентичный результат, который мы можем с чистой совестью перемножить на годовое жалованье сотрудников. Добавляем к формуле *B2:

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

Кажется, на нём были очки…

Представим, что необходимо достать все реквизиты сотрудника, но мы знаем лишь его фамилию (или какие-то другие отличительные знаки). Попробуем извлечь данные человека по фамилии Willard в отдельной ячейке.

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

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

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

В первый аргумент, перед искомой ячейкой G2, дописываем “*”. Звёздочка – это служебный символ, которого мы сцепляем амперсандом (&) с ячейкой G2 и таким образом говорим программе, чтобы осуществлялся поиск не только Willard, но и всего остального содержимого ячейки до Willard. То есть первый аргумент у нас примет вид: «*»&G2

Второй аргумент – искомый массив, то есть столбец с именами: A2:A19

Третий аргумент – возвращаемый массив, то есть опять столбец с именами: A2:A19

Четвёртый аргумент – пропускаем

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

Вот мы и получили James Willard.

«Двойной ПРОСМОТРХ» или «Зависимые выпадающие списки»

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

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

Сперва добавим в нашу таблицу новый столбец под названием «Итоговый платёж», в котором будет осуществляться суммирование столбцов B и C.

Теперь добавим выпадающий список в ячейку G7.

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

Вкладка «Данные» – «Проверка данных». Тип данных – список.

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

В поле «Источник» указываем диапазон с нашими сотрудниками из столбца А. Жмём ОК.

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

Проверяем. Список работает.

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

Ниже, в ячейке G8, создаём второй выпадающий список, вот только в поле «Источник» указываем заголовки столбцов из шапки таблицы, то есть протягиваем строку от Годового оклада до Итогового платежа. Нажимаем ОК.

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

Тоже работает. Едем дальше.

Всё готово для встраивания двойного ПРОСМОТРХ.

Переходим в ячейку G9, хотя вы можете выбрать абсолютно любую ячейку.

Начинаем вводить формулу.

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

Научитесь использовать все прикладные инструменты из функционала MS Excel.

Мы ищем имя из выпадающего списка выше, то есть ячейка G7 – это первый аргумент.

Затем выбираем диапазон сотрудников – это второй аргумент.

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

В качестве возвращаемого массива выбираем все остальные столбцы, потому что нам понадобятся все данные. И здесь – внимание!

На место третьего аргумента первой функции ПРОСМОТРХ мы пишем ещё один ПРОСМОТРХ. Уже в нём указываем первым аргументом ячейку F8 (там перебираются заголовки столбцов).

Второй аргумент – это шапка таблицы.

Третий аргумент – уже обозначенный диапазон всех столбцов, кроме сотрудников (разумеется, без шапки).

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

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

Готово. Теперь, в зависимости от выбранного сотрудника в первом списке, переключаются его показатели в различных столбцах из второго. Шикарно!

Как насчёт подсветки выбираемых имён?

В качестве бонуса можете прикрутить сюда условное форматирование, чтобы оно подсвечивало строку по выбранному имени. Мы же смотрим отчётность, это было бы крайне удобно!

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

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

Обводим всю нашу таблицу. Переходим на вкладку «Главная», потом «Условное форматирование», затем «Создать правило».

Выбираем «Использовать формулу для определения форматируемых ячеек».

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

Сперва зададим формат. Зальём каким-нибудь цветом. Окрасим шрифт. Должно выйти неплохо. Теперь переходим к прописыванию формулы.

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

$F$7 – наша зафиксированная ячейка с именем из выпадающего списка.

0 – просматриваемый массив, то есть ПОИСКПОЗ находит первое значение, равное искомому.

Нажимаем ОК и ОК далее.

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

Переключаем имена и любуемся подсветкой.

ПРОСМОТРХ вместо задания условий

Возникла ситуация, когда следует начислить определённые бонусы в зависимости от жалования сотрудников. Отдельная маленькая табличка уже находится на листе. В одном столбце – ориентировочное жалование, в другом – бонусы в процентах.

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

Если зарплата равна 10 000 – никакого бонуса, 30 000 – 5% бонусом, 50 000 – 8% бонусом и так далее. Определим, кому какой бонус полагается с помощью ПРОСМОТРХ.

Создадим новый столбец «Новый бонус» на основном листе.

Пишем в первой ячейке нового столбца формулу:

Первым аргументом выбираем ячейку В2 из столбца с окладами сотрудников.

В качестве второго аргумента указываем столбец с жалованием из бонусной таблички с другого листа, то есть у нас будет Лист2!F13:$F$17.

Возвращаемый массив – уже бонусный проценты, то есть бонусный столбец из бонусной таблички с другого листа – Лист2!G13:$G$17.

Пропускаем аргумент, если мы ничего не находим, сейчас это необязательно.

Теперь нужно проверить результаты.

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

Гари Миллеру досталось 10% бонусов. Идём на бонусную табличку и смотрим.

Его оклад составляет 60 000 – это 10%. Следующий оклад для бонусов уже 100 000 и 15% соответственно. Что сделал Excel: он нашёл 60 000 и затем отобрал следующее минимальное значение, то есть 10%.

Никаких условий и никаких подборов. Одна только функция ПРОСМОТРХ помогла нам решить целую вереницу задач.

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

Научитесь использовать все прикладные инструменты из функционала MS Excel.

Источник

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

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

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

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

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

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

Способ 1. ВПР

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

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

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

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

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

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

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

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

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

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

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

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

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

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

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

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

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

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

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

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

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

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

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

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

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

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

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

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

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

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

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

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

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

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

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

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

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

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

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

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

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

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

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

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

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

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

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

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

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

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

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

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

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

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

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

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

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

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

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

чем заменить впр в экселе. Смотреть фото чем заменить впр в экселе. Смотреть картинку чем заменить впр в экселе. Картинка про чем заменить впр в экселе. Фото чем заменить впр в экселе

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

Источник

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

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