0

Впр с повторяющимися значениями

Содержание

Функция ВПР в Excel предназначена для поиска данных по строкам в диапазоне ячеек или таблице и возвращает соответствующие искомые значения.

Функция ВПР удобна при работе с двумя таблицами, которые содержат однотипные данные. Например, имеется таблица заказов на различные продукты с полями «Наименование», «Масса», «Стоимость 1 единицы товара» и «Общая стоимость заказа», заполненными являются только два первых столбца. В отдельной таблице содержатся поля «Наименование» и «Стоимость 1 единицы товара». Таким образом, вторая таблица представляет собой прайс. Чтобы перенести значения стоимости единицы товара из прайса в первую таблицу удобно использовать функцию ВПР. Также данную функцию часто используют для сравнения данных двух таблиц.

Примеры использования функции ВПР в Excel

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

Вид исходной таблицы:

Создадим компактный вариант таблицы критериев с выпадающим списком. Чтобы создать выпадающий список перейдите в ячейку D2 и выберите инструмент «ДАННЫЕ»-«Работа с данными»-«Проверка данных».

В появившемся окне «Проверка вводимых значений» в секции «Тип данных:» выберите опцию «Список». Затем заполните поле «Источник:» ссылкой на диапазон ячеек =$A$2:$A$10, так как показано выше на рисунке.

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

  • A14 – ячейка, содержащая искомое значение (список с ФИО сотрудников);
  • A2:B10 – диапазон ячеек со значениями, хранящимися в таблице;
  • 2 – номер столбца, в котором содержится возвращаемое значение.

Пример возвращаемого результата:

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

Поиск значения в диапазоне ячеек по условию

Пример 2. В таблице содержатся данные о пользователях, посетивших сайт за сутки. Определить, посещал ли сайт пользователь с любым ником из списка. Если посещений не было, отобразить соответствующее сообщение. Иначе – отобразить число просмотров.

Вид исходной таблицы:

Вид таблицы с возвращаемым значением и выпадающим списком как в предыдущем примере:

Для расчетов используем следующую формулу:

Функция ЕСЛИ выполняет проверку возвращаемого функцией ВПР значения. Если оно равно 0 (нуль), будет возвращена строка "Не заходил", иначе – возвращен результат конкатенации возвращаемого функцией ВПР значения и подстроки " просмотров".

Функция ВПР и сравнение двух таблиц в Excel если не работает

Пример 3. В двух таблицах хранятся данные о доходах предприятия за каждый месяц двух лет. Определить, насколько средний доход за 3 весенних месяца в 2018 году превысил средний доход за те же месяцы в предыдущем году.

Вид исходной таблицы:

Для нахождения искомого значения можно было бы использовать формулу в массиве:

То есть, в качестве аргумента искомое_значение указать диапазон ячеек с искомыми значениями и выполнить функцию в массиве (CTRL+SHIFT+ENTER). Однако при вычислении функция ВПР вернет результаты только для первых месяцев (Март) и полученный результат будет некорректным.

В первую очередь укажем третий необязательный для заполнения аргумент – 0 (или ЛОЖЬ) иначе ВПР вернет некорректный результат. Данный аргумент требует от функции возвращать точное совпадение надетого результата, а не ближайшее по значению. Вот почему иногда не работает функция ВПР в Excel у некоторых пользователей.

Формула для 2017-го года:

И для 2018-го года:

С использованием функции СРЗНАЧ определим искомую разницу доходов:

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

Как работает функция ВПР в Excel при выборке из таблицы значений?

Функция имеет следующую синтаксическую запись:

=ВПР( искомое_значение, таблица, номер_столбца, [интервальный_просмотр])

  • искомое_значение – обязательный для заполнения аргумент, принимающий числовые, текстовые, логические значения, а также данные ссылочного типа, и представляет собой значение, по которому производится поиск. Например, в таблице с фруктами и их стоимостью можно найти цену груш с помощью функции ВПР, введя в качестве данного аргумента текстовую строку «груша». Искомое значение должно находиться в крайнем левом столбце указанного в качестве таблицы диапазона ячеек (следующий аргумент функции). Для наглядного вида возвращаемого результата можно внести название искомого элемента в ячейку, а данный аргумент указать в виде ссылки на данную ячейку.
  • таблица – обязательный аргумент, принимающий ссылку на диапазон ячеек, в которых будет произведен поиск значения, переданного в качестве аргумента искомое_значение. В указанном диапазоне ячеек столбец с искомым значением должен являться первым слева (например, в диапазоне A1:E6 им будет столбец A:A). Также он должен содержать столбец, в котором содержится возвращаемое значение. Диапазон не должен содержать наименования столбцов.
  • номер_столбца – обязательный аргумент, принимающий целое число из диапазона от 1 до N (N – номер последнего столбца в диапазоне), указывающее номер столбца с возвращаемым значением.
  • [интервальный_просмотр] – необязательный аргумент, принимающий логические значения:
  1. ИСТИНА – поиск ближайшего значения в первом столбце диапазона, переданного в качестве аргумента таблица, при этом данные в этом столбце должны быть отсортированы в алфавитном порядке. Если аргумент явно не указан, значение ИСТИНА устанавливается по умолчанию.
  2. ЛОЖЬ – поиск точного совпадения установленному критерию.
  1. Если в качестве аргумента [интервальный_просмотр] было передано значение ЛОЖЬ (точное совпадение поисковому критерию), а в диапазоне ячеек (аргумент таблица) искомое значение отсутствует, функция ВПР вернет код ошибки #Н/Д.
  2. Если аргумент [интервальный_просмотр] принимает значение ИСТИНА (или явно не указан), однако столбец с искомым значением содержит неотсортированные данные, функция вернет код ошибки #Н/Д. Для получения корректных результатов необходимо выполнить сортировку таблицы или в качестве аргумента [интервальный_просмотр] указать значение ЛОЖЬ.
  3. Если форматы данных, хранимых в ячейках первого столбца таблицы, в которой выполняется поиск с помощью функции ВПР, и переданного в качестве аргумента искомое_значение отличаются (например, искомым значением является число, а в первом столбце таблицы содержатся текстовые строки), функция вернет код ошибки #Н/Д.
  4. Для отображения сообщений о том, что какое-либо значение найти не удалось, можно использовать «обертки» логических функций ЕНД (для перехвата ошибки #Н/Д) или ЕСЛИОШИБКА (для перехвата любых ошибок).
Читайте также:  Белки хищники или травоядные

Блог о программе Microsoft Excel: приемы, хитрости, секреты, трюки

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

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

  1. Использование дополнительной колонки
  2. Использование функции ВЫБОР для создания новой таблицы просмотра
  3. Использование функций ИНДЕКС и ПОИСКПОЗ
  4. Использование функции СУММПРОИЗВ

Ну а начнем мы с вами с самого простого.

Использование дополнительной колонки

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

Рассмотрим классический пример. У нас имеется таблица с продажами по месяцам и городам. И нам необходимо определить значение продаж, соответствующее двум условиям: месяц – Февраль и город – Самара.

Использование функции ВПР в классическом виде нам не поможет, так как она сможет вернуть значение, соответствующее только одному условию. Из положения нам поможет выйти дополнительный столбец, в котором мы объединим значения столбцов Месяц и Город. Для этого в ячейке А2 прописываем формулу =B2&C2 и протягиваем данную формулу до ячейки А13. Теперь мы сможем использовать значения столбца А, чтобы вернуть необходимое значение. Прописываем в ячейке G3 формулу:

Данная формула объединяет два условия ячеек G1 и G2 в одну строку и просматривает его в столбце А. После того, как нужное условие было обнаружено, формула возвращает значение с четвертого столбца таблицы A1:D13, т.е. столбца Продажи.

Использование функции ВЫБОР для создания новой таблицы просмотра

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

Использование функции ВЫБОР подразумевает создание новой таблицы для просмотра, в котором значения столбцов Месяц и Город уже объединены. Наша формула будет выглядеть следующим образом:

Основной момент данной формулы заключается в части ВЫБОР(<1;2>;B2:B13&C2:C13;D2:D13), который делает две вещи:

  1. Объединяет значения столбцов Месяц и Город в один массив: ЯнвМосква, ФевМосква …
  2. Объединяет два массива в таблицу, состоящую из двух столбцов.

Результатом работы данной функции будет таблица, которая выглядит следующим образом:

Теперь формула стала более понятной.

ВАЖНО: Так как мы использовали формулу массива, по окончании ввода формулы нажмите Ctrl+Shift+Enter, чтобы дать знать программе о наших намерениях. После нажатия данной комбинации клавиш, программа автоматически установит фигурные скобки в начале и в конце формулы.

Использование функций ИНДЕКС и ПОИСКПОЗ

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

Формула будет выглядеть следующим образом.

Давайте разберем, что делает каждая часть данной формулы.

Сначала рассмотрим функцию ПОИСКПОЗ(1;(B2:B13=G1)*(C2:C13=G2);0). В данном случае последовательно сравнивается значение ячейки G1 с каждым значением ячеек диапазона B2:B13 и возвращается ИСТИНА, если значения совпадают и ЛОЖЬ, если нет. Такое же сравнение производится со значением ячейки G2 и диапазоном C2:C13. Далее мы сравниваем оба эти массива, состоящих из ИСТИНА и ЛОЖЬ. Комбинация ИСТИНА * ИСТИНА дает нам результат 1 (ИСТИНА). Давайте посмотрим на картинку ниже, которая поможет объяснить принцип работы более наглядно.

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

Использование СУММПРОИЗВ

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

Принцип работы данной формулы схож с принципом работы предыдущего подхода. Создается виртуальная таблица, в которой сравниваются значения ячеек G1 и G2 с диапазонами B2:B13 и С2:С13 соответственно. Далее оба этих массива сопоставляются и получается массив из единиц и нулей, где единица присваивается той строке, в которой оба условия совпали. Далее данный виртуальный массив перемножается на диапазон D2:D13. Так как в нашем виртуальном массиве будет только одна единица в шестой строке, формула вернёт результат 189.

Читайте также:  В какой папке находятся драйвера windows 7

Данная функция не будет работать, если в диапазоне D2:D13 имеются текстовые значения.

Чтобы понять, как работает данная формула, рекомендую прочитать статью о функции СУММПРОИЗ.

Итак, какой же способ использовать? Хотя все они работают стабильно, я предпочитаю первый способ. В своей ежедневной работе, я предпочитаю работать с файлами, которые просты для понимания и поддаются изменениям. Оба эти требования отвечают условиям первого подхода.

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

Вам также могут быть интересны следующие статьи

10 комментариев

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

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

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

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

Даже если вы годами используете функцию ВПР, то с высокой долей вероятности эта статья будет вам полезна и не оставит равнодушным. Я, например, будучи IT-специалистом, а потом и руководителем в IT, пользовался VLOOKUP 15 лет, но разобраться со всеми нюансами довелось только сейчас, когда я на профессиональной основе стал обучать людей Excel.

ВПР — это аббревиатура от вертикального просмотра. Аналогично и VLOOKUP — Vertical LOOKUP. Уже само название функции намекает нам, что она производит поиск в строках таблицы (по вертикали — перебирая строки и фиксируя столбец), а не в столбцах (по горизонтали — перебирая столбцы и фиксируя строку). Надо заметить, что у ВПР есть сестра — гадкий утёнок, которая никогда не станет лебедем, — это функция ГПР (HLOOKUP). ГПР, в противоположность ВПР, производит горизонтальный поиск, однако концепция Excel (да и вообще концепция организации данных) подразумевает, что ваши таблицы имеют небольшое количество столбцов и гораздо большее количество строк. Именно поэтому поиск по строкам нам требуется во много раз чаще, чем по столбцам. Если вы в Excel слишком часто пользуетесь функцией ГПР, то, вполне вероятно, что вы чего-то не поняли в этой жизни.

Синтаксис

Функция ВПР имеет четыре параметра:

=ВПР( ; ; [; ] ), тут:

— искомое значение (редко) или ссылка на ячейку, содержащую искомое значение (подавляющее большинство случаев);

— ссылка на диапазон ячеек (двумерный массив), в ПЕРВОМ (!) столбце которого будет осуществляться поиск значения параметра ;

— номер столбца в диапазоне, из которого будет возвращено значение;

это очень важный параметр, который отвечает на вопрос, а отсортирован ли по возрастанию первый столбец диапазона . В случае, если массив отсортирован, мы указываем значение ИСТИНА (TRUE) или 1, в противном случае — ЛОЖЬ (FALSE) или 0. В случае, если данный параметр опущен, он по умолчанию становится равным 1.

Держу пари, что многие из тех, кто знает функцию ВПР как облупленную, прочитав описание четвёртого параметра, могут почувствовать себя неуютно, так как они привыкли видеть его в несколько ином виде: обычно там идёт речь о точном соответствии при поиске (ЛОЖЬ или 0) либо же о диапазонном просмотре (ИСТИНА или 1).

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

Как же конкретно работает формула ВПР

  • Вид формулы I. Если последний параметр опущен или указан равным 1, то ВПР предполагает, что первый столбец отсортирован по возрастанию, поэтому поиск останавливается на той строке, которая непосредственно предшествует строке, в которой находится значение, превышающее искомое. Если такой строки не найдено, то возвращается последняя строка диапазона.
  • Вид формулы II. Если последний параметр указан равным 0, то ВПР последовательно просматривает первый столбец массива и сразу останавливает поиск, когда найдено первое точное соответствие с параметром , в противном случае возвращается код ошибки #Н/Д (#N/A).

Схемы работы формул

ВПР тип I

ВПР тип II

Следствия для формул вида I

  1. Формулы можно использовать для распределения значений по диапазонам.
  2. Если первый столбец содержит повторяющиеся значения и правильно отсортирован, то будет возвращена последняя из строк с повторяющимися значениями.
  3. Если искать значение заведомо большее, чем может содержать первый столбец, то можно легко находить последнюю строку таблицы, что бывает довольно ценно.
  4. Данный вид вернёт ошибку #Н/Д, только если не найдёт значения меньше или равное искомому.
  5. Понять, что формула возвращает неправильные значения, в случае если ваш массив не отсортирован, довольно затруднительно.

Следствия для формул вида II

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

Производительность работы функции ВПР

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

  • мне нужен более мощный компьютер;
  • мне нужна более быстрая формула, например, многие знают про ИНДЕКС+ПОИСКПОЗ (INDEX+MATCH), которая якобы быстрее на жалкие 5–10%.
Читайте также:  Гто официальный сайт регистрация школьников московская область

И мало кто думает, что стоит только начать использовать ВПР вида I и обеспечить любыми способами сортировку первого столбца, как скорость работы ВПР возрастёт в 57 раз. Пишу прописью — В ПЯТЬДЕСЯТ СЕМЬ РАЗ! Не на 57%, а на 5 700%. Данный факт я проверил вполне надёжно.

Секрет такой быстрой работы кроется в том, что на отсортированном массиве можно применять чрезвычайно эффективный алгоритм поиска, который носит название бинарного поиска (метод деления пополам, метод дихотомии). Так вот ВПР вида I его применяет, а ВПР вида II ищет без какой-либо оптимизации вообще. То же самое относится и к функции ПОИСКПОЗ (MATCH), которая включает в себя аналогичный параметр, а также и к функции ПРОСМОТР (LOOKUP), которая работает только на отсортированных массивах и включена в Excel ради совместимости с Lotus 1-2-3.

Недостатки формулы

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

Некоторые аспекты применения формулы в реальной жизни

Диапазонный поиск

Классическая иллюстрация к диапазонному поиску — задача определения скидки по размеру заказа.

Поиск текстовых строк

Безусловно, ВПР ищет не только числа, но и текст. При этом надо принимать во внимание, что регистр символов формула не различает. Если использовать символы подстановки, то можно организовать нечёткий поиск. Есть два символа подстановки: «?» — заменяет один любой символ в текстовой строке, «*» — заменяет любое количество любых символов.

Борьба с пробелами

Часто поднимается вопрос, как решить проблему лишних пробелов при поиске. Если справочную таблицу ещё можно вычистить от них, то первый параметр формулы ВПР не всегда зависит от вас. Поэтому если риск засорения ячеек лишними пробелами присутствует, то можно применять для очистки функции СЖПРОБЕЛЫ (TRIM).

Разный формат данных

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

=ВПР(−−D7; Продукты!$A$2:$C$5; 3; 0) — если D7 содержит текст, а таблица — числа;

=ВПР(D7 & «»); Продукты!$A$2:$C$5; 3; 0) — и наоборот.

Кстати, перевести текст в число можно сразу несколькими способами, выбирайте:

  • Двойное отрицание —D7.
  • Умножение на единицу D7*1.
  • Сложение с нулём D7+0.
  • Возведение в первую степень D7^1.

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

Как подавить выдачу #Н/Д

Это очень удобно делать при помощи функции ЕСЛИОШИБКА (IFERROR).

Например: =ЕСЛИОШИБКА( ВПР(D7; Продукты!$A$2:$C$5; 3; 0); «»).

Если ВПР вернёт код ошибки #Н/Д, то ЕСЛИОШИБКА его перехватит и подставит параметр 2 (в данном случае пустая строка), а если ошибки не произошло, то эта функция сделает вид, что её вообще нет, а есть только ВПР, вернувший нормальный результат.

Массив

Часто забывают ссылку массива сделать абсолютной, и при протягивании массив «плывёт». Помните, что вместо A2:C5 следует использовать $A$2:$C$5.

Хорошей идеей является размещение справочного массива на отдельном листе рабочей книги. Не путается под ногами, да и сохраннее будет.

Ещё более хорошей идеей будет объявление этого массива в виде именованного диапазона.

Многие пользователи при указании массива используют конструкцию вида A:C, указывая столбцы целиком. Этот подход имеет право на существование, так как вы избавлены от необходимости отслеживать тот факт, что ваш массив включает все необходимые строки. Если вы добавите строки на лист с первоначальным массивом, то диапазон, указанный как A:C, не придётся корректировать. Безусловно, эта синтаксическая конструкция заставляет Excel проводить несколько большую работу, чем при точном указании диапазона, но данными накладными расходами можно пренебречь. Речь идёт о сотых долях секунды.

Ну и на грани гениальности — оформить массив в виде умной таблицы.

Использование функции СТОЛБЕЦ для указания колонки извлечения

Если таблица, в которую вы извлекаете данные при помощи ВПР, имеет ту же самую структуру, что и справочная таблица, но просто содержит меньшее количество строк, то в ВПР можно использовать функцию СТОЛБЕЦ() для автоматического расчёта номеров извлекаемых столбцов. При этом все ВПР-формулы будут одинаковыми (с поправкой на первый параметр, который меняется автоматически)! Обратите внимание, что у первого параметра координата столбца абсолютная.

Создание составного ключа через &»|»&

Если возникает необходимость искать по нескольким столбцам одновременно, то необходимо делать составной ключ для поиска. Если бы возвращаемое значение было не текстовым (как тут в случае с полем «Код»), а числовым, то для этого подошла бы более удобная формула СУММЕСЛИМН (SUMIFS) и составной ключ столбца не потребовался бы вовсе.

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

admin

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

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