Левый ВПР
Необходимое предисловие
Если вы раньше не работали с функцией ВПР (VLOOKUP), то много потеряли очень рекомендую сначала почитать вот эту статью и посмотреть в ней видеоурок.
Проблема
Как многим известно, функция ВПР (VLOOKUP) может выдавать в качестве результата значения, которые находятся строго правее того столбца, где производится поиск. Ах, как было бы красиво, если бы третий аргумент этой функции (номер столбца, откуда выдаются значения) можно было бы задавать отрицательным, но — нет.
На практике же сплошь и рядом возникают ситуации, когда искать данные надо в столбце, который находится правее, а не левее столбца результатов, например:
Стоимость по коду заказа найти легко — обычный ВПР тут поможет на раз-два. А вот как найти название товара по коду? На тренингах этот вопрос я чаще всего слышу в формулировке «а как сделать левый ВПР»?
Давайте разберем несколько способов.
Способ 1. Лобовая атака
Если следовать принципу Оккама и не усложнять без надобности, то можно просто скопировать нужный столбец правее (или сделать его ссылками) и использовать обычный ВПР:
Дешево и сердито, но требует ручного допиливания таблицы. Кроме того, часто бывают случаи, когда таблицу нельзя менять: она защищена паролем, это корпоративный шаблон, таблица в общем доступе и т.д. Тогда нужен другой подход.
Способ 2. Виртуальная перестановка столбцов функцией ВЫБОР
Если переставить местами столбцы на листе нельзя, то это можно сделать виртуально, т.е. «на лету» прямо в самой формуле. Для этого нам потребуется функция ВЫБОР (CHOOSE). Основное ее предназначение – выбирать нужный элемент из списка по заданному номеру. Ее, например, можно использовать для замены номера дня недели на его текстовый аналог:
Ничего сверхъестественного, на первый взгляд, но тут есть пара хитрых моментов.
Во-первых, вместо текстовых названий выбираемых элементов списка («пн», «вт» и т.д.) можно использовать адреса диапазонов. И тогда функция вернет ссылку на выбранный диапазон. Так, например, формула:
=ВЫБОР(2; A1:A10; D1:D10; B1:B10)
… выдаст на выходе ссылку на второй указанный диапазон (D1:D10).
Во-вторых, вместо простого одиночного номера извлекаемого элемента в первом аргументе функции ВЫБОР можно задать массив констант в фигурных скобках, например, так:
=ВЫБОР({1;2}; A1:A10; D1:D10; B1:B10)
Тогда на выходе мы получим два первых диапазона (A1:A10 и D1:D10), склеенных в единое целое.
И вот теперь все это можно вложить внутрь нашей ВПР, чтобы реализовать «левый поиск»:
От «классического ВПР» отличается, как видно, только тем, что диапазон задается склейкой двух столбцов Код заказа и Товар с помощью функции ВЫБОР. В остальном все привычно.
Минусы такого способа — это скорость (примерно в 5-7 раз медленнее обычного ВПР) и некоторая непривычность для коллег (а может это даже плюс!)
Способ 3. Связка функций ИНДЕКС и ПОИСКПОЗ
Если не держаться имеено за функцию ВПР, то можно использовать ее более мощный аналог — связку двух очень полезных функций ИНДЕКС (INDEX) и ПОИСКПОЗ (MATCH):
Функция ПОИСКПОЗ ищет заданное значение (С2, т.е. код нужного нам заказа) в одномерном диапазоне (столбце кодов в таблице C10:C25) и выдает в качестве результата порядковый номер ячейки, где нашла искомое — в нашем случае это будет число 4, т.к. код нужного нам заказа четвертый в таблице.
А затем в дело вступает функция ИНДЕКС, которая умеет извлекать данные из вертикального массива-столбца (названия товаров в B10:B25) по порядковому номеру (который предварительно нашла ПОИСКПОЗ). Таким образом, ИНДЕКС выдаст нам содержимое четвертой ячейки из столбца Товар, что и требовалось.
По сравнению с предыдущим способом, такой вариант гораздо быстрее пересчитывается (почти также быстро как обычный ВПР), что важно для больших таблиц.
Похожий пример (с видео) я разбирал ранее вот в этой статье. А уж про функцию ИНДЕКС можно говорить совсем долго
Способ 4. Функция СУММЕСЛИ(МН)
Если нужно извлечь из таблицы именно число (допустим, объем в литрах), то иногда проще использовать для реализации «левого ВПР» функцию выборочного суммирования СУММЕСЛИ (SUMIF) или ее старшую сестру — функцию СУММЕСЛИМН (SUMIFS):
Минусы такого подхода очевидны — он работает только для чисел и, при условии, что в столбце нет повторяющихся значений. Если есть дубликаты (несколько заказов с одинаковым кодом), то эта функция сложит все объемы, а не выдаст первый, как это сделала бы ВПР. Ну, и скорость у такого способа тоже не очень — примерно в 3-4 раза медленнее, чем обычный ВПР.
Большая статья про функции выборочного подсчета по одному или нескольким условиям есть тут.
Способ 5. Готовая макрофункция из PLEX
Если не пугает использование макросов, то можно использовать готовую пользовательскую функцию VLOOKUPS на Visual Basic, которая входит в состав последней версии моей надстройки PLEX для Microsoft Excel. По сравнению с обычной ВПР она умеет:
- искать по нескольким столбцам сразу (до 3)
- выдавать результаты из любого столбца (левее или правее — не важно)
- выдавать не только первое встретившееся значение, а нужное по порядку
- можно задать, что вывести, если ничего не найдено вместо ошибки #Н/Д
У такого способа два минуса: нужно сохранять файл с поддержкой макросов (XLSM) и скорость у любой макрофункции не очень высокая — на больших таблицах может ощутимо подтормаживать.
Но как один из вариантов — пойдет
Ссылки по теме
- Что такое функция ВПР (VLOOKUP) и как ее использовать для поиска и подстановки значений
- Как вывести сразу все значения, а не только первое (Мульти ВПР)
- Как реализовать двумерный поиск (ВПР 2D)
Skip to content
Функция ВПР – одна из самых популярных, когда нужно найти и извлечь из таблицы какие-либо данные. Но при этом она имеет один существенный недостаток. Поиск она производит в крайнем левом столбце, а извлекать значения можно только их тех, которые находятся правее. А как же быть, если наш ключевой столбец находится в середине таблицы, а данные нужно извлечь из левой ее части? Как сделать «левый» ВПР в таблице Excel?
Мы предложим вам несколько способов извлечения значений, находящихся слева от диапазона поиска. А вот какой из них будет для вас понятнее и удобнее – решайте сами.
- Использование дополнительного столбца
- Виртуальная перестановка столбцов в таблице
- Левый ВПР при помощи ИНДЕКС + ПОИСКПОЗ
- ВПР+СУММПРОИЗВ для извлечения чисел
- Специальный инструмент для ВПР
Итак, у нас есть данные о продажах. Необходимо по коду заказа вывести наименование товара и его стоимость. При этом колонка с кодом находится в середине таблицы, а наименования – левее него. Такой случай как раз и принято называть «левый (или обратный) ВПР».
Получить стоимость по нужному заказу не представляет труда, и с такой задачей ВПР прекрасно справляется. А вот для того, чтобы вывести в С6 название товара, стандартных возможностей этой функции будет недостаточно. Ведь она «работает только направо».
1. Дополнительный столбец.
Создадим дополнительный столбец с названиями товаров справа от ключевого. Для этого в ячейке H10 запишем формулу
=B10
Скопируем ее вниз и получим новый список, расположенный справа от диапазона поиска.Точнее говоря, это точная копия.
Формула в С6 тогда будет такова:
=ВПР(C2;C9:H25;6;0)
6 — это порядковый номер новой колонки с названиями напитков, который мы как бы переместили (продублировали) слева на правую сторону. Отсчет мы начинаем с С.
Если это слишком портит вид вашей таблицы и попадает в распечатку, можете ее скрыть. Для этого щелкните на букве H правой кнопкой мыши и из выпадающего меню выберите «Скрыть». На расчеты это никак не повлияет.
2. Виртуальная перестановка данных.
В отличие от предыдущего способа, где мы реально меняли расположение данных, здесь мы сделаем это виртуально.
Для этого нам понадобится функция ВЫБОР (CHOOSE в английском варианте). Она позволяет выбрать данные из какого-то массива по их индексу. Проще говоря, по порядковому номеру колонки.
Для поиска напитка используем формулу:
=ВПР(C2;ВЫБОР({1;2};C10:C25;B10:B25);2;0)
Вся хитрость состоит в указании массива данных для поиска. Мы выбираем два диапазона: С10:С25 – с кодами (первый), и В10:В25 – с напитками (второй). И из них при помощи ВЫБОР создаем новую виртуальную таблицу, с которой и будем работать.
Конструкция в виде массива {1;2} показывает, что мы берем сначала первый указанный диапазон C10:C25, потом – второй B10:B25, и формируем из них виртуальную таблицу с двумя колонками. В ней мы и производим поиск по первой и извлекаем значения – из второй. И при этом не важно, где они реально расположены на листе Excel. ВПР работает с виртуальным массивом, который мы сами создали.
3. Левый ВПР при помощи ИНДЕКС + ПОИСКПОЗ.
И снова – об альтернативах функции ВПР, которые часто оказываются ничем не хуже, а даже и лучше.
Напомним, что функция ИНДЕКС (INDEX) позволяет извлечь элемент из перечня по его порядковому номеру. И этот номер нам поможет определить ПОИСКПОЗ (или MATCH).
Формула «обратного ВПР» выглядит теперь так:
=ИНДЕКС(B10:B25;ПОИСКПОЗ(C2;C10:C25;0))
Давайте подробно разберем последовательность вычислений. В начале используем ПОИСКПОЗ(что_ищем; где_ищем; тип_поиска). Тип поиска – 0, то есть точное совпадение. В диапазоне C10:C25 мы ищем нужное нам значение, указанное в С2, и получаем его порядковый номер. В нашем случае это 2.
На этой же позиции, то есть в этой же второй строке нашего диапазона, находится и нужный нам напиток. При помощи ИНДЕКС из последовательности В10:В25 извлекаем второй по счету элемент. Задача выполнена.
4. Извлекаем из столбца слева числовые значения.
Этот «обратный ВПР» подходит только для чисел. Предположим, нам нужно подсчитать количество литров в определенном заказе. Но объем также находится левее, чем расположен его код.
Используем ВПР в комбинации с СУММПРОИЗВ (SUMPRODUCT).
Наша итоговая формула:
=СУММПРОИЗВ((ВПР(C2;D10:D25;1;0)=D10:D25)*C10:C25)
Давайте пошагово разберем все действия.
Сразу вспомним важную особенность СУММПРОИЗВ: она работает с предложенным ей диапазоном как с массивом, то есть последовательно перебирает все его элементы от начала до конца.
Вначале ВПР(C2;D10:D25;1;0) позволяет нам найти в перечне заказов интересующий нас и вывести его же (порядковый номер колонки 1, то есть, что ищем, то и возвращаем). Если будет получена ошибка, то она автоматически в нашем случае функцией СУММПРОИЗВ преобразуется в ноль. Сравниваем извлеченное с соответствующим значением из перечня кодов при помощи равенства: ВПР(C2;D10:D25;1;0)=D10:D25
В случае соответствия получаем ИСТИНА (что соответствует 1), в противном случае – ЛОЖЬ (или 0).
В итоге получаем виртуальный набор цифр, состоящий из 0 и 1. Поскольку коды у нас не повторяются, единица будет в этом списке всего одна. Перемножаем этот набор нулей и единиц с соответствующими величинами объема C10:C25. Все произведения дадут нам 0, кроме одного – соответствующего нашему, где была 1. Общая сумма этих произведений и даст нам искомый объем по нужной позиции.
И еще один вариант левого ВПР с числовыми значениями. На этот раз используем функцию СУММЕСЛИ (SUMIF).
Она позволяет находить сумму в зависимости от выполнения определенных условий. Смотрите пример.
Формула расчета:
=СУММЕСЛИ(D10:D25;C2;C10:C25)
Синтаксис здесь такой:
СУММЕСЛИ(диапазон_просмотра; критерий; что_суммируем).
Находим сумму чисел из диапазона C10:C25, соответствующих тем ячейкам из D10:D25, которые равны С2.
Важное ограничение – коды не должны дублироваться, иначе получим сумму сразу нескольких позиций!
Специальные инструменты для поиска и подстановки в Excel.
Если написание формул представляет для вас некоторую сложность, вы можете попробовать надстройку Мастер ВПР, которая является составной частью Ultimate Suite for Excel.
Как работает Мастер ВПР, в том числе как с его помощью можно сделать «левый» ВПР, вы можете прочитать здесь в нашем блоге.
А сейчас мы остановимся более подробно еще на одном интересном инструменте.
Объединить две таблицы — альтернатива ВПР в Excel без формул.
Если ваши файлы Excel чрезвычайно велики и сложны, а выполнить расчеты нужно быстро, и вы ищете кого-то, кто может протянуть вам руку помощи, то попробуйте Мастер объединения таблиц .
Этот инструмент является простой и наглядной альтернативой функции ВПР в Excel. Работает он следующим образом:
- Выберите свою основную таблицу. Предположим, это таблица с данными о продажах.
- Выберите таблицу поиска. Это может быть список менеджеров, закрепленных за отдельными покупателями.
- Выберите один или несколько общих столбцов в качестве уникальных идентификаторов. В нашем случае это будет наименование заказчика.
- Укажите, какие столбцы нужно обновить. В данном случае – ничего. Просто пропускаем этот шаг.
- При желании выберите столбцы, которые нужно добавить. Добавим в основную таблицу колонку с фамилиями менеджеров, которые работают с конкретным заказчиком. При этом совершенно не важно, где находятся эти столбцы для добавления — слева или справа от столбца поиска.
- На следующем шаге вы можете указать дополнительные опции объединения – выделение цветом добавленного, добавление несовпадающих значений в конец основной таблицы, вставка столбца статуса и др. Но в нашем случае в этом нет необходимости. Ведь мы просто хотим найти и добавить в основную таблицу фамилии менеджеров. Поэтому просто нажимаем Finish. Теперь дайте Мастеру объединения таблиц несколько секунд для обработки… и наслаждайтесь результатами
Согласитесь, это именно то, что делает функция ВПР — выбирает из таблицы поиска значения, соответствующие данным из основной таблицы. Но в данном случае мы прекрасно обошлись без формул.
Более подробную информацию об инструменте Merge Tables вы можете посмотреть здесь.
Дополнительные материалы о функции ВПР:
Наверное самая популярная функция из продвинутых в Excel — это ВПР. Многие знают и часто пользуются. Но при этом у нее есть два значительных недостатка, например, как сделать «Левый ВПР «. Я использую сам ВПР, только если нужно сделать что-то быстро. В файлах для «регулярного» использования я делаю конструкцию ИНДЕКС и ПОИСКПОЗ. Чем она лучше?
- При добавлении столбца в таблицу данных не нужно менять номер столбца в самой формуле (как в ВПР). Столбец подвинется автоматом
- Можно сделать ВПР наоборот, т.е. сделать выбор из таблицы справа-налево. В ВПР первый столбец всегда должен быть для поиска.
Как все это сделать, читаем ниже
Вводная информация
Использовать буду пример из этой статьи. Для того, чтобы лучше понять применение этой конструкции в сравнение с ВПР:
=ИНДЕКС($G:$G;ПОИСКПОЗ($J:$J;$H:$H;0);1)
Как просто заполнить, если видишь формулу первый раз?
Сперва, определитесь, где таблица изначальная, а где для получения данных! Поэтапно, что заполнять.
- Вставляем формулу в нужную область таблицы
- На место $G:$G поставьте те ячейки, в которых должно быть найдено значение, и соответственно, должно появиться в результате. Мы ищем фамилию, значит ищите столбец с фамилиями в начальной таблице.
- Замените $J:$J на в зависимости, от которых должны вернуться значения в ячейку. Нам нужны Фамилии в зависимости от ТС — вставляем те ТС, около которых должны появиться значения.
- Вместо $H:$H заполняем столбец, в котором нужно найти соответствующее значение. Т.е. мы ищем Фамилию по ТС, значит вставляем столбец с ТС в изначальной таблице.
Если вам интересно, для чего в формуле знаки $ читайте здесь
ИНДЕКС и ПОИСКПОЗ. Что это за функции?
ИНДЕКС и ПОИСКПОЗ — очень сильные функции, которые в комбинации с другими дают отличный результат.
ИНДЕКС
=ИНДЕКС(массив; номер_строки; номер_столбца)
Возвращает значение на пересечении указанной строки и столбца определенного диапазона. Т.е. изначально она работает с двумерными массивами.
Выбрав массив данных J1:K4 и задав номер строки и столбца равным двум, мы получили соответствующее значение.
Посмотрев на изначальную формулу
=ИНДЕКС($G:$G;ПОИСКПОЗ($J:$J;$H:$H;0);1)
Мы увидим, что вместо второго аргумента (номер строки) у нас формула ПОИСКПОЗ. Что тут она делает?
ПОИСКПОЗ — это поиск по значению. Функция ищет заданное значение в строке или в столбце и возвращает ее порядковый номер (от начала диапазона). Т.е. во втором аргументе функции ИНДЕКС мы находим нужный нам номер ТС, получаем его номер, например 2.
И уже в одномерном массиве $G:$G находим ячейку с номером строки = 2. Так это будет работать для каждой ячейки в столбце J.
Вот так вроде бы не очень сложная конструкция, но, как я писал выше, очень эффективная. Т.к. вам не придется постоянно менять номер искомого значения, как в ВПР и можно делать поиск как направо, так и налево
Пишите комментарии, если вопросы остались.
Пример, как всегда!
КУРС
EXCEL ACADEMY
Научитесь использовать все прикладные инструменты из функционала MS Excel.
В этой статье мы поговорим, наверное, о самой популярной и удобной функции Excel – ВПР().
Если Вы хоть раз пользовались Excel, то 100% создавали формулу с этой функцией. Сегодня мы еще раз напомним, как эффективно использовать функцию ВПР, и покажем необычные ситуации, где она тоже может пригодиться. О других полезных функциях Excel мы рассказываем в нашем бесплатном гайде, который можно скачать по ссылке.
1. Автономный ВПР
Основная задача функции ВПР – поиск элементов в таблице или диапазоне по строкам. Также есть «симметричная» функция ГПР, которая позволяет искать элементы по столбцам. Все довольно просто: например, можно найти имя клиента по его id или стоимость продукта по его артикулу и так далее.
Тем, кто знаком с SQL, функция ВПР напоминает запрос SELECT c оператором WHERE, где указывается условие поиска.
Самое простое использование функции ВПР:
= ВПР (искомое значение; таблица для поиска; номер столбца, содержащего возвращаемое значение; интервальный просмотр (1/истина или 0/ложь)).
Три первых аргумента являются обязательными. Главное требование к организации данных – искомое значение должно находится в первом столбце таблицы для поиска. (Если речь идет о ГПР, то в первой строке диапазона).
Интервальный просмотр – это необязательный аргумент, который может принимать значения 0 или 1. Единичка означает, что функция будет искать приближенное совпадение, а ноль – точное. Если нет других указаний, то по умолчанию применяется приближенный поиск.
На рассмотренном простом примере мы видим, как работает функция: в выбранном диапазоне в первом столбце она ищет значение, совпадающее со значением из ячейки F2 (ID = 3). Затем, выбирает значение из второго столбца найденной строки. В результате мы получаем цвет, соответствующий заданному ID.
Это все, что касается простого использования ВПР. Давайте посмотрим, в каких еще ситуациях можно использовать данную функцию.
2. Как найти несколько совпадений, используя ВПР
ВПР – крайне удобная функция. Но есть одно «но»: в случае, если в выбранном диапазоне присутствуют несколько совпадений, функция возвращает данные только из первого сопоставленного экземпляра.
И что же делать, если нужно найти значения первого, второго или n-ого соответствия?
Для этой задачи нужно использовать сочетание функций СЧЕТЕСЛИ (COUNTIF) и ВПР (VLOOKUP).
Предположим, у нас есть таблица с именами покупателей, внесенной суммой в кассу и сдачей. Нам необходимо найти все покупки, совершенные одним человеком. Если мы воспользуемся функцией ВПР, то она нам выдаст только первое совпадение. Нужно сделать так, чтобы первый столбец таблицы имел уникальные значения. Создадим его.
Для этого воспользуемся формулой:
А3 = B3&СЧЁТЕСЛИ($B$3:B3;B3)
Благодаря этой формуле мы создали вспомогательный столбец #Имя, который содержит имя клиента и число, которое показывает, сколько раз до этого в таблице появлялось имя клиента – это новое уникальное значение поиска.
Теперь воспользуемся созданным столбцом, чтобы найти все данные о сумме покупок для каждого клиента.
1. Воспользуемся расширенным фильтром, чтобы не переписывать вручную уникальные имена клиентов.
2. Создаем формулу для поиска значений в таблице:
В качестве условия поиска указываем склеенное значение двух ячеек (Имя и номер покупки), чтобы получить значение, как в первом столбце таблицы (#Имя).
Функция ЕСНД необходима для того, чтобы у покупателей, совершивших немного покупок в ячейках стоял 0, а не сообщение об ошибке (#Н/Д).
Замечание! Не забывайте закреплять ячейки и диапазон. Иначе при растягивании формулы все значения съедут и дадут неправильные результаты. К сожалению, не всегда это можно быстро заметить.
Теперь, протянув формулу на все ячейки, мы получили таблицу с данными о суммах покупки каждого клиента и количестве покупок. Теперь можно их с легкостью просуммировать, найти среднее и так далее.
Для решения данной задачи также можно было воспользоваться функциями ИНДЕКС (INDEX) и ПОИСКПОЗ (MATCH):
= ИНДЕКС($A$3:$E$12; ПОИСКПОЗ($G$3&H2;$A$3:$A$12;0);5)
3. Как смотреть налево с VLOOKUP
VLOOKUP – одна из самых мощных функций в Excel. Тем не менее, он имеет несколько недостатков. Одним из них является то, что эта функция возвращает значения, находящиеся справа от столбца поиска и не ищет слева. Но для решения этой проблемы есть обходной путь: комбинация функций VLOOKUP и ВЫБОР (CHOOSE).
Обратимся к таблице из первого примера. Допустим, мы знаем название цвета (Синий), но нам нужно найти его код.
Хитрость здесь состоит в том, чтобы виртуально изменить порядок столбцов в таблице, используя функцию CHOOSE. Многие думают, что эта функция работает только с массивами и одиночными индексами. Но это не так. В нашем случае в качестве диапазона для поиска мы укажем следующее выражение: ВЫБОР({1;2};C3:C7;B3:B7) или ВЫБОР({2;1};B3:B7;C3:C7).
Это выражение выдаст ссылку на два объединенных столбца в порядке Colour; ID. А это именно то, что нам нужно.
В результате мы получим следующую формулу:
Обратите внимание, что в функции ВПР в качестве номера столбца, из которого берется результат мы указываем 2, несмотря на то, в таблице, которая у нас перед глазами, столбец ID является первым. Это все потому, что функция ВЫБОР меняет местами столбцы.
В итоге получаем нужный нам результат:
Также для решения этой задачи можно использовать комбинация функций ИНДЕКС и ПОИСКПОЗ:
=ИНДЕКС(B3:B7; ПОИСКПОЗ(F3;C3:C7;0))
4. Как сделать двусторонний поиск с ВПР
Когда нужно найти значение из таблицы по строке и столбцу, стандартный ВПР сталкивается с проблемой. Однако можно использовать комбинацию функций ВПР и ПОИСКПОЗ, чтобы обойти это узкое место.
Как вы знаете, ВПР возвращает значение, просматривая один столбец, потому что третий аргумент – номер столбца – является статическим значением.
Но с помощью функции ПОИСКПОЗ можно сделать номер столбца также изменяемым параметром.
Например, у нас есть таблица с данными о количествах продаж товара каждого производителя за первые полгода.
Предположим, Вам нужно найти какое количество товара от Производителя5 было проданного в апреле.
В этом примере мы используем формулу для динамического поиска столбцов и необходимой строки с помощью ВПР.
Синтаксис формулы:
=ВПР (искомое значение1; таблица; ПОИСКПОЗ (искомое значение2, столбец, 0), 0)
Функция ПОИСКПОЗ сопоставляет требуемое значение из указанного диапазона и возвращает ссылку на нужный столбец.
В нашем случае формула примет вид:
Эта комбинация делает формулу ВПР более устойчивой. Эта функция может изменяться, когда столбцы вставляются или удаляются из таблицы, но все же сочетание ВПР + ПОИСКПОЗ обеспечит плавную работу даже при внесении изменений в столбцы.
В результате получим:
В качестве альтернативы можно использовать функции ИНДЕКС и ПОИСКПОЗ:
=ИНДЕКС(B3:H7; ПОИСКПОЗ(K2;B3:B7;0); ПОИСКПОЗ(K3;B2:H2;0))
5. Как найти частичное совпадение в Excel с VLOOKUP
Иногда мы сталкиваемся с ситуациями, когда нужно найти информацию из таблицы на основе частичного совпадения. Не всегда в данном случае изменение параметра (интервальный просмотр) выдает правильный результат.
В таком случае можно сделать это с помощью подстановочных знаков в VLOOKUP.
Важное примечание: при частичном сопоставлении (4-тый аргумент – интервальный просмотр) всегда должен быть равен 0, чтобы совпадение с подстановочными знаками работало должным образом.
Рассмотрим пример:
Мы хотим узнать подробности о сотруднике, чье имя начинается с «Ил».
Для решения этой задачи мы воспользуемся классической функцией ВПР, но преобразуем первый аргумент – искомое значение. В этом случае мы предоставляем значение поиска как part_name&”*”. Part_name – это тот кусочек, по которому нужно найти соответствие, а «*» – подстановочный знак. Машина переведет выражение part_name&”*” как «начинается с part_name». В нашем случае part_name = Ил.
В SQL такую задачу можно решить с помощью оператора LIKE “Ил%”
Вот, какая формула у нас получилась:
Для того, чтобы достать всю информацию о сотруднике, нам пришлось написать три формулы, в которых мы изменили третий параметр – номер столбца.
Как видите, мы получили все нужные нам значения, соответствующие нашему частичному поисковому значению, без указания полного имени.
Вы также можете найти значение, которое заканчивается определенным символом или имеет их в середине.
Если присоединить подстановочный знак (“*”), то функция будет искать ячейку со значением, заканчивающимся на part_name.
Если Вам нужно совпадение «содержит part_name», то нужно использовать два подстановочных знака, например, ”*” & part_name & ”*”.
6. Как использовать ВПР с несколькими критериями
VLOOKUP – мощная функция, без сомнения, но в случае поиска на основе двух или более критериев ВПР не справится.
Однако, если у Вас есть доступ и права на изменение данных, то можно воспользоваться вспомогательным столбцом, как в примере 2. Мы объединим несколько полей с помощью амперсанда и используем их в функции. Проще говоря, мы добавим новый столбец, в котором объединятся все критерии в один родительский критерий. Теперь мы сможем применить к данным функцию ВПР.
Давайте рассмотрим пример:
Несмотря на то, что все проектировщики баз данных как Отче наш должны знать три основные нормальные формы баз данных, частенько мы сталкиваемся с таблицами, как представлена в примере.
Она не подчиняется никаким правилам, поэтому с ней трудно проводить различные манипуляции.
Попробуем привести таблицу в более понятный вид.
Предположим, нам нужно найти количество баллов ученицы Ольги по физике. Сначала добавим новый столбец, склеив первый и второй:
Чтобы сделать Вспомогательный столбец более читабельным, мы добавили пробел после имени, используя “ ”.
Теперь запишем функцию ВПР. Так как мы должны искать два условия имя и предмет, то первый аргумент нужно также записать так, как во вспомогательном столбце. Похожую процедуру мы делали во втором примере, когда склеивали имя покупателя с порядковым номером покупки.
Посмотрим, что у нас получилось:
Важно, чтобы функция была настроена на точное совпадение.
Новости
Для подписчиков Microsoft 365, начиная с 2020 июля, доступна новая функция ПРОСМОТРХ (XLOOKUP), которая призвана заменить сразу функции ВПР и ГПР. XLOOKUP отличается от функции ВПР тем, что использует отдельные массивы уточняющих запросов и возвращаемых значений там, где функция ВПР использует один массив таблиц, за которым следует порядковый номер столбца.
Например, старая запись ВПР (В3; B3:D7; 3; ложь) будет соответствовать новой: ПРОСМОТРХ (В3; B2:B7; D2:D7) для следующей таблицы:
Также функция ПРОСМОТРХ даст возможность выводить по значению для искомого значения всю строку. Так, например, для таблицы ниже по ID можно будет вывести и имя сотрудника, и его должность одной формулой.
Заключение
Вот мы и вспомнили 6 случаев, в которых может пригодиться функция ВПР. Эти примеры достаточно простые, но очень важны для понимания работы функции. Если Вы часто используете Эксель в работе и хотите создавать сложные, автоматизированные отчеты, предлагаем Вам пройти обучение в нашей Excel Академии, где Вы найдете еще больше интересных задач и получите дополнительные навыки по работе с функциями Excel.
КУРС
EXCEL ACADEMY FULL PACK
Научитесь использовать все прикладные инструменты из функционала MS Excel.
Автор: Андрон Алексанян, эксперт SF Education
-
- Как пользоваться ВПР в Excel
- Особенности работы функции ВПР
- Как использовать формулу ВПР в Excel для сравнения двух таблиц
- Почему не работает ВПР в Excel
- Когда Интервальный просмотр может быть = 1
Функция ВПР в Excel (в английской версии VLOOKUP) используется для подтягивания значений в таблицу из другой таблицы при условии совпадения критерия поиска. Расшифровывается ВПР как “вертикальный поиск результата”. В этой статье разберемся, как сделать ВПР в Excel, ниже будет понятная инструкция.
ВПР ищет первое совпадение по критерию в левом столбца указанной таблицы и подтягивает значение из указанного столбца этой таблицы.
Как сделать ВПР в Excel понятная инструкция
Чтобы понять, как пользоваться функцией ВПР в Excel, разберем ее синтаксис:
=ВПР(искомое значение; таблица; номер столбца; [интервальный просмотр])
Искомое значение — значение или ссылка на ячейку, по которой будем искать значения в другой таблице. Это критерий поиска.
Таблица — ссылка на таблицу, в которой будет искать.
Номер столбца — порядковый номер столбца относительно самого левого столбца из выделенного диапазона поиска.
Интервальный просмотр — указывается 0 (точный поиск) или 1 (приблизительный поиск)
Рассмотрим использование ВПР на примере:
Есть таблица с количеством гостей в отеле, необходимо понять, есть ли зависимость количества проживающих от того, насколько тепло в этом городе. Для этого нужно подтянуть значения температуры воздуха из таблицы справочника.
В качестве критерия будет использоваться название месяца.
Добавим в первую таблицу столбец Температура и напишем следующую формулу:
В примере формула ВПР ищет значение Январь из первой таблице в крайнем левом столбце второй таблицы. И подтягивает совпадающее значение из указанного столбца (в данном случае, из второго столбца).
Аргумент Интервальный просмотр задаем 0, чтобы функция искала точное совпадение.
Запомним, что в абсолютном большинстве случаем Интервальный просмотр ставим = 0.
Кстати, если не указать интервальный просмотр совсем, то формула не выдаст ошибку, т.к. этот аргумент необязательный. Но результат будет неожиданным, поскольку в этом случае ВПР считает не указанный Интервальный просмотр равным 1 (а это приблизительный поиск).
Не забываем добавить абсолютные ссылки (значки доллара $) к диапазону, иначе диапазон “съедет” при копировании формулы.
Итак, мы получили в нашу таблицу значение из таблицы-справочника — подтянули по критерию названия месяца. Осталось только протянуть или скопировать формулу во все ячейки этого столбца.
Особенности работы функции ВПР
Несмотря на простоту использования формулы ВПР в Excel, у нее есть ряд особенностей, которые нужно учитывать в работе.
-
Функция ВПР ищет совпадение строго в крайнем левом столбце выделенной таблицы.
Ключевые слова здесь — “выделенной” таблицы. Чтобы понять, что это значит, добавим к таблице-справочнику еще один столбец слева (Год).
Чтобы сделать такой же ВПР, как в предыдущем примере (по критерию Месяц), нужно выделять столбцы H:I, хотя таблица содержит столбцы G:I. Иначе Excel будет искать в крайнем левом столбце, в котором содержится не месяц, а год.
Вывод: аргумент Таблица в данном случае — это выделенный диапазон ячеек, а не то, что мы видим “глазами” и считаем таблицей.
-
ВПР в Excel ищет первое совпадение с указанным критерием.
Для примера добавим еще одну строку в таблицу-справочник.
Теперь в таблице содержится два значения температуры для месяца Январь.
Но при этом, даже если мы изменим интервал таблицы для поиска, затянув в нее новую строку Январь 2023, то значение, которое подтянула ВПР, не изменится.
ВПР взяло первое совпадение.
-
В качестве критерия поиска можно использовать не только ссылку на ячейку (как в предыдущих примерах), но и ввести значение напрямую в формулу. Это не очень удобно, но возможно.
Текстовые значения необходимо вводить в кавычках, числовые — просто число.
Пример функции ВПР с текстовым критерием поиска
Пример функции ВПР с числовым критерием поиска
Как использовать формулу ВПР в Excel для сравнения двух таблиц
Функцию ВПР часто используют для сравнения двух таблиц.
-
Сверка двух таблиц по пропускам значений
Для примера удалим из первой таблицы две строки. Наша задача — понять, каких месяцев не хватает в первой таблице.
Для этого во вторую таблицу при помощи функции ВПР подтянем значения из первой таблицы Excel.
Значения можно подтягивать любые, например, количество проживающих. В данном случае сами значения не важны, важны пропуски.
Значения по месяцам Июнь и Октябрь подтянулись с ошибкой #Н/Д (нет данных) — это значит, что в исходной таблице эти месяцы пропущены.
-
Сверка числовых значений
Предположим, у нас есть статистика по количеству проживающих в другом отеле сети по месяцам и годам. Сравним с первым отелем. Для этого добавим новый столбец, и в нем сделаем ВПР по критерию месяца.
А теперь обратите внимание, что месяц Январь повторяется в обоих таблицах (разный год). Но для второго значения Январь в первую таблицу подтянулись цифры из первого значения Январь второй таблицы.
Это произошло потому, что ВПР в Excel ищет первое совпадение.
Выходы из ситуации:
- убедиться, что значения в столбце поиски во второй таблице уникальные
- использовать функцию СУММЕСЛИ или СУММЕСЛИМН
- использовать ВПР по нескольким критериям
Почему не работает ВПР в Excel
То, что ВПР не работает, можно понять по появлению ошибки #Н/Д.
Не работает ВПР — значит, что функция не находит значение. Причины:
- Ошибка в написании критерия. Часто в текст закрадываются лишние пробелы или латинские буквы вместо кириллицы, и тогда появится ошибка.
В данном примере в конце слова Январь стоит невидимый пробел. А поскольку функция ВПР в Excel ищет точное совпадение Январь + пробел в конце и просто Январь — это два разных значения.
- Съехал или “не дотянут” диапазон таблицы для поиска.
В данном случае значение Январь не попало в диапазон поиска, поэтому появилась ошибка #Н/Д.
Также часто при появлении новых строк в таблице-источнике забывают исправлять диапазон в формуле ВПР (он как бы не дотягивается до конца таблицы), тогда тоже будет ошибка.
Когда Интервальный просмотр может быть = 1
Аргумент Интервальный просмотр в ВПР может принимать только два значения — 0 или 1 (если его не указать, то по умолчанию считается 1).
Во всех предыдущих примерах мы использовали интервальный просмотр = 0. Это подходит для большинства ситуаций на практике.
Но иногда необходимо использовать интервальный просмотр = 1. Как правило, он используется для числовых критериев, чтобы подтянуть значение из определенного диапазона критериев.
Более подробно об этом — в статье
В этой статье мы узнали, как сделать ВПР в Excel, надеюсь, это была понятная инструкция.
Сообщество Excel Analytics | обучение Excel
Канал на Яндекс.Дзен
Вам может быть интересно: