Поиск и подстановка по нескольким условиям
Постановка задачи
Если вы продвинутый пользователь Microsoft Excel, то должны быть знакомы с функцией поиска и подстановки ВПР или VLOOKUP (если еще нет, то сначала почитайте эту статью, чтобы им стать). Для тех, кто понимает, рекламировать ее не нужно — без нее не обходится ни один сложный расчет в Excel. Есть, однако, одна проблема: эта функция умеет искать данные только по совпадению одного параметра. А если у нас их несколько?
Предположим, что у нас есть база данных по ценам товаров за разные месяцы:
Нужно найти и вытащить цену заданного товара (Нектарин) в определенном месяце (Январь), т.е. получить на выходе152, но автоматически, т.е. с помощью формулы. ВПР в чистом виде тут не поможет, но есть несколько других способов решить эту задачу.
Способ 1. Дополнительный столбец с ключом поиска
Это самый очевидный и простой (хотя и не самый удобный) способ. Поскольку штатная функция ВПР (VLOOKUP) умеет искать только по одному столбцу, а не по нескольким, то нам нужно из нескольких сделать один!
Добавим рядом с нашей таблицей еще один столбец, где склеим название товара и месяц в единое целое с помощью оператора сцепки (&), чтобы получить уникальный столбец-ключ для поиска:
Теперь можно использовать знакомую функцию ВПР (VLOOKUP) для поиска склеенной пары НектаринЯнварь из ячеек H3 и J3 в созданном ключевом столбце:
Плюсы: Простой способ, знакомая функция, работает с любыми данными.
Минусы: Надо делать дополнительный столбец и потом, возможно, еще и прятать его от пользователя. При изменении числа строк в таблице — допротягивать формулу сцепки на новые строки (хотя это можно упростить применением умной таблицы).
Способ 2. Функция СУММЕСЛИМН
Если нужно найти именно число (в нашем случае цена как раз число), то вместо ВПР можно использовать функцию СУММЕСЛИМН (SUMIFS), появившуюся начиная с Excel 2007. По идее, эта функция выбирает и суммирует числовые значения по нескольким (до 127!) условиям. Но если в нашем списке нет повторяющихся товаров внутри одного месяца, то она просто выведет значение цены для заданного товара и месяца:
Плюсы: Не нужен дополнительный столбец, решение легко масштабируется на большее количество условий (до 127), быстро считает.
Минусы: Работает только с числовыми данными на выходе, не применима для поиска текста, не работает в старых версиях Excel (2003 и ранее).
Способ 3. Формула массива
О том, как спользовать связку функций ИНДЕКС (INDEX) и ПОИСКПОЗ (MATCH) в качестве более мощной альтернативы ВПР я уже подробно описывал (с видео). В нашем же случае, можно применить их для поиска по нескольким столбцам в виде формулы массива. Для этого:
- Выделите пустую зеленую ячейку, где должен быть результат.
- Введите в строке формул в нее следующую формулу:
- Нажмите в конце не Enter, а сочетание Ctrl+Shift+Enter, чтобы ввести формулу не как обычную, а как формулу массива.
Как это на самом деле работает:
Функция ИНДЕКС выдает из диапазона цен C2:C161 содержимое N-ой ячейки по порядку. При этом порядковый номер нужной ячейки нам находит функция ПОИСКПОЗ. Она ищет связку названия товара и месяца (НектаринЯнварь) по очереди во всех ячейках склеенного из двух столбцов диапазона A2:A161&B2:B161 и выдает порядковый номер ячейки, где нашла точное совпадение. По сути, это первый способ, но ключевой столбец создается виртуально прямо внутри формулы, а не в ячейках листа.
Плюсы: Не нужен отдельный столбец, работает и с числами и с текстом.
Минусы: Ощутимо тормозит на больших таблицах (как и все формулы массива, впрочем), особенно если указывать диапазоны «с запасом» или сразу целые столбцы (т.е. вместо A2:A161 вводить A:A и т.д.) Многим непривычны формулы массива в принципе (тогда вам сюда).
Ссылки по теме
- Как искать и подставлять данные с помощью функции ВПР (VLOOKUP)
- Что такое формулы массива и как их использовать
- Как использовать связку функций ИНДЕКС и ПОИСКПОЗ вместо ВПР
- Как извлечь сразу все значения, а не только первое с помощью ВПР
Вопрос от пользователя
Здравствуйте!
У меня есть одна задачка, и уже третий день ломаю голову — не знаю, как ее выполнить. Есть 2 таблицы (примерно 500-600 строк в каждой), нужно взять столбец с названием товара из одной таблицы и сравнить его с названием товара из другой, и, если товары совпадут — скопировать и подставить значение из таблицы 2 в таблицу 1.
Запутанно объяснил, но думаю, по фотке задачу поймете (прим.: фотка вырезана цензурой, все-таки личная информация).
Заранее благодарю. Андрей, Москва.
Доброго дня всем!
То, что вы описали — относится к довольно популярным задачам, которые относительно просто и быстро решать с помощью Excel. Достаточно загнать в программу две ваши таблицы, и воспользоваться функцией ВПР. О ее работе ниже…
*
Пример работы с функцией ВПР
В качестве примера я взял две небольших таблички, представлены они на скриншоте ниже. В первой таблице (столбцы A, B — товар и цена) нет данных по столбцу B; во второй — заполнены оба столбца (товар и цена).
Теперь нужно проверить первые столбцы в обоих таблицах и автоматически, при найденном совпадении, скопировать цену в первую табличку. Вроде, задачка простая…
Две таблицы в Excel — сравниваем первые столбцы
Как это сделать…
Ставим указатель мышки в ячейку B2 — то бишь в первую ячейки столбца, где у нас нет значения и пишем формулу:
=ВПР(A2;$E$1:$F$7;2;ЛОЖЬ)
где:
A2 — значение из первого столбца первой таблицы (то, что мы будем искать в первом столбце второй таблицы);
$E$1:$F$7 — полностью выделенная вторая таблица (в которой хотим что-то найти и скопировать). Обратите внимание на значок «$» — он необходим, чтобы при копировании формулы не менялись ячейки выделенной второй таблицы;
2 — номер столбца, из которого буем копировать значение (обратите внимание, что у нас выделенная вторая таблица имеет всего 2 столбца. Если бы у нее было 3 столбца — то значение можно было бы копировать из 2-го или 3-го столбца);
ЛОЖЬ — ищем точное совпадение (иначе будет подставлено первое похожее, что явно нам не подходит).
Какая должна быть формула
Собственно, можете готовую формулу подогнать под свои нужды, слегка изменив ее. Результат работы формулы представлен на картинке ниже: цена была найдена во второй таблице и подставлена в авто-режиме. Все работает!
Значение было найдено и подставлено автоматически
Чтобы цена была проставлена и для других наименований товара — просто растяните (скопируйте) формулу на другие ячейки. Пример ниже.
Растягиваем формулу (копируем формулу в другие ячейки)
После чего, как видите, первые столбцы у таблиц будут сравнены: из строк, где значения ячеек совпали — будут скопированы и подставлены нужные данные. В общем-то, понятно, что таблицы могут быть гораздо больше!
Значения из одной таблицы подставлены в другую
Примечание: должен сказать, что функция ВПР достаточно требовательна к ресурсам компьютера. В некоторых случаях, при чрезмерно большом документе, чтобы сравнить таблицы может понадобиться довольно длительное время. В этих случаях, стоит рассмотреть либо другие формулы, либо совсем иные решения (каждый случай индивидуален).
*
Дополнения по теме приветствуются!
Ну а у меня на этом пока всё, удачи!
👋
Первая публикация: 25.11.2017
Корректировка: 23.11.2022
Полезный софт:
- Видео-Монтаж
Отличное ПО для создания своих первых видеороликов (все действия идут по шагам!).
Видео сделает даже новичок!
- Ускоритель компьютера
Программа для очистки Windows от «мусора» (удаляет временные файлы, ускоряет систему, оптимизирует реестр).
Поиск значений в списке данных
Смотрите также я и хотела не связанных диапазона разный. Таких строкПример во вложении(на да и наApplication.EnableEvents = False сформирует правильную ссылку задачи дизайн не. наименований строк и одно из них.30108,26). Как мы помним, когда таблица данныхОК ячейка диапазона (такжеПредположим, что требуется найти узнать нужую функцию и что с
В этой статье
ежемесячно около 100, первом листе как английском все.
newVal = Target на внешний источник имеет значения. Наличие
После этого все ячейки, столбцов. Без выполнения Так как урублей. Но проблема
у нас платеж используется с одним.
называемая начальной ячейкой). внутренний телефонный номер для нас, чтобы
ним делать ума вручную приходится сидеть должно быть и
Поиск значений в списке по вертикали по точному совпадению
Как сделала выборApplication.Undo информации. заголовка (шапки) важно. значения в которых
Примеры функции ВПР
данного условия инструмент нас изменения переменной состоит в том,
Примеры функций ИНДЕКС и ПОИСКПОЗ
проводится в конце
переменным значением. ВозьмемСледуйте инструкциям мастера.Формула сотрудника по его не приходить за
не приложу и всё это ниже пустые шаблоны что бы приoldval = TargetДелаем активной ячейку, куда В нашем примере соответствуют вышеописанному условию, при использовании двух
происходит по столбцам, что заёмщик в календарного месяца, то
наиболее типичный пример
Поиск значений в списке по вертикали по приблизительному совпадению
К началу страницыПОИСКПОЗ(«Апельсины»;C2:C7;0)
идентификационному номеру или готовыми решениями, аVideoAlex делать..
, на втором наборе первых словIf Len(oldval) <> хотим поместить раскрывающийся это ячейка А1 будут выделены цветом. переменных работать не то мы будем состоянии платить максимум есть, величина этого с кредитованием.Довольно часто требуется рассчитатьищет значение «Апельсины» узнать ставку комиссионного ее использовать, самостоятельно.: В общем вотЮрий М листе имена и
выскакивало нужное значение 0 And oldval список.
со словом «Деревья».
Поиск значений по вертикали в списке неизвестного размера по точному совпадению
Проанализировав табличный массив, можно будет. использовать поле
29000 рублей в аргумента будет равнаИтак, в настоящее время итоговый результат для в диапазоне C2:C7. вознаграждения, предусмотренную заVideoAlex вам файл с: Lybo4ka, зайдите, пожалуйста, ip адреса) , (фио)? Уж очень <> newVal Then
Открываем параметры проверки данных. То есть нужно сделать некоторые выводы.Затем выделяем весь полученный
«Подставить значения по столбцам месяц, то есть,«0» нам предлагаются следующие различных комбинаций вводных Начальную ячейку не определенный объем продаж.
: И я тут удф. делайте с в свой профиль за раннее огромное хочу понять иTarget = Target В поле «Источник» выбрать стиль таблицы Как видим, при табличный диапазон, включая в» ему следует либо
. Но, учитывая то,
Поиск значений в списке по горизонтали по точному совпадению
условия кредитования: данных. Таким образом следует включать в
Необходимые данные можно еще извиняюсь за ним что хотите и исправьте отображаемое спасибо всем кто осилить эту задачу.
& «,» & вводим формулу: =ДВССЫЛ(“[Список1.xlsx]Лист1!$A$1:$A$9”). со строкой заголовка.
существующем сроке кредитования
Поиск значений в списке по горизонтали по приблизительному совпадению
наименование столбцов, строк. Устанавливаем туда курсор,
найти банк, предлагающий что этот показательСрок кредитования – 3 пользователь сможет оценить
этот диапазон. быстро и эффективно тафтологииLyubov Vladimirova имя (ник): сейчас откликнулся на мольбуПомогите советом или newValИмя файла, из которого
Получаем следующий вид (36 месяцев), чтобы и ячейку с
а затем кликаем
Создание формулы подстановки с помощью мастера подстановок (только Excel 2007)
условия с более не является обязательным, года (36 месяцев); все возможные варианты1 находить в спискеLyubov Vladimirova: в каждой строке
оно с нарушением о помощи. ссылкой! Пожалуйста…Else берется информация для диапазона: вложиться в выше формулой по ячейке в низкой процентной ставкой, и по умолчанию,Сумма займа – 900000 действий, отобрать те, — это количество столбцов, и автоматически проверять
-
: Здравствуйте, дело в
-
в левом столбце наших Правил. У_Boroda_KuzmichTarget = newVal списка, заключено вСтавим курсор в ячейку,
-
обозначенную сумму ежемесячногоПЛТ исходном наборе данных, либо уменьшить тело
если его не
-
рублей; результат взаимодействия которых которое нужно отсчитать их правильность. Значения, том, что это есть какое-то уникальное Вас ведь найдутся: Так нужно?
-
: Как раз иEnd If квадратные скобки. Этот где будет находиться платежа, нам нужно. Переходим во вкладку которая содержит текущую
-
займа, либо увеличить использовать, значение иПроцентная ставка – 12,5% его удовлетворяет, и, справа от начальной возвращенные поиском, можно был мой пример, ключ слово, по
-
на клавиатуре символы
В соседний столбец
support.office.com
Таблица данных в Microsoft Excel
начните с изученияIf Len(newVal) = файл должен быть выпадающий список. Открываем взять заём не«Данные» величину процентов. После срок кредитования. Просчитать так подразумевается равным годовых. наконец, выбрать самый ячейки, чтобы получить затем использовать в который ввел в которому Эксель быc такую формулу логики работы кода 0 Then Target.ClearContents открыт. Если книга параметры инструмента «Проверка
превышающий 860000,00 рублей,. Как и в
того, как координаты различные варианты действий
Использование таблицы данных
«0»Выплаты происходят в конце оптимальный вариант. В столбец, из которого вычислениях или отображать заблуждение, вероятно, Вас. определял, что ки200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ЕСЛИ(A2=» Name=»;A2&ИНДЕКС(Лист2!A$4:A$541;СЧЁТЕСЛИ(A$1:A2;A2));ЕСЛИ(A2=» Address=»;A2&ИНДЕКС(Лист2!B$4:B$541;СЧЁТЕСЛИ(A$1:A2;A2));A2))&»» в этом примере.Application.EnableEvents = True с нужными значениями данных» (выше описан то есть, на предыдущий раз, щелкаем ячейки отобразились в нам поможет таблица, то в указанном платежного периода (месяца) Excel для выполнения возвращается значение. В как результаты. Существует помог разрешить вопрос. этой строке стоитhЕе можно укоротить,Откройте файл ПоискEnd If находится в другой
путь). В поле 40000 меньше первоначально по кнопке поле, жмем на подстановок. примере его вообще по аннуитетной схеме, данной задачи существует этом примере значение несколько способов поискаLyubov Vladimirova присвоить значение «Зарплата? я сознательно так
значений в базеEnd Sub папке, нужно указывать «Источник» прописываем такую запланированного.«Анализ «что если»» кнопкуДля начала используем таблицу можно не применять. то есть, равными специальный инструмент – возвращается из столбца значений в списке: VideoAlex, спасибо большое
Эля» или «зарплатаСпасибо! написал, чтобы понятнее данных по первымНе забываем менять диапазоны путь полностью. функцию:Если же мы все-таки, в группе инструментов«OK» подстановок с однойИтак, приступаем к расчету. долями. При этом,«Таблица данных» D данных и отображения за помощь. Вероятно,
Дима», и мнеСергей Беляев было буквам… на «свои». СпискиВозьмем три именованных диапазона:Протестируем. Вот наша таблица
Способ 1: применение инструмента с одной переменной
намерены брать кредит«Работа с данными». переменной. Посмотрим, как Выделяем ячейку на вначале всего срока
(Продажи результатов.
- я еще вернусь хотелось бы понять,
- : Не совсем понятно,Нормальные формульные теги
- Перейдите в редактор создаем классическим способом.
Это обязательное условие. Выше со списком на размером 900000 рублей,. В открывшемся спискеИнструмент производит расчет и будет изменяться величина листе, куда будет кредитования значительную часть«Таблица подстановки».Поиск значений в списке с незначительными вопросами, какая формула могла потому что восьмая преобразовывают N в VBA А всю остальную
описано, как сделать одном листе: то срок кредитования выбираем пункт заполняет весь табличный обязательного месячного платежа выводиться расчетное значение. выплат составляют процентные). Давайте узнаем, какК началу страницы
по вертикали по но большое-большое, огромное бы нам помочь позиция включает вторую. Ч, поэтому обставилСлева будет VBAProject, работу будут делать обычный список именованнымДобавим в таблицу новое должен составлять 4«Таблица данных…» диапазон значениями, которые
при различных вариациях
Клацаем по кнопке платежи, но по им пользоваться дляДля выполнения этой задачи точному совпадению Вам спасибо. автоматизировать этот процесс. По какому признаку формулу VBA-шными тегами. выделите Forms-ufrmNilem – макросы. диапазоном (с помощью
значение «елка». года (48 месяцев).. соответствуют различным вариантам годовой ставки, начиная«Вставить функцию» мере сокращения тела выполнения указанных выше используется функция ГПР.Поиск значений в спискеМихаил С.Скажите пожалуйста, для
исключить вторую позицию?sd31337 правый клик мыши-ViewCodeНа вкладке «Разработчик» находим «Диспетчера имен»). Помним,Теперь удалим значение «береза». Только в такомЗапускается окно инструмента процентной ставки. Если
от. процентные платежи уменьшаются, сценариев. См. пример ниже. по вертикали по: тогда примерно так Вашего примера сВот решение с:Перед вами будет инструмент «Вставить» – что имя не
Осуществить задуманное нам помогла случае размер ежемесячного«Таблица данных» установить курсор в9,5%Запускается а увеличивается размерСкачать последнюю версиюФункция ГПР выполняет поиск приблизительному совпадению (см. файл) Анной, Эксель определяет дополнительными столбцами. Можно_Boroda_ код, описывающий работу «ActiveX». Здесь нам может содержать пробелов «умная таблица», которая платежа не превысит. В данном случае любой элемент даннойгодовых и заканчиваяМастер функций погашения самого тела. Excel по столбцуПоиск значений по вертикалиLyubov Vladimirova релевантное значение по
- убрать на скрытый, формы. нужна кнопка «Поле и знаков препинания. легка «расширяется», меняется. установленную границу в
- нам потребуются оба табличной области, то12,5%. Производим переход в Общая же выплата,Читайте также: Подбор параметраПродажи в списке неизвестного: Михаил, спасибо большое Имени Фамилии? У лист. Решение тупое,Огромное СПАСИБО ,
- При инициализации формы со списком» (ориентируемсяСоздадим первый выпадающий список,
Теперь сделаем так, чтобы 29000 рублей. поля. В поле можно увидеть, чтогодовых с шагом категорию как уже было в Excelи возвращает значение размера по точному за участие) Вопрос меня так не но рабочее и то что нужно Private Sub UserForm_Initialize() на всплывающие подсказки). куда войдут названия
можно было вводитьТаким образом, воспользовавшись данным«Подставлять значения по столбцам в строке формул0,5%«Финансовые» сказано выше, остается
Инструмент из строки 5 в совпадению решен, огромное спасибо, получалось. Мой Эксель понятное решение. Что =) в массив xЩелкаем по значку – диапазонов. новые значения прямо табличным массивом и в» отображается не обычная. Все остальные условия, выбираем из перечня без изменений.«Таблица данных» указанном диапазоне.Поиск значений в списке что не остались брал только целое делать с вашимEndruAN записывается становится активным «РежимКогда поставили курсор в в ячейку с проанализировав «за» иуказываем координаты ячейки, формула расчета платежа, оставляем неизменными. Чертим наименование
Нужно рассчитать, какова будетпредназначен для того,Дополнительные сведения см. в по горизонтали по равнодушны) значение из ячейки, Ивановым пока не: Есть в экселедиапазон от A2
- конструктора». Рисуем курсором поле «Источник», переходим этим списком. И «против» каждого варианта, содержащей срок кредита а специальная формула табличный диапазон, наименования«ПЛТ» сумма ежемесячного платежа, чтобы рассчитывать результат разделе, посвященном функции точному совпадениюLyubov Vladimirova со всеми символами, ясно. Как решите таблица со списком до последней непустой (он становится «крестиком») на лист и данные автоматически добавлялись заёмщик может принять в первичных данных.
- неразрывного массива. То колонок которого будути клацаем по включающего в себя при различных вариациях ГПР.Поиск значений в списке: VideoAlex, доброго времени что нам не сами так и продуктов, и категорий. ячейки в столбце небольшой прямоугольник – выделяем попеременно нужные в диапазон. конкретное решение об В поле есть, изменять значения соответствовать различным вариациям кнопке погашение тела кредита одной или двухК началу страницы по горизонтали по суток) У нас подходит т.к. идентификатор ответ получите. Например, каши - А (Sheet1) место будущего списка. ячейки.Сформируем именованный диапазон. Путь: условиях кредитования, выбрав«Подставлять значения по строкам
- в отдельных ячейках процентной ставки. При«OK» и выплат по определенных переменных. ПослеДля выполнения этой задачи приблизительному совпадению возникли проблемы с всегда другой, вLyubov Vladimirova рис, гречка… Нужноx = Range(«A2»,Жмем «Свойства» – открываетсяТеперь создадим второй раскрывающийся «Формулы» — «Диспетчер
- наиболее отвечающий его в» теперь нельзя. Удалять этом строку. процентам. Для этого расчета все возможные используется функция ГПР.Создание формулы подстановки с макросом ) в конце (5W3229PU24E5U). А: Добрый день, Сергей. что-бы при выборе Cells(Rows.Count, 1).End(xlUp)).Value
- перечень настроек. список. В нем имен» — «Создать». пожеланиям вариант изуказываем адрес ячейки результаты расчета можно«Ежемесячные выплаты»Вслед за этим происходит в Экселе имеется варианты предстанут вВажно: помощью мастера подстановок англоязычной версии у можете, пожалуйста, пояснить 8-я и 2-я ячейки с выпадающимЗатем вы вводитеВписываем диапазон в строку должны отражаться те Вводим уникальное название всех возможных. исходных параметров, содержащей
- только все вместе,оставляем так, как активация окошка аргументов оператор виде таблицы, которую Значения в первой (только Excel 2007) меня появляется такая алгоритм действий, если позиция отличны друг списком категорий, в в TextBox1 какую-либо ListFillRange (руками). Ячейку, слова, которые соответствуют диапазона – ОК.Конечно, таблицу подстановок можно величину тела кредита. а не по есть. В первой вышеуказанной функции.ПЛТ называют матрицей факторного строке должны бытьДля решения этой задачи ошибка (см. скриншот) не сложно? Я от друга, ничего другой ячейке формировался букву, срабатывает процедура
- куда будет выводиться выбранному в первомСоздаем раскрывающийся список в использовать не только После того, как отдельности. её ячейке должнаСтавим курсор в поле. анализа. отсортированы по возрастанию. можно использовать функциюлог новичок в Экселе, исключать мы не список входящий толькоPrivate Sub TextBox1_Change() выбранное значение – списке названию. Если любой ячейке. Как для расчета кредитных
все данные введены.Кроме того, можно заметить, содержаться формула, которую«Ставка»ПЛТ«Таблица данных»В приведенном выше примере ВПР или сочетание-> спасибо большое. можем. В том-то в эту категорию. и в ListBox1
в строку LinkedCell. «Деревья», то «граб», это сделать, уже вариантов, но и Клацаем по кнопке что величина ежемесячного мы рассчитали ранее., после чего кликаем
относится к группеотносится к группе
Способ 2: использование инструмента с двумя переменными
функция ГПР ищет функций ИНДЕКС иerror111720_02.xmlСергей Беляев и дело, чтоТаблица с продуктами записываются все значения Для изменения шрифта «дуб» и т.д. известно. Источник – для решения множества«OK» платежа при 12.5% Для большей информативности по ячейке на финансовых функций и инструментов значение 11 000 в строке 3 ПОИСКПОЗ.Errors were detected: Извиняюсь, что забыл
- я сама не построена по принципу из и размера – Вводим в поле имя диапазона: =деревья. других задач.. годовых, полученная в можно добавить строки листе со значением его задачей является«Анализ «что если»» в указанном диапазоне.Дополнительные сведения см. в in file ‘C:UsersUser_XDownloads1 решение приложить. могу это решить ячейка 1 категория,диапазона х, начинающиеся Font. «Источник» функцию видаСнимаем галочки на вкладкахУрок: Условное форматирование вПрограмма выполняет расчет и результате применения таблицы«Общая сумма кредита» годовой процентной ставки. вычисление ежемесячного кредитного, которая размещена на Значение 11 000 отсутствует, поэтому разделе, посвященном функции
- (2).xlsm’VideoAlex ) Придется программу ячейка 2 продукт. на эту букву.Скачать пример выпадающего списка =ДВССЫЛ(E3). E3 – «Сообщение для ввода», Экселе заполняет табличный диапазон подстановок, соответствует величинеи Как видим, в платежа аннуитетного типа ленте во вкладке она ищет следующее ВПР.-
- : Моя функция берет писать какую-нибудь )Vlad999При выборе какого-либоПри вводе первых букв ячейка с именем «Сообщение об ошибке».В общем, нужно отметить, данными. На пересечении при том же«Общая сумма процентов» поле тут же на основании суммы«Данные» максимальное значение, неЧто означает:Removed Part: /xl/vbaProject.bin столько сколько ей Раз Экселем нет: Условия Excel 2007 значения в ListBox1
- с клавиатуры высвечиваются первого диапазона. Если этого не что таблица подстановок строк и столбцов размере процентов, которую. Столбец, в котором отображаются её координаты. тела кредита, срокав блоке
- превышающее 11 000, и возвращает=ИНДЕКС(нужно вернуть значение из part. (Visual Basic дают решения. Спасибо) не это ищете? происходит выделение этого подходящие элементы. ИБывает, когда из раскрывающегося сделать, Excel не является очень полезным теперь можно наблюдать, мы получили путем находится расчет, делаем Но, как мы кредитования и процентной«Работа с данными»
- 10 543. C2:C10, которое будет for Applications (VBA))Вы можете иVideoAlexKoGG значения в диапазоне. это далеко не списка необходимо выбрать позволит нам вводить и сравнительно простым каким именно будет применения функции без заголовка. помним, нам нужна ставки. Синтаксис этой
- . До версии ExcelДополнительные сведения см. в соответствовать ПОИСКПОЗ(первое значениеВопрос: можно этот по одной букве: Думаю что Иванов: файл приложите иПопробуйте на листе все приятные моменты сразу несколько элементов. новые значения. инструментом для определения ежемесячный платеж, приПЛТДалее рассчитаем общую сумму месячная ставка, а функции представлен в 2007 этот инструмент разделе, посвященном функции «Капуста» в массиве макрос мне в искать соответствие, но и Дима это опишите в какой
- Sheet1 заполнить базу данного инструмента. Здесь Рассмотрим пути реализацииВызываем редактор Visual Basic.
результата при различных соответствующей величине годовых. Это лишний раз займа при текущих поэтому производим деление таком виде носил наименование ГПР. B2:B10)) Plain Text увидеть? вероятность ошибки будет один человек и ячейке вып. список
данных, нажав на можно настраивать визуальное задачи. Для этого щелкаем комбинациях переменных. Применив процентов и указанном доказывает правильность расчета. условиях. Для этого полученного результата на=ПЛТ(ставка;кпер;пс;бс;тип)«Таблица подстановки»
К началу страницыФормула ищет в C2:C10 Ибо компьютер ругается очень велика зарплата Иванову будет и где должно стрелку Заполнить.. ( представление информации, указыватьСоздаем стандартный список с правой кнопкой мыши
одновременно с ним сроке кредитования.Проанализировав данный табличный массив, выделяем первую ячейку 12 («Ставка»
, что даже болееПримечание:
первое значение, соответствующее на него иVideoAlex или Диме - появляться содержание выбранной в В1 установите в качестве источника помощью инструмента «Проверка по названию листа условное форматирование, кромеКак видим, значений довольно
следует сказать, что,
lumpics.ru
Выпадающий список в Excel с помощью инструментов или макросов
строки/12— аргумент, определяющий точно отражало его Поддержка надстройки «Мастер подстановок» значению рубит на корню.
: Алгоритм прост до не критично. ТС категории. 20 – сразу два столбца. данных». Добавляем в и переходим по того, можно визуализировать много. Для решения как видим, только
Создание раскрывающегося списка
«Общая сумма кредита»). процентную ставку кредитных суть, чем нынешнее в Excel 2010
Капуста Прикрепленные файлы Error_Message1.png безобразия. просто устала и
- Сделано.будет 20 случайных
- Marina_Spb исходный код листа вкладке «Исходный текст». полученную информацию.
- других задач их при ставке 9,5%и умножаем содержимоеВ поле
выплат. Показатель выставляется название.
прекращена. Эта надстройка
Выпадающий список в Excel с подстановкой данных
(B7), и возвращает (4.52 КБ)Функция берет каждое по запарке дваLybo4ka значений).: Здравствуйте! готовый макрос. Как
- Либо одновременно нажимаемАвтор: Максим Тютюшев может быть ещё годовых получается приемлемый
- ячеек«Кпер» за период. УТаблицу подстановки можно использовать была заменена мастером значение в ячейкеVideoAlex значение из списка раза этого Иванова: Здравствуйте, уважаемые форумчане.Затем кликните ПоискСделала выбор из это делать, описано
- клавиши Alt +Под выпадающим списком понимается больше. Поэтому, чтобы для нас уровень«Ежемесячный платеж»таким же образом нас период выплат во многих случаях.
функций и функциями C7 (: Public Function Morgan_Freeman(chto
соответствий и сравнивает воткнула. Сергей Беляев,
Столкнулись с одной
с формой и списка, все хорошо, выше. С его
F11. Копируем код содержание в одной сделать выдачу результатов ежемесячного платежа (менееи вносим координаты ячеек равен месяцу. Поэтому
- Например, типичный вариант, для работы со100 As String, gde его с НАЧАЛОМ
- хотелось бы посмотреть задачкой, с которой проделайте процедуру, описанную но когда 200 помощью справа от
- (только вставьте свои ячейке нескольких значений. более наглядной и 29000 рублей).«Срок кредита» срока кредита. В годовую ставку в
- когда нужно рассчитать ссылками и массивами.). As Range) Dim заданной строки. Когда на решение. не можем справиться, выше. значений (ФИО), сложно выпадающего списка будут параметры).Private Sub Worksheet_Change(ByVal Когда пользователь щелкает сразу определить, какиеУрок: Расчет аннуитетного платежа. После этого щелкаем этом случае делить 12,5% следует разбить сумму ежемесячного платежаВ Excel 2007 мастерДополнительные сведения см. в arr(), i As находит совпадение простоLybo4ka, макросы подойдут? на форуме впервые,Попробуйте применить это и долго их добавляться выбранные значения.Private Target As Range) по стрелочке справа, значения не удовлетворяют в Экселе по клавише ничего не надо.
- на число месяцев по кредиту при
- подстановок создает формулу разделах, посвященных функциям Integer arr = берет соответствующее значениеПока писал ТС надеюсь на любезность к своему файлу искать в списке.
Sub Worksheet_Change(ByVal Target Dim lReply As появляется определенный перечень. заданному условию, можноКонечно, отыскать в настоящееEnter
В поле в году, то различных вариациях периода
Выпадающий список в Excel с данными с другого листа/файла
подстановки, основанную на ИНДЕКС и ПОИСКПОЗ. gde For i из списка соответствий. ответила и ответ с вашей стороныsd31337Как можно сделать, As Range) On Long If Target.Cells.Count Можно выбрать конкретное.
- использовать инструменты визуализации. время банки, которые.
- «Пс» есть, 12. кредитования и суммы
данных листа, содержащихК началу страницы = 1 To Извините за тафталогию меня поразил. Как и подсказке, можно: Добрый день! что бы при Error Resume Next > 1 Then
Как сделать зависимые выпадающие списки
Очень удобный инструмент Excel
В нашем случае выдают кредит подДля расчета общей суммынужно указать координаты«Кпер» займа, либо периода названия строк иДля выполнения этой задачи
- UBound(arr, 1) IfСергей Беляев тогда отличать Иванова
- ли нашу потребностьНе раз спасали наборе первых слов If Not Intersect(Target, Exit Sub If
- для проверки введенных это будет условное 9,5% годовых, очень процентов при текущих ячейки, содержащей величину— аргумент, определяющий кредитования и процентной столбцов. С помощью используется функция ВПР. Left(chto, Len(arr(i, 1))): Ексель как и от Дмитрия? реализовать при помощи
Выбор нескольких значений из выпадающего списка Excel
на Вашем форуме выскакивало нужное значение? Range(«Е2:Е9»)) Is Nothing Target.Address = «$C$2″ данных. Повысить комфорт
- форматирование. Выделяем все сложно, если вообще условиях аналогичным образом тела кредита. Выполняем численность периодов за ставки. Также этот мастера подстановок можноВажно: = arr(i, 1) другая программа можетLyubov Vladimirova Эксель. .Спасибо And Target.Cells.Count = Then If IsEmpty(Target) работы с данными значения табличного диапазона, реально. Поэтому посмотрим, отнимаем от общей это. Также ставим весь срок предоставления инструмент можно использовать найти остальные значения Значения в первой Then Morgan_Freeman =
- справиться с любой: Подойдет все, еслиВ Excel таблицеСтолкнулся с задачейSerge_007 1 Then Application.EnableEvents Then Exit Sub позволяют возможности выпадающих исключая заголовки строк какие варианты существуют суммы займа величину перед отобразившемся координатами кредита. В нашем при анализе моделей в строке, если строке должны быть arr(i, 2) Next проблемой(ну почти с будет работать…список справа-
- нам нужно автоматически добавления новых устройств: http://www.excelworld.ru/board/vba/tricks/find_in_database/9-1-0-27 = False If If WorksheetFunction.CountIf(Range(«Деревья»), Target)
списков: подстановка данных, и столбцов.
вложиться в приемлемый тела кредита. Для
знак примере период равен инвестиционных проектов. известно значение в
отсортированы по возрастанию.
End Function
любой). Проблема заключается
он будет дополняться,
сопоставить ячейки с к карте мониторингаMarina_Spb
Len(Target.Offset(0, 1)) = = 0 Then отображение данных другого
Перемещаемся во вкладку
уровень ежемесячного платежа
вывода результата на
«-» одному месяцу, а
Но также следует знать,
одном столбце, и
В приведенном выше примере
Влад в том, что («оплата за телефон, рандомным текстом (содержащим, .: Я правильно поняла,
Выпадающий список с поиском
- 0 Then Target.Offset(0, lReply = MsgBox(«Добавить листа или файла,«Главная» при различных комбинациях экран щелкаем по
- . Дело в том, срок кредитования составляет что чрезмерное применение наоборот. В формулах, функция ВПР ищет: Хых… Видали мы
- у вас противоречивые Платеж за одну
- однако, чёткие ключевыеРуками добавлять почти что это можно 1) = Target введенное имя « наличие функции поискаи клацаем по других переменных: величины
кнопке
что функция 3 года или данного инструмента может которые создает мастер имя первого учащегося такие траблы) Вылазит условия, поэтому ни услугу, платеж за слова, которые мы 600 объектов очень
exceltable.com
Подстановка данных при вводе из имеющегося списка (Формулы/Formulas)
только с помощью Else Target.End(xlToRight).Offset(0, 1)
& _ Target и зависимости. значку тела займа иEnterПЛТ
36 месяцев. Таким привести к торможению подстановок, используются функции с 6 пропусками в
на тех машинах,
на Си ни другую услугу, чтобы
загодя знаем), с долго , если макросов? = Target End & » в
Путь: меню «Данные» -«Условное форматирование» срока кредитования. При. Таким образом мыпо умолчанию выдает образом, количество периодов системы, так как
ИНДЕКС и ПОИСКПОЗ. диапазоне A2:B7. Учащихся
где при установке на на Асемблере в этих цифрах унифицированным описанием этих есть люди знающиеNic70y If Target.ClearContents Application.EnableEvents выпадающий список?», vbYesNo инструмент «Проверка данных»
. Он расположен в этом процентную ставку получаем сумму, которую итоговый результат именно
будет рано 36.
пересчет данных производитсяЩелкните ячейку в диапазоне. с офиса была снята даже вашу проблему не сидеть и ячеек, которое мы как из списка: Если к ячейке, = True End + vbQuestion) If — вкладка «Параметры». блоке инструментов оставим неизменной (12,5%).
переплачиваем при возврате с отрицательным знаком,«ПС» постоянно. Поэтому рекомендуетсяНа вкладке6 галка на установке
не решить. У не путаться из
также загодя подготовим в .тхт либо в которую нужно If End Sub lReply = vbYes
Тип данных –«Стили» В решении данной займа.
справедливо считая ежемесячный— аргумент, определяющий
в небольших табличныхФормулы пропусками в таблице нет,
VBA. вас нет условия. первого столбца..)мне бы
и которое должно из столбца , вводить, будет прилегатьЧтобы выбранные значения показывались
Then Range(«Деревья»).Cells(Range(«Деревья»).Rows.Count + «Список».на ленте. В задачи нам поможет
Теперь настало время применить кредитный платеж убытком.
приведенную стоимость кредита, массивах для решенияв группе
поэтому функция ВПРrango Вы не привели хотелось увидеть решение,
вставляться напротив них, подставить значения по
сам список, то снизу, вставляем другой 1, 1) =Ввести значения, из которых
раскрывшемся меню выбираем инструмент инструмент Но нам для то есть, это аналогичных задач не
Решения ищет первую запись
: Добрый день! пример Иванова Дмитрия как это можно в зависимости от
нужно мне критерию и макросов не
excelworld.ru
подставить значения из списка (Формулы/Formulas)
код обработчика.Private Sub Target End If
будет складываться выпадающий пункт«Таблица данных»
«Таблица данных» наглядности применения таблицы размер тела кредита использовать этот инструмент,
выберите команду со следующим максимальнымимеются листы с такого как у реализовать. содержащейся в нихСуть проблемы . надо. Worksheet_Change(ByVal Target As
End If End
список, можно разными
«Правила выделения ячеек»
с использованием двух
. Выделяем весь табличный
данных нужно, чтобы
на момент его
а применять копирование
Подстановка
значением, не превышающим названиями по месяцам вас во второйVideoAlex части текста. ФормулуЕсть список вида
А без Вашего Range) On Error
If End Sub способами:. В дополнительном списке переменных.
массив, кроме наименований
данное число было
выдачи. В нашем
формул с помощью
. 6. Она находит внутри которых одинаковые позиции. Если вам
: Когда ответите как ВПР / VLOOKUP50109 10.50.27.1 примера неизвестно. Resume Next IfСохраняем, установив тип файлаВручную через «точку-с-запятой» в кликаем по позицииЧертим новый табличный массив. строк. После этого положительным. Поэтому мы
случае этот показатель маркера заполнения.
Если команда значение 5 и возвращает
таблицы.
надо искать такого, отличить иванова от не подходит, так50111 10.50.27.129
Marina_Spb Not Intersect(Target, Range(«Н2:К2»)) «с поддержкой макросов». поле «Источник».
«Меньше…» Теперь в наименованиях переходим во вкладку и ставим знак
равен 900000 рублей.Оправданным применениеПодстановка
excelworld.ru
Подстановка при выборе из выпадающего списка
связанное с нимЗадача сделать сводную но после него дмитрия тогда можно как она ищет50117 10.50.29.1: Мозг вскипел) изучила Is Nothing AndПереходим на лист соВвести значения заранее. А. столбцов будет указываться
«Данные»«минус»«БС»«Таблицы данных»
недоступна, необходимо загрузить имя таблицу и универсальную
не будет больше будет взяться за или точное или50118 10.50.29.65 ссылку Сергея, ну Target.Cells.Count = 1 списком. Вкладка «Разработчик»
в качестве источника
CyberForum.ru
Автоматическая подстановка значений в необходимые ячейки
Вслед за этим открывается срок кредитования (от. Щелкаем по кнопкеперед одним из— аргумент, указывающийявляется только в надстройка мастера подстановок.Алексей формулу собирающую данные данных, то это решение а пока же примерное совпадение,
50122 10.50.30.65 не осилить мне Then Application.EnableEvents = — «Код» - указать диапазон ячеек окно настройки условного2 на ленте аргументов функции. Как на величину тела больших табличных диапазонах,Загрузка надстройки мастера подстановок. из всех листов, не проблема. смысла не вижу получается или ничего50130 10.50.32.65 это. Я даже False If Len(Target.Offset(1, «Макросы». Сочетание клавиш со списком. форматирования. В левомдо«Анализ «что если»» известно, умножение кредита на момент когда копирование формулНажмите кнопкуДополнительные сведения см. в с авто подстановкойМихаил С.Lyubov Vladimirova не комментирует, т.к.50133 10.50.33.1 не понимаю с 0)) = 0
для быстрого вызоваНазначить имя для диапазона поле указываем величину,6
, которая размещена в«минус» его полной выплаты. может отнять большоеMicrosoft Office разделе, посвященном функции
названия листов из: Lyubov Vladimirova, а: Хорошо, дайте мне точно совпадать кодгде чего начать. Пример Then Target.Offset(1, 0) – Alt + значений и в менее которой ячейкилет в месяцах группе инструментовна
Естественно, что данный
количество времени, а, а затем — ВПР. ячеек строки 1 вот к этим немного времени.
напротив фамилии не50109 хороший, но для = Target Else F8. Выбираем нужное поле источник вписать будут выделены. Как с шагом в«Работа с данными»«минус» показатель будет равен
во время самой кнопкуК началу страницыrango данным что соответствует?Вот здесь я будет 2 раза\ имя устройства профи. Target.End(xlDown).Offset(1, 0) = имя. Нажимаем «Выполнить». это имя. помним, нас удовлетворяет один год), а
(в Excel 2016в итоге дает нулю. Этот аргумент процедуры увеличивается вероятностьПараметры ExcelДля выполнения этой задачи: Другими словами нужноLyubov Vladimirova добавила ориентировочный именованный никогда или же10.50.27.1При том, что Target End If
Когда мы введем в
Любой из вариантов даст условие, при котором в строках — группа инструментов«плюс»
не является обязательным допущения ошибок. Нои выберите категорию используются функции СМЕЩ вместо обычной ссылки: Пожалуйста, не могли список тех значений, вписывает любое ближайшее\ IP адрес с обычными формулами Target.ClearContents Application.EnableEvents = пустую ячейку выпадающего такой результат. ежемесячный платеж по величина тела кредита
«Прогноз». параметром. Если его и в этомНадстройки и ПОИСКПОЗ. на ячейку другого
бы вы описать которые должны подставляться значение, т.е. любое
устройства excel я неплохо True End If списка новое наименование, кредиту будет составлять (от). Затем открывается небольшоеВ поля пропустить, то подразумевается, случае рекомендуется в
.Примечание: листа вида алгоритм данной функции? к каждой соответствующей описание, а намНеобходимо подряд подставить справляюсь) End Sub появится сообщение: «ДобавитьНеобходимо сделать раскрывающийся список
менее850000 меню. В нем«Бс» что он равен
диапазоне таблицы подстановкиВ поле Данный метод целесообразно использовать=сентябрь!R[1]C Если не сложно? строке. Извините пожалуйста, нужна чёткая идентификация значения вПрошу помощи!?Чтобы выбираемые значения отображались введенное имя баобаб со значениями из29000до выбираем позицию
и числу «0». отключить автоматический пересчетУправление при поиске данныхиспользовать формулу Спасибо. Если нет, если ввела в по части текста,Name=Marina_Spb в одной ячейке, в выпадающий список?». динамического диапазона. Еслирублей. Вписываем данное950000«Таблица данных…»«Тип»«Тип»
формул, во избежаниевыберите значение в ежедневно обновляемом
с подстановкой значения названия то ладно, будем заблуждение отправленным вначале т.е. по фамилии
50270: Спустя почти пять разделенные любым знакомНажмем «Да» и добавиться вносятся изменения в
число. В правомрублей с шагом.
данные вообще не— также необязательный излишней нагрузки наНадстройки Excel внешнем диапазоне данных. книги разбираться ) файлом со своими или по названию
\сюда добавить следующий часов разобралась я препинания, применим такой еще одна строка имеющийся диапазон (добавляются поле существует возможность10000Открывается небольшое окошко, которое вносим. Клацаем по аргумент. Он сообщает систему.и нажмите кнопку Известна цена виз ячейки: ВместоVideoAlex отметками. Здесь немного конторы, т.к. большинство объект немного что такое модуль. со значением «баобаб». или удаляются данные), выбора цвета выделения,рублей). При этом
так и называется кнопке о том, когдаГлавное отличие между различными
Перейти столбце B, носентябрь: Да вроде описал. понятнее информация выглядит? платежей у насLeft=43 макрос, даже смогла
Private Sub Worksheet_Change(ByValКогда значения для выпадающего
они автоматически отражаются хотя можно оставить обязательным условием является«Таблица данных»«OK» именно будет проводиться вариантами применения таблицы. неизвестно, сколько строк- формула.Lyubov VladimirovaVideoAlex повторяющиеся, но названия
Top=43 добавить перевод «из Target As Range) списка расположены на
в раскрывающемся списке. его и по то, чтобы ячейка,. Как видим, у. платеж: в начале данных состоит в
В области данных возвратит сервер,Не понимаю какую: Здравствуйте, к этим: Теперь появился вопрос у многих неочевидные.Group=8
цифры в сумму»,On Error Resume другом листе или
Выделяем диапазон для выпадающего умолчанию. После того, в которой находится него имеется дваПосле этого оператор производит периода (параметр –
количестве переменных, принимающихДоступные надстройки а первый столбец комбинацию нужно использовать данным будет соответствовать какая строка соответствующая.(ID=1
но с подстановкой
Next
в другой книге,
списка. В главном как все требуемые формула расчета (в
поля. Так как
подсчет и выводит«1» участие в вычислении:
установите флажок рядом не отсортирован вVlad999 «Зарплата Демида»(которое мы Так то первыйКак это теоретически можноAddress= значение из списка
If Not Intersect(Target, стандартный способ не меню находим инструмент настройки введены, клацаем нашем случае мы работаем с в заранее обозначенную) или в конце одна переменная или с пунктом алфавитном порядке.: Код =ДВССЫЛ(B$1&»!B»&СТРОКА(B3)) добавим впоследствиии, которые файл был гораздо
было бы реализовать10.50.67.65 не пойму как Range(«C2:C5»)) Is Nothing работает. Решить задачу «Форматировать как таблицу». по кнопкеПЛТ
planetaexcel.ru
Подстановка в формулу значения из ячейки в качестве названия листа
одной переменной, то ячейку результат общего
периода (параметр – две.Мастер подстановокC1
rango будут добавлены в понятнее. Этот файл) Подскажите, пожалуйста.\сюда добавить ip создать такие ячейки And Target.Cells.Count =
можно с помощьюОткроются стили. Выбираем любой.«OK»), располагалась на границе нам понадобится только ежемесячного платежа –«0»Сразу давайте рассмотрим вариант,и нажмите кнопку — это левая верхняя: Спасибо! будущем) Для того
просто два ничемИдентификационный код всегда
адрес этого объекта как в образце,
1 Then функции ДВССЫЛ: она
CyberForum.ru
Для решения нашей
Совет: Попробуйте использовать новые функции ПРОСМОТРX и XMATCH, а также улучшенные версии функций, описанные в этой статье. Эти новые функции работают в любом направлении и возвращают точные совпадения по умолчанию, что упрощает и упрощает работу с ними по сравнению с предшественниками.
Предположим, у вас есть список номеров офисов, и вам нужно знать, какие сотрудники работают в каждом из них. Таблица очень угрюмая, поэтому, возможно, вам кажется, что это сложная задача. С функцией подытов на самом деле это довольно просто.
Функции ВВ., а также ИНДЕКС и ВЫБОРПОЗ — одни из самых полезных функций в Excel.
Примечание: Мастер подметок больше не доступен в Excel.
Ниже в качестве примера по выбору вы можете найти пример использования в этой области.
=ВПР(B2;C2:E7,3,ИСТИНА)
В этом примере B2 является первым аргументом —элементом данных, который требуется для работы функции. В случае СРОТ ВЛ.В.ОВ этот первый аргумент является искомой значением. Этот аргумент может быть ссылкой на ячейку или фиксированным значением, таким как «кузьмина» или 21 000. Вторым аргументом является диапазон ячеек C2–:E7, в котором нужно найти и найти значение. Третий аргумент — это столбец в диапазоне ячеек, содержащий ищите значение.
Четвертый аргумент необязателен. Введите истина или ЛОЖЬ. Если ввести ИСТИНА или оставить аргумент пустым, функция возвращает приблизительное совпадение значения, указанного в качестве первого аргумента. Если ввести ЛОЖЬ, функция будет соответствовать значению, заведомо первому аргументу. Другими словами, если оставить четвертый аргумент пустым или ввести ИСТИНА, это обеспечивает большую гибкость.
В этом примере показано, как работает функция. При вводе значения в ячейку B2 (первый аргумент) в результате поиска в ячейках диапазона C2:E7 (2-й аргумент) выполняется поиск в ней и возвращается ближайшее приблизительное совпадение из третьего столбца в диапазоне — столбца E (третий аргумент).
Четвертый аргумент пуст, поэтому функция возвращает приблизительное совпадение. Иначе потребуется ввести одно из значений в столбец C или D, чтобы получить какой-либо результат.
Если вы хорошо разучились работать с функцией ВГТ.В.В., то в равной степени использовать ее будет легко. Вы вводите те же аргументы, но выполняется поиск в строках, а не в столбцах.
Использование индекса и MATCH вместо ВРОТ
При использовании функции ВПРАВО существует ряд ограничений, которые действуют только при использовании функции ВПРАВО. Это означает, что столбец, содержащий и look up, всегда должен быть расположен слева от столбца, содержащего возвращаемого значения. Теперь, если ваша таблица не построена таким образом, не используйте В ПРОСМОТР. Используйте вместо этого сочетание функций ИНДЕКС и MATCH.
В данном примере представлен небольшой список, в котором искомое значение (Воронеж) не находится в крайнем левом столбце. Поэтому мы не можем использовать функцию ВПР. Для поиска значения «Воронеж» в диапазоне B1:B11 будет использоваться функция ПОИСКПОЗ. Оно найдено в строке 4. Затем функция ИНДЕКС использует это значение в качестве аргумента поиска и находит численность населения Воронежа в четвертом столбце (столбец D). Использованная формула показана в ячейке A14.
Дополнительные примеры использования индексов и MATCH вместо В ПРОСМОТР см. в статье билла Https://www.mrexcel.com/excel-tips/excel-vlookup-index-match/ Билла Джилена (Bill Jelen), MVP корпорации Майкрософт.
Попробуйте попрактиковаться
Если вы хотите поэкспериментировать с функциями подытовки, прежде чем попробовать их с собственными данными, вот примеры данных.
Пример работы с ВЛОКОНПОМ
Скопируйте следующие данные в пустую таблицу.
Совет: Прежде чем врезать данные в Excel, установите для столбцов A–C ширину в 250 пикселей и нажмите кнопку «Перенос текста» (вкладка «Главная», группа «Выравнивание»).
Плотность |
Вязкость |
Температура |
0,457 |
3,55 |
500 |
0,525 |
3,25 |
400 |
0,606 |
2,93 |
300 |
0,675 |
2,75 |
250 |
0,746 |
2,57 |
200 |
0,835 |
2,38 |
150 |
0,946 |
2,17 |
100 |
1,09 |
1,95 |
50 |
1,29 |
1,71 |
0 |
Формула |
Описание |
Результат |
=ВПР(1,A2:C10,2) |
Используя приблизительное соответствие, функция ищет в столбце A значение 1, находит наибольшее значение, которое меньше или равняется 1 и составляет 0,946, а затем возвращает значение из столбца B в той же строке. |
2,17 |
=ВПР(1,A2:C10,3,ИСТИНА) |
Используя приблизительное соответствие, функция ищет в столбце A значение 1, находит наибольшее значение, которое меньше или равняется 1 и составляет 0,946, а затем возвращает значение из столбца C в той же строке. |
100 |
=ВПР(0,7,A2:C10,3,ЛОЖЬ) |
Используя точное соответствие, функция ищет в столбце A значение 0,7. Поскольку точного соответствия нет, возвращается сообщение об ошибке. |
#Н/Д |
=ВПР(0,1,A2:C10,2,ИСТИНА) |
Используя приблизительное соответствие, функция ищет в столбце A значение 0,1. Поскольку 0,1 меньше наименьшего значения в столбце A, возвращается сообщение об ошибке. |
#Н/Д |
=ВПР(2,A2:C10,2,ИСТИНА) |
Используя приблизительное соответствие, функция ищет в столбце A значение 2, находит наибольшее значение, которое меньше или равняется 2 и составляет 1,29, а затем возвращает значение из столбца B в той же строке. |
1,71 |
Пример ГВ.Г.В.В.
Скопируйте всю таблицу и вставьте ее в ячейку A1 пустого листа Excel.
Совет: Прежде чем врезать данные в Excel, установите для столбцов A–C ширину в 250 пикселей и нажмите кнопку «Перенос текста» (вкладка «Главная», группа «Выравнивание»).
Оси |
Подшипники |
Болты |
4 |
4 |
9 |
5 |
7 |
10 |
6 |
8 |
11 |
Формула |
Описание |
Результат |
=ГПР(«Оси»;A1:C4;2;ИСТИНА) |
Поиск слова «Оси» в строке 1 и возврат значения из строки 2, находящейся в том же столбце (столбец A). |
4 |
=ГПР(«Подшипники»;A1:C4;3;ЛОЖЬ) |
Поиск слова «Подшипники» в строке 1 и возврат значения из строки 3, находящейся в том же столбце (столбец B). |
7 |
=ГПР(«П»;A1:C4;3;ИСТИНА) |
Поиск буквы «П» в строке 1 и возврат значения из строки 3, находящейся в том же столбце. Так как «П» найти не удалось, возвращается ближайшее из меньших значений: «Оси» (в столбце A). |
5 |
=ГПР(«Болты»;A1:C4;4) |
Поиск слова «Болты» в строке 1 и возврат значения из строки 4, находящейся в том же столбце (столбец C). |
11 |
=ГПР(3;{1;2;3:»a»;»b»;»c»;»d»;»e»;»f»};2;ИСТИНА) |
Поиск числа 3 в трех строках константы массива и возврат значения из строки 2 того же (в данном случае — третьего) столбца. Константа массива содержит три строки значений, разделенных точкой с запятой (;). Так как «c» было найдено в строке 2 того же столбца, что и 3, возвращается «c». |
c |
Примеры индекса и match
В последнем примере функции ИНДЕКС и MATCH совместно возвращают номер счета с наиболее ранней датой и соответствующую дату для каждого из пяти городов. Так как дата возвращается как число, для ее формата используется функция ТЕКСТ. Функция ИНДЕКС использует результат, возвращенный функцией ПОИСКПОЗ, как аргумент. Сочетание функций ИНДЕКС и ПОИСКПОЗ используется в каждой формуле дважды — сперва для возврата номера счета, а затем для возврата даты.
Скопируйте всю таблицу и вставьте ее в ячейку A1 пустого листа Excel.
Совет: Перед тем как вировать данные в Excel, установите для столбцов A–D ширину в 250 пикселей и нажмите кнопку «Перенос текста» (вкладка «Главная», группа «Выравнивание»).
Счет |
Город |
Дата выставления счета |
Счет с самой ранней датой по городу, с датой |
3115 |
Казань |
07.04.12 |
=»Казань = «&ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Казань»,$B$2:$B$33,0),1)& «, Дата выставления счета: » & ТЕКСТ(ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Казань»,$B$2:$B$33,0),3),»m/d/yy») |
3137 |
Казань |
09.04.12 |
=»Орел = «&ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Орел»,$B$2:$B$33,0),1)& «, Дата выставления счета: » & ТЕКСТ(ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Орел»,$B$2:$B$33,0),3),»m/d/yy») |
3154 |
Казань |
11.04.12 |
=»Челябинск = «&ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Челябинск»,$B$2:$B$33,0),1)& «, Дата выставления счета: » & ТЕКСТ(ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Челябинск»,$B$2:$B$33,0),3),»m/d/yy») |
3191 |
Казань |
21.04.12 |
=»Нижний Новгород = «&ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Нижний Новгород»,$B$2:$B$33,0),1)& «, Дата выставления счета: » & ТЕКСТ(ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Нижний Новгород»,$B$2:$B$33,0),3),»m/d/yy») |
3293 |
Казань |
25.04.12 |
=»Москва = «&ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Москва»,$B$2:$B$33,0),1)& «, Дата выставления счета: » & ТЕКСТ(ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Москва»,$B$2:$B$33,0),3),»m/d/yy») |
3331 |
Казань |
27.04.12 |
|
3350 |
Казань |
28.04.12 |
|
3390 |
Казань |
01.05.12 |
|
3441 |
Казань |
02.05.12 |
|
3517 |
Казань |
08.05.12 |
|
3124 |
Орел |
09.04.12 |
|
3155 |
Орел |
11.04.12 |
|
3177 |
Орел |
19.04.12 |
|
3357 |
Орел |
28.04.12 |
|
3492 |
Орел |
06.05.12 |
|
3316 |
Челябинск |
25.04.12 |
|
3346 |
Челябинск |
28.04.12 |
|
3372 |
Челябинск |
01.05.12 |
|
3414 |
Челябинск |
01.05.12 |
|
3451 |
Челябинск |
02.05.12 |
|
3467 |
Челябинск |
02.05.12 |
|
3474 |
Челябинск |
04.05.12 |
|
3490 |
Челябинск |
05.05.12 |
|
3503 |
Челябинск |
08.05.12 |
|
3151 |
Нижний Новгород |
09.04.12 |
|
3438 |
Нижний Новгород |
02.05.12 |
|
3471 |
Нижний Новгород |
04.05.12 |
|
3160 |
Москва |
18.04.12 |
|
3328 |
Москва |
26.04.12 |
|
3368 |
Москва |
29.04.12 |
|
3420 |
Москва |
01.05.12 |
|
3501 |
Москва |
06.05.12 |
Skip to content
В статье показаны способы поиска (ВПР) нескольких значений в Excel на основе одного или нескольких условий и возврата нескольких результатов в столбце, строке или в отдельной ячейке.
При использовании Microsoft Excel для анализа данных вы часто можете оказаться в ситуации, когда вам нужно получить все совпадающие значения для определенного имени, наименования, артикула или какого-либо другого уникального идентификатора. Первое решение, которое приходит на ум, — это использование функции Excel ВПР (VLOOKUP). Но проблема в том, что она может возвращать только одно значение.
Поиск нескольких значений в Excel может быть выполнен с помощью совместного использования ряда функций. Если вы не являетесь экспертом в Excel, не спешите покидать эту страницу. Я постараюсь объяснить логику поиска, чтобы даже новичок мог понять формулы и настроить их для решения подобных задач.
Поиск нескольких позиций в Excel с помощью формулы
Как было сказано ранее, невозможно заставить функцию ВПР Excel возвращать несколько значений. Проблему можно решить, используя следующие функции в формуле массива:
- ЕСЛИ – оценивает условие и возвращает одно значение, если условие выполняется, и другое значение, если условие не выполняется.
- НАИМЕНЬШИЙ– получает N-е наименьшее значение в массиве.
- ИНДЕКС — возвращает элемент массива на основе указанных вами номеров строк и столбцов.
- СТРОКА — возвращает номер строки.
- СТОЛБЕЦ — возвращает номер столбца.
- ЕСЛИОШИБКА – перехватывает ошибки.
Ниже вы найдете несколько примеров таких формул. Их часто называют формулами ВПР нескольких значений, хотя сама функция ВПР здесь не используется. Дело в том, что часто под термином ВПР подразумевают любой поиск в Excel, какими бы формулами и функциями он ни осуществлялся.
Поиск нескольких значений и возврат результатов в столбец
Допустим, у вас есть имена продавцов в столбце А и товары, которые они продали, в столбце В. Таблица содержит несколько записей для каждого продавца. Ваша цель — получить список всех товаров, относящихся к данному человеку. Чтобы это сделать, выполните следующие действия:
- Введите список имен продавцов в какую-нибудь пустую строку того же или другого рабочего листа. В этом примере имена вводятся в ячейки D2:H2:
Совет. Чтобы быстро записать все имеющиеся в списке имена, вы можете использовать эту инструкцию — как получить список уникальных значений в Excel.
- Под именем выберите количество пустых ячеек, равное или превышающее максимально возможное количество совпадений, введите одно из следующих выражений и нажмите
Ctrl + Shift + Enter
для ввода его как формулы массива (в этом случае вы сможете редактировать формулу только сразу во всем диапазоне, где она введена). Или же вы можете записать это в левую верхнюю ячейку, также использовавCtrl + Shift + Enter
, а затем перетащить вниз еще на несколько ячеек (в этом случае вы сможете редактировать формулу в каждой ячейке отдельно).
=ЕСЛИОШИБКА(ИНДЕКС($B$3:$B$13; НАИМЕНЬШИЙ(ЕСЛИ(D$2=$A$3:$A$13; СТРОКА($B$3:$B$13)-2;»»); СТРОКА()-2));»»)
или
=ЕСЛИОШИБКА(ИНДЕКС($B$3:$B$13;НАИМЕНЬШИЙ(ЕСЛИ(D$2=$A$3:$A$13;СТРОКА($A$3:$A$13)-МИН(СТРОКА($A$3:$A$13))+1;»»); СТРОКА()-2));»»)
Как видите, первая формула немного компактнее, а вторая более универсальна и требует меньше модификаций (подробнее о синтаксисе и логике мы поговорим чуть дальше).
- Скопируйте формулу в соседние столбцы справа. Для этого перетащите маркер заполнения (небольшой квадрат в правом нижнем углу выбранного диапазона) вправо.
Результат ВПР нескольких значений в столбце будет выглядеть примерно так:
Здесь мы использовали первую формулу:
=ЕСЛИОШИБКА(ИНДЕКС($B$3:$B$13; НАИМЕНЬШИЙ(ЕСЛИ(D$2=$A$3:$A$13; СТРОКА($B$3:$B$13)-2;»»); СТРОКА()-2));»»)
Как это работает.
Это пример использования Excel от среднего до продвинутого уровня, который подразумевает базовые знания формул массива и функций Excel. Итак, разберём пошагово:
- Функция ЕСЛИ
В основе поиска – функция ЕСЛИ, чтобы получить позиции всех вхождений искомого значения в диапазоне поиска: ЕСЛИ(D$2=$A$3:$A$13; СТРОКА($B$3:$B$13) )-2;»»)
ЕСЛИ сравнивает искомое значение (D2) с каждым значением в диапазоне поиска (A3:A13) и, если совпадение найдено, возвращает относительную позицию строки; пустое значение («») в противном случае.
Относительная позиция вычисляется путем вычитания 2 из СТРОКА($B$3:$B$13), чтобы первая позиция с формулой имела порядковый номер 1 (то есть, 3-2=1). Если ваш диапазон вывода начинается со строки 2, тогда вычтите 1 и так далее. Результатом этой операции является массив {1;2;3;4;5;6;7;8;9;10;11}, который поступает в аргумент значение_если_истина функции ЕСЛИ.
Вместо приведенного выше вычисления вы можете использовать следующее выражение:
СТРОКА(столбец_просмотра) — МИН(СТРОКА(столбец_просмотра))+1
Оно возвращает тот же результат, но не требует каких-либо изменений независимо от местоположения возвращаемого столбца. В этом примере это будет СТРОКА($A$3:$A$13)-МИН(СТРОКА($A$3:$A$13))+1.
Итак, на данный момент у вас есть массив, состоящий из чисел (позиций совпадений) и пустых строк (несовпадений). Для ячейки D3 в этом примере у нас есть следующий массив:
=ЕСЛИОШИБКА(ИНДЕКС($B$3:$B$13; НАИМЕНЬШИЙ({1:»»:»»:»»:5:»»:»»:8:»»:»»:»»}; СТРОКА()-2));»»)
Если вы сверитесь с исходными данными, вы увидите, что «Сергей» (значение поиска в D2) появляется на 1- й , 5 -й и 8 -й позициях в диапазоне поиска (A3: A13).
- Функция НАИМЕНЬШИЙ
Затем вступает в действие функция НАИМЕНЬШИЙ(массив; k), чтобы определить, какие совпадения должны быть возвращены в конкретной ячейке.
С уже установленным в предыдущем шаге массивом давайте определим аргумент k , т. е. k-е наименьшее возвращаемое значение. Для этого вы делаете своего рода «инкрементный счетчик» СТРОКА()-n, где «n» — это номер строки первой ячейки формулы минус 1. В этом примере мы ввели формулу в ячейки D3:D7, поэтому СТРОКА()-2 возвращает «1» для ячейки D3 (строка 3 минус 2), «2» для ячейки D4 (строка 4 минус 2) и т. д.
В результате функция НАИМЕНЬШИЙ извлекает первый наименьший элемент массива в ячейку D3, второй наименьший элемент в ячейку D4 и так далее. И это превращает первоначальную длинную и сложную формулу в очень простую, например:
=ЕСЛИОШИБКА(ИНДЕКС($B$3:$B$13;{1});»»)
Совет. Чтобы увидеть значение, вычисленное определенной частью формулы, выделите эту часть в самой формуле и нажмите F9.
- Функция ИНДЕКС
Здесь все просто. Вы используете функцию ИНДЕКС, чтобы вернуть значение элемента массива на основе его номера.
- Функция ЕСЛИОШИБКА
И, наконец, вы оборачиваете формулу в функцию ЕСЛИОШИБКА для обработки возможных ошибок, которые неизбежны, потому что вы не можете знать, сколько совпадений будет возвращено для того или иного искомого значения. Ведь вы копируете формулу в число ячеек явно большее, чем количество возможных совпадений, то есть «с запасом». Чтобы не пугать пользователей кучей ошибок, просто замените их пустой строкой (пустой ячейкой).
Примечание. Обратите внимание на правильное использование абсолютных и относительных ссылок на ячейки в формуле. Все ссылки фиксированы, за исключением ссылки на относительный столбец в искомом значении (D$2), которая должна изменяться в зависимости от относительного положения столбцов, в которые копируется формула, чтобы возвращать совпадения для других имён.
На скриншоте ниже вы можете видеть, как работает вторая формула
=ЕСЛИОШИБКА(ИНДЕКС($B$3:$B$13;НАИМЕНЬШИЙ(ЕСЛИ(D$2=$A$3:$A$13;СТРОКА($A$3:$A$13)-МИН(СТРОКА($A$3:$A$13))+1;»»); СТРОКА()-2));»»)
Обобщив эти два решения, мы получим следующие общие формулы для ВПР нескольких значений в Excel, которые будут выведены в столбец:
Вариант 1 :
=ЕСЛИОШИБКА(ИНДЕКС(диапазон_возвращаемых_значений; НАИМЕНЬШИЙ(ЕСЛИ(искомое_значение = диапазон_искомых_значений; СТРОКА(диапазон_возвращаемых_значений)-m;»»); СТРОКА()-n));»»)
Вариант 2:
=ЕСЛИОШИБКА(ИНДЕКС(диапазон_возвращаемых_значений;НАИМЕНЬШИЙ(ЕСЛИ(искомое_значение = диапазон_искомых_значений;СТРОКА(диапазон_искомых_значений)-МИН(СТРОКА(диапазон_искомых_значений))+1;»»); СТРОКА()-n));»»)
где:
- m — номер строки первой ячейки в возвращаемом диапазоне минус 1.
- n — номер строки первой ячейки с формулой минус 1.
Примечание. В приведенном выше примере и n, и m равны 2, потому что наш диапазон возвращаемых значений начинается, да и сама формула расположена, в строке 3. В ваших таблицах Эксель это вполне могут быть и другие числа.
Поиск нескольких совпадений и возврат результатов в строке
Если вы хотите вернуть несколько найденных значений в строках, а не в столбцах, измените приведенные выше формулы Excel следующим образом:
=ЕСЛИОШИБКА(ИНДЕКС($B$3:$B$13; НАИМЕНЬШИЙ(ЕСЛИ($D3=$A$3:$A$13;СТРОКА($B$3:$B$13)-2;»»); СТОЛБЕЦ()-4));»»)
или
=ЕСЛИОШИБКА(ИНДЕКС($B$3:$B$13;НАИМЕНЬШИЙ(ЕСЛИ($D3=$A$3:$A$13;СТРОКА($A$3:$A$13)-МИН(СТРОКА($A$3:$A$13))+1;»»);СТОЛБЕЦ()-4)); «»)
Как и в предыдущем примере, обе они являются формулами массива, поэтому не забудьте нажать комбинацию Ctrl + Shift + Enter, чтобы записать их правильно.
Формулы работают с той же логикой, что и в предыдущем примере, за исключением того, что вы используете функцию СТОЛБЕЦ вместо СТРОКА. Чтобы определить, какое совпадающее значение должно быть возвращено в конкретной ячейке, используем: СТОЛБЕЦ()-n где n — номер столбца первой ячейки, в которую вводится формула, минус 1. В этом примере результаты выводятся в диапазон E2:H2. Поскольку E является пятым столбцом, n равно 4 (5-1=4).
Примечание. Чтобы формула правильно копировалась вправо и вниз, обратите внимание на ссылки на значения поиска, где используется абсолютный адрес столбца и относительный адрес строки, например $D3.
И вот общие формулы для ВПР в Excel нескольких значений, возвращаемых по строке:
Формула 1 :
=ЕСЛИОШИБКА(ИНДЕКС(диапазон_возвращаемых_значений; НАИМЕНЬШИЙ(ЕСЛИ(искомое_значение = диапазон_искомых_значений; СТРОКА(диапазон_возвращаемых_значений)-m;»»); СТОЛБЕЦ()-n));»»)
Формула 2:
=ЕСЛИОШИБКА(ИНДЕКС(диапазон_возвращаемых_значений;НАИМЕНЬШИЙ(ЕСЛИ(искомое_значение = диапазон_искомых_значений;СТРОКА(диапазон_искомых_значений)-МИН(СТРОКА(диапазон_искомых_значений))+1;»»); СТОЛБЕЦ()-n));»»)
где:
- m — номер строки первой ячейки в возвращаемом диапазоне, минус 1.
- n — номер столбца первой ячейки, в которой записана формула, минус 1.
Поиск нескольких значений на основе нескольких условий
Вы уже знаете, как выполнять поиск нескольких значений в Excel на основе одного условия. Но что, если вы хотите вернуть несколько совпадений сразу на основе двух или более критериев? Продолжая предыдущие примеры – что, если у вас в таблице есть дополнительный столбец «Месяц» и вы хотите получить список всех товаров, проданных конкретным продавцом в определенном месяце?
Если вы знакомы с формулами массивов, то, возможно, помните, что они позволяют использовать знак умножения (*) в качестве логического оператора И. Таким образом, вы можете просто взять выражения, рассмотренные в двух предыдущих примерах, и заставить их проверять несколько условий, как показано ниже.
Как вернуть несколько значений в столбце.
Выведем искомые значения, соответствующие одновременно нескольким условиям, в привычном нам виде – вертикально в одном столбце.
В общем виде это выглядит так:
=ЕСЛИОШИБКА(ИНДЕКС(диапазон_возвращаемых_значений; НАИМЕНЬШИЙ(ЕСЛИ(1=((—(искомое_значение1 = диапазон_искомых_значений1)) * (—(искомое_значение2 = диапазон_искомых_значений2))) ; СТРОКА(диапазон_возвращаемых_значений)-m;»»); СТРОКА()-n));»»)
где:
- m — номер строки первой ячейки в возвращаемом диапазоне, минус 1.
- n — номер строки первой слева ячейки с формулой, минус 1.
Предположим, что список продавцов (диапазон_искомых_значений1) находится в A3:A30, список месяцев (диапазон_искомых_значений2) находится в B3: B30, интересующий продавец (искомое_значение1) указан в ячейке E3, а нужный месяц (искомое_значение2) – в ячейке F3. Тогда формула поиска принимает следующий вид:
=ЕСЛИОШИБКА(ИНДЕКС($C$3:$C$30; НАИМЕНЬШИЙ(ЕСЛИ(1=((—($E$3=$A$3:$A$30))*(—($F$3=$B$3:$B$30))); СТРОКА($C$3:$C$30)-2;»»); СТРОКА()-2));»»)
Таким образом, мы вводим имя в E3, месяц в F3, и получаем список товаров в столбце G:
Как вернуть несколько результатов в строке.
Если вы хотите получить по горизонтали несколько искомых значений на основе нескольких критериев, то есть когда результаты размещаются в одной строке, то используйте следующий общий шаблон:
=ЕСЛИОШИБКА(ИНДЕКС(диапазон_возвращаемых_значений; НАИМЕНЬШИЙ(ЕСЛИ(1=((—(искомое_значение1 = диапазон_искомых_значений1)) * (—(искомое_значение2 = диапазон_искомых_значений2))) ; СТРОКА(диапазон_возвращаемых_значений)-m;»»); СТОЛБЕЦ()-n));»»)
где:
- m — номер строки первой ячейки в возвращаемом диапазоне, минус 1.
- n — номер столбца первой слева ячейки, в которой записана формула, минус 1.
Для нашего примера набора данных формула выглядит следующим образом:
=ЕСЛИОШИБКА(ИНДЕКС($C$3:$C$30; НАИМЕНЬШИЙ(ЕСЛИ(1=((—($E3=$A$3:$A$30))*(—($F3=$B$3:$B$30))); СТРОКА($C$3:$C$30)-2;»»); СТОЛБЕЦ()-6));»»)
И результат ВПР нескольких значений по нескольким условиям может выглядеть так:
Аналогичным образом вы можете выполнять ВПР с тремя, четырьмя и более условиями.
Как это работает?
По сути, формулы для ВПР нескольких значений с несколькими условиями работают с уже знакомой логикой, объясненной в самом первом нашем примере. Единственное отличие состоит в том, что функция ЕСЛИ теперь проверяет несколько условий:
1=((—(искомое_значение1 = диапазон_искомых_значений1)) * (—(искомое_значение2 = диапазон_искомых_значений2)) * …..)
Результатом каждого сравнения (искомое_значение = диапазон_искомых_значений) является массив логических значений ИСТИНА (условие выполнено) и ЛОЖЬ (условие не выполнено). Двойное отрицание (—) переводит логические значения в единицы и нули. А поскольку умножение на ноль всегда дает ноль, в правой части этого равенства у вас будет получаться 1 только для тех элементов, которые удовлетворяют всем указанным вами условиям.
Вы просто сравниваете окончательный массив нулей и единиц с числом 1, чтобы функция СТРОКА вернула порядковые номера строк, удовлетворяющих всем условиям, в противном случае — пустоту.
Напоминание. Все формулы поиска, обсуждаемые в этой статье, являются формулами массива. Таким образом, каждая из них перебирает все элементы массива каждый раз, когда исходные данные изменяются или рабочий лист пересчитывается. На больших листах, содержащих сотни или тысячи позиций, это может значительно замедлить работу Excel.
Как вернуть несколько значений ВПР в одну ячейку
Мы продолжаем работать с набором данных, который использовали в предыдущем примере. Но на этот раз мы хотим добиться другого результата — вместо того, чтобы извлекать несколько совпадений в отдельные ячейки, мы хотим, чтобы они отображались в одной текстовой ячейке, разделенные запятой, пробелом или другим разделителем по вашему выбору.
Используем выражение, которое мы рассматривали чуть выше и которая позволяет получить несколько результатов ВПР с условиями в одной строке:
=ЕСЛИОШИБКА(ИНДЕКС($C$3:$C$30; НАИМЕНЬШИЙ(ЕСЛИ(1=((—($E3=$A$3:$A$30))*(—($F3=$B$3:$B$30))); СТРОКА($C$3:$C$30)-2;»»); СТОЛБЕЦ()-6));»»)
Внесем в нее небольшие изменения.
Чтобы обработать сразу несколько результатов, в функцию СТОЛБЕЦ добавим аргумент – диапазон ячеек, в который мы ранее копировали формулу. То есть, вместо СТОЛБЕЦ() у нас теперь будет СТОЛБЕЦ(G3:K3). Это позволит формуле массива получить сразу несколько номеров столбцов.
Затем применим крайне полезную при работе с текстовыми значениями функцию ОБЪЕДИНИТЬ (доступна в Excel 2019 и более поздних версиях). Она позволит нам объединить несколько текстовых значений, отделив их друг от друга выбранным нами разделителем. К примеру, запятой с пробелом после нее.
Вот что у нас получится:
=ОБЪЕДИНИТЬ(«, «; ИСТИНА; ЕСЛИОШИБКА(ИНДЕКС($C$3:$C$30; НАИМЕНЬШИЙ(ЕСЛИ(1=((—($E3=$A$3:$A$30))*(—($F3=$B$3:$B$30))); СТРОКА($C$3:$C$30)-2;»»); СТОЛБЕЦ(G3:K3)-6));»»))
И видим результат ВПР нескольких значений в одной ячейке на этом скриншоте:
Еще один, более простой вариант, чтобы подтянуть несколько значений и вывести результат в одной ячейке:
=ОБЪЕДИНИТЬ(«, «;ИСТИНА;ЕСЛИ(($A$3:$A$30=E3)*($B$3:$B$30=F3)=1;$C$3:$C$30;»»))
Ее также нужно вводить как формулу массива:
Как найти несколько значений без дубликатов
А если так случится, что в результатах поиска будет несколько одинаковых значений? Пример таких данных вы можете видеть на скриншоте ниже. Естественно, выводить в ячейке несколько дубликатов было бы не совсем хорошо.
Если вы хотите получить в одной ячейке результаты поиска нескольких значений без повторов, попробуйте так:
=ОБЪЕДИНИТЬ(«, «; ИСТИНА; ЕСЛИ(ЕСЛИОШИБКА(ПОИСКПОЗ($C$3:$C$13; ЕСЛИ(E3=$A$3:$A$13; $C$3:$C$13; «»); 0);»»)=ПОИСКПОЗ(СТРОКА($C$3:$C$13); СТРОКА($C$3:$C$13)); $C$3:$C$13; «»))
Вставьте это выражение в нужную ячейку, не забыв завершить ввод комбинацией Ctrl+Shift+Enter
, так как это формула массива. Затем можете скопировать вниз по столбцу, чтобы получить данные по другим критериям выбора.
Как видите, мы получили в одной ячейке несколько значений, среди которых нет одинаковых, хотя в исходных данных таковые имеются.
Надеюсь, эти примеры будут вам полезны для поиска сразу нескольких значений в Excel. Благодарю вас за чтение.