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 вы можете посмотреть здесь.
Дополнительные материалы о функции ВПР:
Левый ВПР
Необходимое предисловие
Если вы раньше не работали с функцией ВПР (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)
Наверное самая популярная функция из продвинутых в 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 о данном элементе, который находится справа. Мы можем знать, что функция ВПР не может смотреть влево, поэтому для выполнения задачи нам придется воспользоваться помощью ВЫБЕРИТЕ функции.
Как выполнить поиск слева с помощью ВПР?
Чтобы заполнить информация о товаре 30001 который указан в крайнем правом столбце данных, как показано на скриншоте выше, вы можете использовать функцию ВЫБОР, чтобы изменить порядок таблицы — «переместите» крайний правый столбец со значением поиска в крайнее левое положение. Затем вы можете использовать обычную формулу ВПР для получения нужного значения.
Общий синтаксис
=VLOOKUP(lookup_value,CHOOSE({1,2,3,…,N},rangeN,range1,range2,range3,…),column_num,FALSE)
- искомое_значение: Значение VLOOKUP используется для определения положения соответствующей информации. Здесь относится к данному идентификатору продукта.
- Диапазон1, диапазон2, диапазон3, диапазонN: Столбцы ячеек, в которых искомое_значение и другая информация.
- номер_столбца: Число, указывающее, из какого столбца вы хотите получить данные. Обратите внимание, что, поскольку крайний правый столбец теперь перемещен в крайнее правое положение из-за функции ВЫБОР, чтобы представить 1-я колонна (цветной столбец) введите column_num как 2; представить 2-я колонна (столбец размера), вы должны ввести column_num как 3……
- range_lookup ЛОЖЬ: Заставляет ВПР находить только точное совпадение.
Чтобы заполнить информация о товаре 30001, скопируйте или введите приведенные ниже формулы в соответствующие ячейки и нажмите Enter чтобы получить результат:
Цвет (ячейка H6)
= ВПР (4 гонконгских доллара,ВЫБИРАТЬ(1,2,3,4 {},$E$5:$E$9,$B$5:$B$9,$C$5:$C$9,$D$5:$D$9),2,ЛОЖНЫЙ)
Размер (ячейка H7)
= ВПР (4 гонконгских доллара,ВЫБИРАТЬ(1,2,3,4 {},$E$5:$E$9,$B$5:$B$9,$C$5:$C$9,$D$5:$D$9),3,ЛОЖНЫЙ)
Цена (ячейка H8)
= ВПР (4 гонконгских доллара,ВЫБИРАТЬ(1,2,3,4 {},$E$5:$E$9,$B$5:$B$9,$C$5:$C$9,$D$5:$D$9),4,ЛОЖНЫЙ)
Примечание. Вместо ввода идентификатора продукта 30001 в формулах мы использовали ссылку на ячейку 4 гонконгских доллара (мы добавляем знаки доллара к ссылке, чтобы сделать ее абсолютной), поскольку мы хотим, чтобы формулы были динамическими. Таким образом, мы можем легко получить информацию о других продуктах, изменив только идентификатор продукта в ячейке. H4.
Пояснение формулы
Здесь мы используем формулу ниже в качестве примера:
=VLOOKUP($H$4,CHOOSE({1,2,3,4},$E$5:$E$9,$B$5:$B$9,$C$5:$C$9,$D$5:$D$9),2,FALSE)
- CHOOSE({1,2,3,4},$E$5:$E$9,$B$5:$B$9,$C$5:$C$9,$D$5:$D$9): Функция CHOOSE переупорядочивает столбцы, перемещая столбец E в первую или, скажем так, крайнюю левую позицию в массиве следующим образом:
{30001,»White»,»Large»,20;30002,»Black»,»Large»,21;30003,»Blue»,»Medium»,19;30004,»Red»,»Medium»,18;30005,»Yellow»,»Small»,20}.
В табличной форме массив будет таким: - ВПР (4 гонконгских доллара,CHOOSE({1,2,3,4},$E$5:$E$9,$B$5:$B$9,$C$5:$C$9,$D$5:$D$9),2, ЛОЖЬ) = ВПР (4 гонконгских доллара,{30001,»White»,»Large»,20;30002,»Black»,»Large»,21;30003,»Blue»,»Medium»,19;30004,»Red»,»Medium»,18;30005,»Yellow»,»Small»,20},2,ЛОЖНЫЙ): Работы С Нами 30001, значение поиска в ячейке H4, функция ВПР найдет строку с ее точным соответствием в новой таблице, созданной командой ВЫБОР, а затем вернет результат в 2ый столбец, который Белый.
Связанные функции
Функция ВПР в Excel
Функция ВПР в Excel выполняет поиск значения по первому столбцу таблицы и возвращает соответствующее значение из определенного столбца в той же строке.
Excel функция ВЫБРАТЬ
Функция ВЫБОР возвращает значение из списка аргументов значений на основе заданного номера индекса. Например, ВЫБОР (3, «Яблоко», «Персик», «Оранжевый») возвращает оранжевый, номер индекса — 3, а оранжевый — третье значение после номера индекса в функции.
Связанные формулы
Поиск слева с помощью ИНДЕКС и ПОИСКПОЗ
Чтобы найти информацию, указанную в левых столбцах электронной таблицы Excel о данном элементе, который находится справа, вы можете использовать функции ИНДЕКС и ПОИСКПОЗ. Комбинация этих двух функций дает преимущество поиска значений в любом столбце по сравнению с другой мощной функцией поиска Excel, ВПР.
Лучшие инструменты для работы в офисе
Kutools for Excel — Помогает вам выделиться из толпы
Хотите быстро и качественно выполнять свою повседневную работу? Kutools for Excel предлагает 300 мощных расширенных функций (объединение книг, суммирование по цвету, разделение содержимого ячеек, преобразование даты и т. д.) и экономит для вас 80 % времени.
- Разработан для 1500 рабочих сценариев, помогает решить 80% проблем с Excel.
- Уменьшите количество нажатий на клавиатуру и мышь каждый день, избавьтесь от усталости глаз и рук.
- Станьте экспертом по Excel за 3 минуты. Больше не нужно запоминать какие-либо болезненные формулы и коды VBA.
- 30-дневная неограниченная бесплатная пробная версия. 60-дневная гарантия возврата денег. Бесплатное обновление и поддержка 2 года.
Вкладка Office — включение чтения и редактирования с вкладками в Microsoft Office (включая Excel)
- Одна секунда для переключения между десятками открытых документов!
- Уменьшите количество щелчков мышью на сотни каждый день, попрощайтесь с рукой мыши.
- Повышает вашу продуктивность на 50% при просмотре и редактировании нескольких документов.
- Добавляет эффективные вкладки в Office (включая Excel), точно так же, как Chrome, Firefox и новый Internet Explorer.
КУРС
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»). Для ее решение нам будут нужны функции СМЕЩ и ПОИСКПОЗ. Разберем их синтаксис:
СМЕЩ(ссылка;смещение по строкам;смещение по столбцам)
Ссылка — ячейка, от которой рассчитывается смещение по строкам и столбцам.
Смещение по строкам — указываем число, на какое количество строк надо сдвинуться. Положительное число — количество строк вниз, отрицательное число — количество строк вверх.
Смещение по столбцам — указываем число, на какое количество столбцов надо сдвинуться. Положительное число — количество столбцов вправо, отрицательное число — количество столбцов влево.
К примеру для таблицы в скриншоте сверху функция СМЕЩ(C3;-1;1) вернет значение Петрович. Почему именно так? В качестве стартовой ячейки мы указали ячейку С3 (в ней содержится имя Иван). Относительно этой ячейки мы сдвигаемся на одну строку вверх (второй параметр -1) и на один столбец вправо (третий параметр 1).
ПОИСКПОЗ(искомое значение; просматриваемый массив; тип сопоставления)
Искомое значение — это то значение, что мы ищем в таблице
Просматриваемый массив — таблица, где мы ищем искомое значение
Тип сопоставления — как будет искать Excel это значение. Используйте значение 0 для поиска точного результата.
К примеру для таблицы в скринщоте выше функция ПОИСКПОЗ(«Петров»;B2:B6;0) вернет значение 3. Мы ищем фамилию Петров в перечне фамилий. Она там третья по списку, поэтому формула вернула число 3.
Теперь давайте объединим наши знания и решим задачу по альтернативному ВПР в Экселе.
Итак, для нашего примера формула будет следующая:
=СМЕЩ(БД!$B$1;ПОИСКПОЗ(B2;БД!$B$1:$B$6;0)-1;-1)
Сначала мы используем формулу СМЕЩ, так как мы будет считать смещение относительно конкретной ячейки. Первый параметр — ссылка на заголовок столбца «Фамилия» на листе с базой данных, далее нам нужно узнать на сколько строк нам надо сдвинуться, для этого мы используем функцию ПОИСКПОЗ. В ней в качестве первого параметра указываем фамилию, которую ищем, вторым параметром наш столбец с фамилиями в листе с базой данных. Из полученного значения мы вычитаем 1, что бы убрать эффект заголовка столбца. Последний параметр — смещение на один столбец влево, т.е. -1.
Таким образом, используя нехитрую комбинацию из двух функций мы получили универсальный аналог ВПР, который может возвращать значения, как со столбцов справа, так и слева.
Надеюсь, статья была для вас полезной. Спасибо за внимание.
ВПР подстановка значений из левого столбца |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
#Руководства
- 6 апр 2022
-
0
Как перенести данные из одной таблицы в другую, если строки идут не по порядку? Разбираемся на примере каталога авто — переносим цены.
Иллюстрация: Meery Mary для Skillbox Media
Рассказывает просто о сложных вещах из мира бизнеса и управления. До редактуры — пять лет в банке и три — в оценке имущества. Разбирается в Excel, финансах и корпоративной жизни.
ВПР (Vlookup, или вертикальный просмотр) — поисковая функция в Excel. Она находит значения в одной таблице и переносит их в другую. Функция ВПР нужна, чтобы работать с большими объёмами данных — не нужно самостоятельно сопоставлять и переносить сотни наименований, функция делает это автоматически.
Разберёмся, зачем нужна функция и как её использовать. В конце материала расскажем, что делать, если нужен поиск данных сразу по двум параметрам.
Представьте, что вы продаёте автомобили. У вас есть каталог с характеристиками авто и их стоимостью. Также у вас есть таблица с данными клиентов, которые забронировали эти автомобили.
Вам нужно сообщить покупателям, сколько стоят их авто. Перед тем как обзванивать клиентов, нужно объединить данные: добавить во вторую таблицу колонку с ценами из первой.
Просто скопировать и вставить эту колонку не получится. Искать каждое авто вручную и переносить цены — долго.
ВПР автоматически сопоставит названия автомобилей в двух таблицах. Функция скопирует цены из каталога в список забронированных машин. Так напротив каждого клиента будет стоять не только марка автомобиля, но и цена.
Ниже пошагово и со скриншотами разберёмся, как сделать ВПР для этих двух таблиц с данными.
Важно!
ВПР может не работать, если таблицы расположены в разных файлах. Тогда лучше собрать данные в одном файле, на разных листах.
ВПР работает по следующему принципу. Функция просматривает выбранный диапазон первой таблицы вертикально сверху вниз до искомого значения‑идентификатора. Когда видит его, забирает значение напротив него из нужного столбца и копирует во вторую таблицу.
Подробнее о том, как определить все эти значения, поговорим ниже. А пока разберёмся на примере с продажей авто, где найти функцию ВПР в Excel и с чего начать работу.
Сначала нужно построить функцию. Для этого выделяем ячейку, куда функция перенесёт найденное значение.
В нашем случае нужно перенести цены на авто из каталога в список клиентов. Для этого добавим пустой столбец «Цена, руб.» в таблицу с клиентами и выберем ячейку напротив первого клиента.
Дальше открываем окно для построения функции ВПР. Есть два способа сделать это. Первый — перейти во вкладку «Формулы» и нажать на «Вставить функцию».
Второй способ — нажать на «fx» в строке ссылок на любой вкладке таблицы.
Справа появляется окно «Построитель формул». В нём через поисковик находим функцию ВПР и нажимаем «Вставить функцию».
Появляется окно для ввода аргументов функции. Как их заполнять — разбираемся ниже.
Последовательно разберём каждый аргумент: искомое значение, таблица, номер столбца, интервальный просмотр.
Искомое значение — название ячейки с одинаковыми данными для обеих таблиц, по которым функция будет искать данные для переноса. В нашем примере это модель авто. Функция найдёт модель в таблице с каталогом авто, возьмёт оттуда стоимость и перенесёт в таблицу с клиентами.
Порядок действий, чтобы указать значение, выглядит так:
- Ставим курсор в окно «Искомое значение» в построителе формул.
- Выбираем первое значение столбца «Марка, модель» в таблице с клиентами. Это ячейка A2.
Выбранное значение переносится в построитель формул и одновременно появляется в формуле строки ссылок: fx=ВПР(A2).
Таблица — это диапазон ячеек, из которого функция будет брать данные для искомого значения. В этот диапазон должны войти столбцы с искомым значением и со значением, которое нужно перенести в первую таблицу.
В нашем случае нужно перенести цены автомобилей. Поэтому в диапазон обязательно нужно включить столбцы «Марка, модель» (искомое значение) и «Цена, руб.» (переносимое значение).
Важно!
Для правильной работы ВПР искомое значение всегда должно находиться в первом столбце диапазона. У нас искомое значение находится в ячейке A2, поэтому диапазон должен начинаться с A.
Порядок действий для указания диапазона:
- Ставим курсор в окно «Таблица» в построителе формул.
- Переходим в таблицу «Каталог авто».
- Выбираем диапазон, в который попадают столбцы «Марка, модель» и «Цена, руб.». Это A2:E19.
- Закрепляем выбранный диапазон. На Windows для этого выбираем значение диапазона в строке ссылок и нажимаем клавишу F4, на macOS — выбираем значение диапазона в строке ссылок и нажимаем клавиши Cmd + T. Закрепить диапазон нужно, чтобы можно было протянуть функцию вниз и она сработала корректно во всех остальных строках.
Выбранный диапазон переносится в построитель формул и одновременно появляется в формуле строки ссылок: fx=ВПР(A2;’каталог авто’!$A$2:$E$19).
Номер столбца — порядковый номер столбца в первой таблице, в котором находится переносимое значение. Считается по принципу: номер 1 — самый левый столбец, 2 — столбец правее и так далее.
В нашем случае значение для переноса — цена — находится в пятом столбце слева.
Чтобы задать номер, установите курсор в окно «Номер столбца» в построителе формул и введите значение. В нашем примере это 5. Это значение появится в формуле в строке ссылок: fx=ВПР(A2;’каталог авто’!$A$2:$E$19;5).
Интервальный просмотр — условное значение, которое настроит, насколько точно сработает функция:
- Если нужно точное совпадение при поиске ВПР, вводим 0.
- Если нужно приближённое соответствие при поиске ВПР, вводим 1.
В нашем случае нужно, чтобы функция подтянула точные значения цен авто, поэтому нам подходит первый вариант.
Ставим курсор в окно «Интервальный просмотр» в построителе формул и вводим значение: 0. Одновременно это значение появляется в формуле строки ссылок: fx=ВПР(A2;’каталог авто’!$A$2:$E$19;5;0). Это окончательный вид функции.
Чтобы получить результат функции, нажимаем кнопку «Готово» в построителе формул. В выбранной ячейке появляется нужное значение. В нашем случае — цена первой модели авто.
Дальше нужно протянуть это значение вниз до конца таблицы, чтобы функция нашла и перенесла цены всех оставшихся моделей. Для этого мы закрепляли интервал, когда заполняли аргументы.
Получилась таблица с ценами — можно звонить клиентам и сообщать о стоимости авто. Данные перенесены без ошибок, а потратили мы на это несколько минут.
В нашем примере модели автомобилей в таблицах не повторяются, поэтому мы ищем только по одному критерию — названию модели. Но бывают случаи, когда такой поиск не подходит.
Например, у нас несколько одинаковых моделей с разным цветом.
И по традиции есть таблица с клиентами, которые эти модели забронировали.
Если идти по классическому пути ВПР, получится такая функция: fx=ВПР(A29;’каталог авто’!$A$29:$E$35;5;0). В таком виде ВПР найдёт первую совпавшую модель и подтянет её стоимость. Параметр цвета не будет учтён.
Соответственно, цены у всех Nissan Juke будут 1 850 000 рублей, у всех Subaru Forester — 3 190 000 рублей, у всех Toyota C-HR — 2 365 000 рублей.
Поэтому в этом варианте нужно искать стоимость авто сразу по двум критериям — модель и цвет. Для этого нужно изменить формулу вручную. В строке ссылок ставим курсор сразу после искомого значения.
Дописываем в формулу фразу ЕСЛИ(‘каталог авто’!$B$29:$B$35=B29, где:
- ‘каталог авто’!$B$29:$B$35 — закреплённый диапазон цвета автомобилей в таблице, откуда нужно перенести данные. Это весь столбец с ценами.
- B29 — искомое значение цвета автомобиля в таблице, куда мы переносим данные. Это первая ячейка в столбце с цветом — дополнительным параметром для поиска.
Итоговая функция такая: fx=ВПР(A29;ЕСЛИ(‘каталог авто’!$B$29:$B$35=B29;’каталог авто’!$A$29:$E$35);5;0). Теперь значения цен переносятся верно.
Как использовать ВПР в «Google Таблицах»? В них тоже есть функция Vlookup, но нет окна построителя формул. Поэтому придётся прописывать её вручную. Перечислите через точку с запятой все аргументы и не забудьте зафиксировать диапазон. Для фиксации поставьте перед каждым символом значок доллара. В готовой формуле это будет выглядеть так: =ВПР(A2;’Лист1′!$A$2:$C$5;3;0).
Научитесь: Excel + Google Таблицы с нуля до PRO
Узнать больше