Поиск и подстановка по нескольким условиям
Постановка задачи
Если вы продвинутый пользователь 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)
- Что такое формулы массива и как их использовать
- Как использовать связку функций ИНДЕКС и ПОИСКПОЗ вместо ВПР
- Как извлечь сразу все значения, а не только первое с помощью ВПР
Совет: Попробуйте использовать новые функции ПРОСМОТР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 |
Поиск значений в списке данных
Смотрите также я и хотела не связанных диапазона разный. Таких строкПример во вложении(на да и на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
Для решения нашей
Skip to content
В этом руководстве показано, как использовать ИНДЕКС и ПОИСКПОЗ в Excel и чем они лучше ВПР.
В нескольких недавних статьях мы приложили немало усилий, чтобы объяснить основы функции ВПР новичкам и предоставить более сложные примеры формул ВПР опытным пользователям. А теперь я постараюсь если не отговорить вас от использования ВПР, то хотя бы показать вам альтернативный способ поиска нужных значений в Excel.
- Краткий обзор функций ИНДЕКС и ПОИСКПОЗ
- Как использовать формулу ИНДЕКС ПОИСКПОЗ
- ИНДЕКС+ПОИСКПОЗ вместо ВПР?
- Поиск справа налево
- Двусторонний поиск в строках и столбцах
- ИНДЕКС ПОИСКПОЗ для поиска по нескольким условиям
- Как найти среднее, максимальное и минимальное значение
- Что делать с ошибками поиска?
Для чего это нужно? Потому что функция ВПР имеет множество ограничений, которые могут помешать вам получить желаемый результат во многих ситуациях. С другой стороны, комбинация ПОИСКПОЗ ИНДЕКС более гибкая и имеет много замечательных возможностей, которые во многих отношениях превосходят ВПР.
Функции Excel ИНДЕКС и ПОИСКПОЗ — основы
Поскольку целью этого руководства является демонстрация альтернативного способа выполнения поиска в Excel с использованием комбинации функций ИНДЕКС и ПОИСКПОЗ, мы не будем подробно останавливаться на их синтаксисе и использовании. Тем более, что это подробно рассмотрено в других статьях, ссылки на которые вы можете найти в конце этого руководства. Мы рассмотрим лишь минимум, необходимый для понимания общей идеи, а затем подробно рассмотрим примеры формул, раскрывающие все преимущества использования ПОИСКПОЗ и ИНДЕКС вместо ВПР.
Функция ИНДЕКС
Функция ИНДЕКС (в английском варианте – INDEX) возвращает значение в массиве на основе указанных вами номеров строк и столбцов. Синтаксис функции ИНДЕКС прост:
ИНДЕКС(массив,номер_строки,[номер_столбца])
Вот простое объяснение каждого параметра:
- массив — это диапазон ячеек, именованный диапазон или таблица.
- номер_строки — это номер строки в массиве, из которого нужно вернуть значение. Если этот аргумент опущен, требуется следующий – номер_столбца.
- номер_столбца — это номер столбца, из которого нужно вернуть значение. Если он опущен, требуется номер_строки.
Дополнительные сведения см. в статье Функция ИНДЕКС в Excel .
А вот пример формулы ИНДЕКС в самом простом виде:
=ИНДЕКС(A1:C10;2;3)
Формула выполняет поиск в ячейках с A1 по C10 и возвращает значение ячейки во 2-й строке и 3-м столбце, т. е. в ячейке C2.
Очень легко, правда? Однако при работе с реальными данными вы вряд ли когда-нибудь будете заранее знать, какие строки и столбцы вам нужны. Здесь вам пригодится ПОИСКПОЗ.
Функция ПОИСКПОЗ
Она ищет нужное значение в диапазоне ячеек и возвращает относительное положение этого значения в диапазоне.
Синтаксис функции ПОИСКПОЗ следующий:
ПОИСКПОЗ(искомое_значение, искомый_массив, [тип_совпадения])
- искомое_значение — числовое или текстовое значение, которое вы ищете.
- диапазон_поиска — диапазон ячеек, в которых будем искать.
- тип_совпадения — указывает, следует ли искать точное соответствие или наиболее близкое совпадение:
- 1 или опущено — находит наибольшее значение, которое меньше или равно искомому значению. Требуется сортировка массива поиска в порядке возрастания.
- 0 — находит первое значение, точно равное искомому значению. В комбинации ИНДЕКС/ПОИСКПОЗ вам почти всегда нужно точное совпадение, поэтому вы чаще всего устанавливаете третий аргумент вашей функции в 0.
- -1 — находит наименьшее значение, которое больше или равно искомому значению. Требуется сортировка массива поиска в порядке убывания.
Например, если диапазон B1:B3 содержит значения «яблоки», «апельсины», «лимоны», приведенная ниже формула возвращает число 3, поскольку «лимоны» — это третья по счету запись в этом диапазоне:
=ПОИСКПОЗ(«лимоны»;B1:B3;0)
Дополнительные сведения см . в статье Функция ПОИСКПОЗ в Excel .
На первый взгляд полезность функции ПОИСКПОЗ может показаться сомнительной. Кого волнует положение значения в диапазоне? Что мы действительно хотим определить, так это само значение.
Однако, относительная позиция искомого значения (т. е. номера строки и столбца, в которых оно находится) — это именно то, что нам нужно указать для аргументов номер_строки и номер_столбца функции ИНДЕКС. Как вы помните, ИНДЕКС может найти значение на пересечении заданной строки и столбца, но сама не может определить, какую именно строку и столбец ей нужно выбрать.
Вот поэтому совместное использование ИНДЕКС и ПОИСКПОЗ открывает перед нами массу возможностей для поиска в Excel.
Как использовать формулу ИНДЕКС ПОИСКПОЗ в Excel
Теперь, когда вы знаете основы, я считаю, что вы уже начали понимать, как ПОИСКПОЗ и ИНДЕКС работают вместе. Короче говоря, ИНДЕКС извлекает нужное значение по номерам столбцов и строк, а ПОИСКПОЗ предоставляет ей эти номера. Вот и все!
Для вертикального поиска вы используете функцию ПОИСКПОЗ только для определения номера строки, указывая диапазон столбцов непосредственно в самой формуле:
ИНДЕКС ( столбец для возврата значения ; ПОИСКПОЗ ( искомое значение ; столбец для поиска ; 0))
Все еще не совсем понимаете эту логику? Возможно, будет проще разобрать на примере. Предположим, у вас есть список национальных столиц и их население:
Чтобы найти население определенной столицы, скажем, Индии, используйте следующую формулу ПОИСКПОЗ ИНДЕКС:
=ИНДЕКС(C2:C10; ПОИСКПОЗ(“Индия”;A2:A10;0))
Теперь давайте проанализируем, что на самом деле делает каждый компонент этой формулы:
- Функция ПОИСКПОЗ ищет искомое значение «Индия» в диапазоне A2:A10 и возвращает число 2, поскольку это слово занимает второе место в массиве поиска.
- Этот номер поступает непосредственно в аргумент номер_строки функции ИНДЕКС, предписывая вернуть значение из этой строки.
Таким образом, приведенная выше формула превращается в ИНДЕКС(C2:C10;2), которая означает, что нужно искать в ячейках от C2 до C10 и извлекать значение из второй ячейки в этом диапазоне, то есть из C3, потому что мы начинаем отсчет со второй строки.
Но указывать название города в формуле не совсем правильно, так как для каждого нового поиска придется корректировать эту формулу. Введите его в какую-нибудь отдельную ячейку, скажем, F1, укажите ссылку на ячейку для ПОИСКПОЗ, и вы получите формулу динамического поиска:
=ИНДЕКС(C2:C10;ПОИСКПОЗ(F1;A2:A10;0))
Важное замечание! Количество строк в аргументе массив функции ИНДЕКС должно совпадать с количеством строк в аргументе просматриваемый_массив в ПОИСКПОЗ, иначе формула выдаст неверный результат.
Вы спросите: «А почему бы нам просто не использовать обычную формулу ВПР? Какой смысл тратить время на то, чтобы разобраться в хитросплетениях ИНДЕКС ПОИСКПОЗ в Excel?»
Вот как это будет выглядеть:
=ВПР(F1; A2:C10; 3; 0)
Конечно, так проще. Но этот наш элементарный пример предназначен только для демонстрационных целей, чтобы вы поняли, как именно функции ИНДЕКС и ПОИСКПОЗ работают вместе. Действительно, ВПР была бы здесь более уместна. Другие примеры, которые вы найдёте ниже, покажут вам реальную силу этой комбинации, которая легко справляется со многими сложными задачами, когда ВПР будет бессильна.
ИНДЕКС+ПОИСКПОЗ вместо ВПР?
Решая, какую функцию использовать для вертикального поиска, большинство знатоков Excel сходятся во мнении, что ПОИСКПОЗ+ИНДЕКС намного лучше, чем ВПР. Однако многие до сих пор остаются с ВПР, во-первых, потому что это проще, а, во-вторых, потому что они не до конца понимают все преимущества использования формулы ПОИСКПОЗ ИНДЕКС в Excel. Без такого понимания никто не захочет тратить свое время на изучение более сложного синтаксиса.
Ниже я укажу на ключевые преимущества ИНДЕКС ПОИСКПОЗ перед ВПР, а уж вам решать, является ли это достойным дополнением к вашему арсеналу знаний в Excel.
4 основные причины использовать ИНДЕКС ПОИСКПОЗ вместо ВПР
- Поиск справа налево. Как известно любому образованному пользователю, ВПР не может искать влево. Это означает, что искомое значение всегда должно находиться в крайнем левом столбце таблицы. А извлекать нужное значение мы будем из столбца, который находится правее. ИНДЕКС+ПОИСКПОЗ может легко выполнять поиск влево! Здесь это показано в действии: Как выполнить поиск значения слева в Excel .
- Можно безопасно вставлять или удалять столбцы. Формулы ВПР не работают или выдают неверные результаты, когда новый столбец удаляется из таблицы поиска или добавляется в нее, поскольку синтаксис ВПР требует указания порядкового номера столбца, из которого вы хотите извлечь данные. Естественно, когда вы добавляете или удаляете столбцы, этот номер в формуле автоматически не меняется, а нужный столбец уже оказывается на новом месте.
С функциями ИНДЕКС и ПОИСКПОЗ вы указываете диапазон возвращаемых столбцов, а не номер одного из них. В результате вы можете вставлять и удалять столько столбцов, сколько хотите, не беспокоясь об обновлении каждой связанной с ними формулы.
- Нет ограничений на размер искомого значения. При использовании функции ВПР общая длина ваших критериев поиска не может превышать 255 символов, иначе вы получите ошибку #ЗНАЧ!. Таким образом, если ваш набор данных содержит длинные строки, ИНДЕКС ПОИСКПОЗ — единственное работающее решение.
- Более высокая скорость обработки. Если ваши таблицы относительно небольшие, вряд ли будет какая-то существенная разница в производительности Excel. Но если ваши рабочие листы содержат сотни или тысячи строк и, следовательно, сотни или тысячи формул, ИНДЕКС ПОИСКПОЗ будет работать намного быстрее, чем ВПР. Причина в том, что Excel будет обрабатывать только столбцы поиска и возврата, а не весь массив таблицы.
Влияние ВПР на производительность Excel может быть особенно заметным, если ваша книга содержит сложные формулы массива. Чем больше значений содержит ваш массив и чем больше формул массива содержится в книге, тем медленнее работает Excel.
ИНДЕКС ПОИСКПОЗ в Excel – примеры формул
Уяснив, почему все же стоит изучать ИНДЕКС ПОИСКПОЗ, давайте перейдем к самому интересному и посмотрим, как можно применить теоретические знания на практике.
Формула для поиска справа налево
Как уже упоминалось, ВПР не может получать значения слева от столбца поиска. Таким образом, если ваши значения поиска не находятся в самом левом столбце, нет никаких шансов, что формула ВПР принесет вам желаемый результат. Функция ПОИСКПОЗ ИНДЕКС в Excel более универсальна и не имеет особого значения, где расположены столбцы поиска и возврата.
Для этого примера мы добавим столбец «Ранг» слева от нашей основной таблицы и попытаемся выяснить, какое место занимает столица России по численности населения среди других перечисленных столиц.
Записав искомое значение в G1, используйте следующую формулу для поиска в C2:C10 и возврата соответствующего значения из A2:A10:
=ИНДЕКС(A2:A10; ПОИСКПОЗ(G1;C2:C10;0))
Совет. Если вы планируете использовать формулу ПОИСКПОЗ ИНДЕКС более чем для одной ячейки, обязательно зафиксируйте оба диапазона абсолютными ссылками (например, $A$2:$A$10 и $C$2:$C$10), чтобы они не изменялись при копировании формулы.
Двусторонний поиск в строках и столбцах
В приведенных выше примерах мы использовали ИНДЕКС ПОИСКПОЗ вместо классической функции ВПР, чтобы вернуть значение из точно указанного столбца. Но что, если вам нужно искать в нескольких строках и столбцах? То есть, сначала нужно найти подходящий столбец, а уж потом извлечь из него значение? Другими словами, что, если вы хотите выполнить так называемый матричный или двусторонний поиск?
Это может показаться сложным, но формула очень похожа на базовую функцию ПОИСКПОЗ ИНДЕКС в Excel, но с одним отличием.
Просто используйте две функции ПОИСКПОЗ, вложенных друг в друга: одну – для получения номера строки, а другую – для получения номера столбца.
ИНДЕКС(массив; ПОИСКПОЗ(значение_поиска1 ; столбец_поиска ; 0); ПОИСКПОЗ(значение_поиска2 ; столбец_поиска ; 0))
А теперь, пожалуйста, взгляните на приведенную ниже таблицу и давайте составим формулу двумерного поиска, чтобы найти население (в миллионах) в данной стране за данный год.
С целевой страной в G1 (значение_поиска1) и целевым годом в G2 (значение_поиска2) формула принимает следующий вид:
=ИНДЕКС(B2:D11; ПОИСКПОЗ(G1;A2:A11;0); ПОИСКПОЗ(G2;B1:D1;0))
Как работает эта формула?
Всякий раз, когда вам нужно понять сложную формулу Excel, разделите ее на более мелкие части и посмотрите, что делает каждая отдельная функция:
ПОИСКПОЗ(G1;A2:A11;0); – ищет в A2:A11 значение из ячейки G1 («США») и возвращает его позицию, которая равна 3.
ПОИСКПОЗ(G2;B1:D1;0) – просматривает диапазон B1:D1, чтобы получить позицию значения из ячейки G2 («2015»), которая равна 3.
Найденные выше номера строк и столбцов становятся соответствующими аргументами функции ИНДЕКС:
ИНДЕКС(B2:D11, 3, 3)
В результате вы получите значение на пересечении 3-й строки и 3-го столбца в диапазоне B2:D11, то есть из D4. Несложно?
ИНДЕКС ПОИСКПОЗ для поиска по нескольким условиям
Если у вас была возможность прочитать наши материалы по ВПР в Excel, вы, вероятно, уже протестировали формулу для ВПР с несколькими условиями . Однако существенным недостатком этого подхода является необходимость добавления вспомогательного столбца. Хорошей новостью является то, что функция ПОИСКПОЗ ИНДЕКС в Excel также может выполнять поиск по нескольким условиям без изменения или реструктуризации исходных данных!
Вот общая формула ИНДЕКС ПОИСКПОЗ с несколькими критериями:
{=ИНДЕКС( диапазон_возврата; ПОИСКПОЗ (1; ( критерий1 = диапазон1 ) * ( критерий2 = диапазон2 ); 0))}
Примечание. Это формула массива , которую необходимо вводить с помощью сочетания клавиш Ctrl + Shift + Enter
.
Предположим, что в таблице ниже вы хотите найти значение на основе двух критериев: Покупатель и Товар.
Следующая формула ИНДЕКС ПОИСКПОЗ отлично работает:
=ИНДЕКС(C2:C10; ПОИСКПОЗ(1; (F1=A2:A10) * (F2=B2:B10); 0))
Где C2:C10 — это диапазон, из которого возвращается значение, F1 — это критерий1, A2:A10 — это диапазон для сравнения с критерием 1, F2 — это критерий 2, а B2:B10 — это диапазон для сравнения с критерием 2.
Не забудьте правильно ввести формулу, нажав Ctrl + Shift + Enter, и Excel автоматически заключит ее в фигурные скобки, как показано на скриншоте ниже:
Рис5
Если вы не хотите использовать формулы массива, добавьте в формулу в F4 еще одну функцию ИНДЕКС и завершите ее ввод обычным нажатием Enter:
=ИНДЕКС(C2:C10; ПОИСКПОЗ(1; ИНДЕКС((F1=A2:A10) * (F2=B2:B10); 0; 1); 0))
Разберем пошагово, как это работает.
Здесь используется тот же подход, что и в обычном сочетании ИНДЕКС ПОИСКПОЗ, где просматривается один столбец. Чтобы оценить несколько критериев, вы создаете два или более массива значений ИСТИНА и ЛОЖЬ, которые представляют совпадения и несовпадения для каждого отдельного критерия, а затем перемножаете соответствующие элементы этих массивов. Операция умножения преобразует ИСТИНА и ЛОЖЬ в 1 и 0 соответственно и создает массив, в котором единицы соответствуют строкам, которые удовлетворяют всем условиям. Функция ПОИСКПОЗ со значением поиска 1 находит первую «1» в массиве и передает ее позицию в ИНДЕКС, которая возвращает значение в этой позиции из указанного столбца.
Вторая формула без массива основана на способности функции ИНДЕКС работать с массивами. Второй вложенный ИНДЕКС имеет 0 в номер_строки , так что он будет передавать весь массив столбцов в ПОИСКПОЗ.
Среднее, максимальное и минимальное значение при помощи ИНДЕКС ПОИСКПОЗ
Microsoft Excel имеет специальные функции для поиска минимального, максимального и среднего значения в диапазоне. Но что, если вам нужно получить значение из другой ячейки, связанной с этими значениями? Например, получить название города с максимальным населением или узнать товар с минимальными продажами? В этом случае используйте функцию МАКС , МИН или СРЗНАЧ вместе с ИНДЕКС ПОИСКПОЗ.
Максимальное значение.
Предположим, нам нужно в списке городов найти столицу с самым большим населением. Чтобы найти наибольшее значение в столбце С и вернуть соответствующее ему значение из столбца В, находящееся в той же строке, используйте эту формулу:
=ИНДЕКС(B2:B10; ПОИСКПОЗ(МАКС(C2:C10); C2:C10; 0))
Скриншот с примером находится чуть ниже.
Минимальное значение
Теперь найдём город с самым маленьким населением в списке. Чтобы найти наименьшее число в столбце С и получить соответствующее ему значение из столбца В:
=ИНДЕКС(B2:B10; ПОИСКПОЗ(МИН(C2:C10); C2:C10; 0))
Ближайшее к среднему
Теперь мы находим город, население которого наиболее близко к среднему значению. Чтобы вычислить позицию, наиболее близкую к среднему значению показателя, рассчитанному из D2:D10, и получить соответствующее значение из столбца C, используйте следующую формулу:
=ИНДЕКС(B2:B10; ПОИСКПОЗ(СРЗНАЧ(C2:C10); C2:C10; -1 ))
В зависимости от того, как организованы ваши данные, укажите 1 или -1 для третьего аргумента (тип_совпадения) функции ПОИСКПОЗ:
- Если ваш столбец поиска (столбец D в нашем случае) отсортирован по возрастанию , поставьте 1. Формула вычислит наибольшее значение, которое меньше или равно среднему значению.
- Если ваш столбец поиска отсортирован по убыванию , введите -1. Формула вычислит наименьшее значение, которое больше или равно среднему значению.
- Если ваш массив поиска содержит значение , точно равное среднему, вы можете ввести 0 для точного совпадения. Никакой сортировки не требуется.
В нашем примере данные в столбце D отсортированы в порядке убывания, поэтому мы используем -1 для типа соответствия. В результате мы получаем «Токио», так как его население (13 189 000) является ближайшим, превышающим среднее значение (12 269 006).
Что делать с ошибками поиска?
Как вы, наверное, заметили, если формула ИНДЕКС ПОИСКПОЗ в Excel не может найти искомое значение, она выдает ошибку #Н/Д. Если вы хотите заменить это стандартное сообщение чем-то более информативным, оберните формулу ПОИСКПОЗ ИНДЕКС в функцию ЕСНД . Например:
=ЕСНД(ИНДЕКС(C2:C10; ПОИСКПОЗ(F1;A2:A10;0)); «Не найдено»)
И теперь, если кто-то вводит значение, которое не существует в диапазоне поиска, формула явно сообщит пользователю, что совпадений не найдено:
Если вы хотите перехватывать все ошибки, а не только #Н/Д, используйте функцию ЕСЛИОШИБКА вместо ЕСНД:
=ЕСЛИОШИБКА(ИНДЕКС(C2:C10; ПОИСКПОЗ(F1;A2:A10;0)); «Что-то пошло не так!»)
Пожалуйста, имейте в виду, что во многих ситуациях было бы не совсем правильно скрывать все такие ошибки, потому что они предупреждают вас о возможных проблемах в вашей формуле.
Итак, еще раз об основных преимуществах формулы ИНДЕКС ПОИСКПОЗ.
-
Возможен ли «левый» поиск?
-
Повлияет ли на результат вставка и удаление столбцов?
Вы можете вставлять и удалять столько столбцов, сколько хотите. На результат ИНДЕКС ПОИСКПОЗ это не повлияет.
-
Возможен ли поиск по строкам и столбцам?
Можно сначала найти подходящий столбец, а уж потом извлечь из него значение. Общий вид формулы:
ИНДЕКС(массив; ПОИСКПОЗ(значение_поиска1 ; столбец_поиска ; 0); ПОИСКПОЗ(значение_поиска2 ; столбец_поиска ; 0))
Подробную инструкцию смотрите здесь. -
Как сделать поиск ИНДЕКС ПОИСКПОЗ по нескольким условиям?
Можно выполнять поиск по двум или более условиям без добавления дополнительных столбцов. Вот формула массива, которая решит проблему:
{=ИНДЕКС( диапазон_возврата; ПОИСКПОЗ (1; ( критерий1 = диапазон1 ) * ( критерий2 = диапазон2 ); 0))}
Вот как можно использовать ИНДЕКС и ПОИСКПОЗ в Excel. Я надеюсь, что наши примеры формул окажутся полезными для вас.
Вот еще несколько статей по этой теме:
Поиск значений в списке данных
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).
Предположим, вам нужно найти расширение телефона сотрудника с помощью его номера, а также правильно оценить коэффициент Комиссии для суммы продажи. Вы ищете данные, чтобы быстро и эффективно находить определенные данные в списке и автоматически проверять, правильно ли используются данные. После того как вы просмотрит данные, вы можете выполнить вычисления и отобразить результаты, указав возвращаемые значения. Есть несколько способов поиска значений в списке данных и отображения результатов.
В этой статье
Поиск значений в списке по вертикали по точному совпадению
Для выполнения этой задачи можно использовать функцию ВПР или сочетание функций индекс и ПОИСКПОЗ.
Примеры использования функции ВПР
Дополнительные сведения можно найти в разделе функция ВПР.
Примеры ИНДЕКСов и СОВПАДЕНИй
=ИНДЕКС(нужно вернуть значение из C2:C10, которое будет соответствовать ПОИСКПОЗ(первое значение «Капуста» в массиве B2:B10))
Формула ищет первое значение в ячейке C2: C10, соответствующее капусты (в B7), и возвращает значение в C7 (100) — первое значение, соответствующее капусты.
Дополнительные сведения можно найти в разделе Функция индекс и функция ПОИСКПОЗ.
Поиск значений в списке по вертикали по приблизительному совпадению
Для этого используйте функцию ВПР.
Важно: Убедитесь, что значения в первой строке отсортированы в возрастающем порядке.
В приведенном выше примере функция ВПР ищет имя учащегося, у которого есть 6 тардиес в диапазоне A2: B7. В таблице нет записи для 6 тардиес, поэтому функция ВПР ищет следующее самое высокое соответствие ниже 6 и находит значение 5, связанное с первым именем Дэйв, и, следовательно, возвращает Дэйв.
Дополнительные сведения можно найти в разделе функция ВПР.
Поиск значений по вертикали в списке неизвестного размера с точным соответствием
Для выполнения этой задачи используйте функции СМЕЩ и ПОИСКПОЗ.
Примечание: Этот подход используется, если данные находятся в диапазоне внешних данных, который вы обновляете каждый день. Вы знаете, что в столбце B есть Цена, но вы не знаете, сколько строк данных возвращает сервер, а первый столбец не отсортирован по алфавиту.
C1 — это верхняя левая ячейка диапазона (также называемая начальной ячейкой).
Match («апельсины»; C2: C7; 0) ищет оранжевый цвет в диапазоне C2: C7. Не следует включать начальную ячейку в диапазон.
1 — количество столбцов справа от начальной ячейки, для которых должно быть возвращено возвращаемое значение. В нашем примере возвращаемое значение находится в столбце D, Sales.
Поиск значений в списке по горизонтали по точному совпадению
Для выполнения этой задачи используется функция ГПР. Ниже приведен пример.
Функция ГПР выполняет поиск по столбцу Sales и возвращает значение из строки 5 в указанном диапазоне.
Дополнительные сведения можно найти в разделе функции ГПР.
Поиск значений в списке по горизонтали с использованием приблизительного совпадения
Для выполнения этой задачи используется функция ГПР.
Важно: Убедитесь, что значения в первой строке отсортированы в возрастающем порядке.
В приведенном выше примере функция ГПР ищет значение 11000 в строке 3 в указанном диапазоне. Он не находит 11000 и, следовательно, ищет следующее наибольшее значение, которое меньше 1100 и возвращает число 10543.
Дополнительные сведения можно найти в разделе функции ГПР.
Создание формулы подстановки с помощью мастера подстановок (толькоExcel 2007 )
Примечание: Надстройка «Мастер подстановок» прекращена в Excel 2010. Эти функциональные возможности заменены мастером функций и доступными функциями поиска и работы со ссылками (ссылками).
В Excel 2007 мастер подстановок создает формулу подстановки на основе данных листа, имеющих заголовки строк и столбцов. Мастер подстановок помогает находить другие значения в строке, когда вы знаете значение в одном столбце, и наоборот. Мастер подстановок использует индекс и СОВПАДЕНИе в создаваемых формулах.
Щелкните ячейку в диапазоне.
На вкладке формулы в группе решения нажмите кнопку Подстановка .
Если команда подстановка недоступна, необходимо загрузить мастер подстановок надстройка программу.
Загрузка программы-надстройки «Мастер подстановок»
Нажмите кнопку Microsoft Office , щелкните Параметры Excelи выберите категорию надстройки.
В поле Управление выберите элемент Надстройки Excel и нажмите кнопку Перейти.
В диалоговом окне надстройки установите флажок Мастер подстановоки нажмите кнопку ОК.
Выборка значений из таблицы Excel по условию
Если приходиться работать с большими таблицами определенно найдете в них дублирующийся суммы разбросаны вдоль целого столбца. В тоже время у вас может возникнуть необходимость выбрать данные из таблицы с первым наименьшим числовым значением, которое имеет свои дубликаты. Нужна автоматическая выборка данных по условию. В Excel для этой цели можно успешно использовать формулу в массиве.
Как сделать выборку в Excel по условию
Чтобы определить соответствующие значение первому наименьшему числу нужна выборка из таблицы по условию. Допустим мы хотим узнать первый самый дешевый товар на рынке из данного прайса:
Автоматическую выборку реализует нам формула, которая будет обладать следующей структурой:
В месте «диапазон_данных_для_выборки» следует указать область значений A6:A18 для выборки из таблицы (например, текстовых), из которых функция ИНДЕКС выберет одно результирующие значение. Аргумент «диапазон» означает область ячеек с числовыми значениями, из которых следует выбрать первое наименьшее число. В аргументе «заголовок_столбца» для второй функции СТРОКА, следует указать ссылку на ячейку с заголовком столбца, который содержит диапазон числовых значений.
Естественно эту формулу следует выполнять в массиве. Поэтому для подтверждения ее ввода следует нажимать не просто клавишу Enter, а целую комбинацию клавиш CTRL+SHIFT+Enter. Если все сделано правильно в строке формул появятся фигурные скобки.
Обратите внимание ниже на рисунок, где в ячейку B3 была введена данная формула в массиве:
Выборка соответственного значения с первым наименьшим числом:
С такой формулой нам удалось выбрать минимальное значение относительно чисел. Далее разберем принцип действия формулы и пошагово проанализируем весь порядок всех вычислений.
Как работает выборка по условию
Ключевую роль здесь играет функция ИНДЕКС. Ее номинальное задание – это выбирать из исходной таблицы (указывается в первом аргументе – A6:A18) значения соответственные определенным числам. ИНДЕКС работает с учетом критериев определённых во втором (номер строки внутри таблицы) и третьем (номер столбца в таблице) аргументах. Так как наша исходная таблица A6:A18 имеет только 1 столбец, то третий аргумент в функции ИНДЕКС мы не указываем.
Чтобы вычислить номер строки таблицы напротив наименьшего числа в смежном диапазоне B6:B18 и использовать его в качестве значения для второго аргумента, применяется несколько вычислительных функций.
Функция ЕСЛИ позволяет выбрать значение из списка по условию. В ее первом аргументе указано где проверяется каждая ячейка в диапазоне B6:B18 на наличие наименьшего числового значения: ЕСЛИB6:B18=МИНB6:B18. Таким способом в памяти программы создается массив из логических значений ИСТИНА и ЛОЖЬ. В нашем случаи 3 элемента массива будут содержат значение ИСТИНА, так как минимальное значение 8 содержит еще 2 дубликата в столбце B6:B18.
Следующий шаг – это определение в каких именно строках диапазона находится каждое минимальное значение. Это нам необходимо по причине определения именно первого наименьшего значения. Реализовывается данная задача с помощью функции СТРОКА, она заполняет элементы массива в памяти программы номерами строк листа. Но сначала от всех этих номеров вычитается номер на против первой строки таблицы – B5, то есть число 5. Это делается потому, что функция ИНДЕКС работает с номерами внутри таблицы, а не с номерами рабочего листа Excel. В тоже время функция СТРОКА умеет возвращать только номера строк листа. Чтобы не получилось смещение необходимо сопоставить порядок номеров строк листа и таблицы с помощи вычитанием разницы. Например, если таблица находится на 5-ой строке листа значит каждая строка таблицы будет на 5 меньше чем соответственная строка листа.
После того как будут отобраны все минимальные значения и сопоставлены все номера строк таблицы функция МИН выберет наименьший номер строки. Эта же строка будет содержать первое наименьшее число, которое встречается в столбце B6:B18. На основании этого номера строки функции ИНДЕКС выберет соответствующее значение из таблицы A6:A18. В итоге формула возвращает это значение в ячейку B3 в качестве результата вычисления.
Как выбрать значение с наибольшим числом в Excel
Поняв принцип действия формулы, теперь можно легко ее модифицировать и настраивать под другие условия. Например, формулу можно изменить так, чтобы выбрать первое максимальное значение в Excel:
Если необходимо изменить условия формулы так, чтобы можно было в Excel выбрать первое максимальное, но меньше чем 70:
=70;»»;B6:B18));СТРОКА(B6:B18)-СТРОКА(B5);»»)))’ class=’formula’>
Как в Excel выбрать первое минимальное значение кроме нуля:
Как легко заметить, эти формулы отличаются между собой только функциями МИН и МАКС и их аргументами.
Теперь Вас ни что не ограничивает. Один раз разобравшись с принципами действия формул в массиве Вы сможете легко модифицировать их под множество условий и быстро решать много вычислительных задач.
Вывод отобранных значений в отдельный диапазон в Excel. Бесплатные примеры и статьи.
Пять последних значений в MS EXCEL
Найдем, формулу возвращающую ссылку на диапазон, содержащий 5 последних значений. Если столбец со значениями постоянно заполняется, то эта задача перестает быть тривиальной.
Удаляем в MS EXCEL пропуски в списке (формулы)
Если список значений содержит пропуски (пустые ячейки), то это может существенно затруднить его дальнейший анализ. С помощью сортировки уберем пустые ячейки из списка, сформировав формулами список в соседнем столбце.
Запрос на выборку данных (формулы) в MS EXCEL
Суть запроса на выборку – выбрать из исходной таблицы строки, удовлетворяющие определенным критериям (подобно применению стандартного Фильтра). Произведем отбор значений из исходной таблицы с помощью формул массива. В отличие от применения Фильтра (CTRL+SHIFT+L или Данные/ Сортировка и фильтр/ Фильтр ) отобранные строки будут помещены в отдельную таблицу.
Отбор уникальных значений (убираем повторы из списка) в MS EXCEL
Имея список с повторяющимися значениями, создадим список, состоящий только из уникальных значений. При добавлении новых значений в исходный список, список уникальных значений должен автоматически обновляться.
Вывод итогов столбцов по строкам в MS EXCEL
Пусть имеется 5 столбцов с данными. В каждом столбце по 10 чисел, необходимо найти сумму чисел в каждом столбце. Обычно итоговое значение выводится внизу столбца или над его заголовком, поэтому все итоговые значения располагаются в одной строке. Но когда столбцов слишком много, то удобнее итоговые значения столбцов выводить в один отдельный столбец, а не располагать их под данными. Напишем формулу, которая помогает сделать это преобразование.
Отбор неповторяющихся значений со значениями из соседнего столбца в MS EXCEL
Имея список с повторяющимися текстовыми значениями, создадим список, состоящий только из неповторяющихся значений. А из столбца соседнего с исходным, выведем соответствующие им числовые значения.
Отбор неповторяющихся значений в MS EXCEL
Имея список с повторяющимися значениями, создадим список, состоящий только из значений, которые не повторяются.
Отбор повторяющихся значений в MS EXCEL
Из исходной таблицы с повторяющимися значениями отберем только те значения, которые имеют повторы. Теперь при добавлении новых значений в исходный список, новый список будет автоматически содержать только те значения, которые повторяются.
Динамическое разнесение данных по столбцам
Пусть имеется таблица, состоящая из двух столбцов: наименование организации и ее тип (юридическое лицо, индивидуальный предприниматель, физическое лицо). Необходимо разнести организации по разным столбцам в зависимости от типа: Юрлица, ИП и ФЛ должны быть каждый в своем отдельном столбце.При добавлении новых строк в исходную таблицу организации должны динамически попадать в нужный столбец.
Отбор уникальных значений в MS EXCEL с условиями
Продолжим идеи, изложенные в статье Отбор уникальных значений в MS EXCEL. Сначала отберем из таблицы только те строки, которые удовлетворяют заданным условиям, затем из этих строк выберем только уникальные значения из первого столбца. При добавлении новых строк в таблицу, список уникальных значений будет автоматически обновляться.
Запрос на выборку данных в MS EXCEL (на основе элементов управления формы)
Суть запроса на выборку – выбрать из исходной таблицы строки, удовлетворяющие определенным критериям (подобно применению фильтра). В отличие от фильтра отобранные строки будут помещены в отдельную таблицу.
Отбор неповторяющихся значений из двух диапазонов в MS EXCEL
Имея два списка с однотипными повторяющимися значениями, создадим список, состоящий только из неповторяющихся значений.
Отбор уникальных значений из двух диапазонов в MS EXCEL
Имея два списка с однотипными повторяющимися значениями, создадим из них список, содержащий только уникальные значения.
Поиск ТЕКСТовых значений в MS EXCEL с выводом их в отдельный список. Часть2. Подстановочные знаки
Найдем текстовые значения, удовлетворяющие заданному пользователем критерию. Критерии заданы с использованием подстановочных знаков. Поиск будем осуществлять в диапазоне с повторяющимися значениями. При наличии повторов, можно ожидать, что критерию будет соответствовать несколько значений. Для их вывода в отдельный диапазон удобно использовать формулы массива.
Поиск ТЕКСТовых значений в MS EXCEL с выводом их в отдельный список. Часть1. Обычный поиск
Найдем текстовые значения, удовлетворяющие заданному пользователем критерию. Поиск будем осуществлять в диапазоне с повторяющимися значениями. При наличии повторов, можно ожидать, что критерию будет соответствовать несколько значений. Для их вывода в отдельный диапазон удобно использовать формулы массива.
Поиск ТЕКСТовых значений в MS EXCEL с выводом их в отдельный список. Часть3. Поиск с учетом РЕГИСТРА
Найдем текстовые значения, удовлетворяющие заданному пользователем критерию с учетом РЕгиСТРА. Поиск будем осуществлять в диапазоне с повторяющимися значениями. При наличии повторов, можно ожидать, что критерию будет соответствовать несколько значений. Для их вывода в отдельный диапазон удобно использовать формулы массива.
Отбор уникальных значений с сортировкой в MS EXCEL
Из исходной таблицы отберем только уникальные значения и выведем их в отдельный диапазон с сортировкой по возрастанию. Отбор и сортировку сделаем с помощью одной формулой массива. Формула работает как для текстовых (сортировка от А до Я), так и для числовых значений (сортировка от мин до макс).
Поиск ЧИСЛОвых значений и вывод соответствующих значений в отдельный список в MS EXCEL
Найдем числовые значения, равные заданному пользователем критерию. Поиск будем осуществлять в диапазоне с повторяющимися значениями. При наличии повторов, можно ожидать, что критерию будет соответствовать несколько значений. Для их вывода в отдельный диапазон удобно использовать формулы массива.
Поиск нескольких значений с максимальной длиной строки в MS EXCEL
Найдем в исходном списке текстовые значения, которые имеют максимальную длину строки, и выведем их в отдельный диапазон.
Отбор повторяющихся значений (дубликатов) со значениями из соседнего столбца в MS EXCEL
Имея список с повторяющимися текстовыми значениями, создадим список, состоящий только из дубликатов. А из соседнего столбца, выведем соответствующие числовые значения.
ВПР с возвратом всех значений
Все, кто сталкивался с функцией ВПР знают, что она умеет возвращать исключительно одно значений — первое найденное. Но что делать, когда надо видеть все значения? К примеру имеется такая таблица:
И из этой таблицы необходимо получить фамилии(поле ФИО) всех сотрудников из отдела Сбыта:
Тут два варианта:
-
Вариант 1: все значения необходимо получить в одной ячейке через разделитель(скажем запятую). Такое возможно только через использование VBA(на момент написания статьи). Такую функцию я написал давно: Как сцепить несколько значений в одну ячейку по критерию? СцепитьЕсли
. В результате получим что-то вроде: Александров Иван,Александров Петр,Андреев Алексей .
Здесь надо сразу оговориться — при помощи непосредственно ВПР (VLookup) это сделать ну никак не получится. Но это можно сделать при помощи её родственников — связки ИНДЕКС(ПОИСКПОЗ) (INDEX(MATCH)) . Плюс еще пара функций. В сборе функция выглядит так:
=ИНДЕКС( $A$12:$G$111 ;НАИМЕНЬШИЙ(ЕСЛИ( $I$12 = $C$12:$C$111 ;СТРОКА( $C$12:$C$111 )-11);СТРОКА( A1 ));1)
=INDEX($A$12:$G$111;SMALL(IF($I$12=$C$12:$C$111;ROW($C$12:$C$111)-11);ROW(A1));1)
где:
- $A$12:$G$111 — таблица с ФИО и всеми данными
- $I$12 — ячейка с названием отдела
- $C$12:$C$111 — столбец с названиями отделов в таблице $A$12:$G$111
А теперь начнем разбирать формулу по кусочкам
Предлагаю сразу скачать пример файла с данными и формулами — тогда понять будет проще:
Tips_All_VlookupAllVals.xls (84,5 KiB, 8 651 скачиваний)
- Первое и самое главное — формула вводится в ячейку как формула массива. Это значит, что для приложенного к статье примера необходимо будет выделить ячейку J12 , записать в неё формулу и завершить ввод нажатием сразу трех клавиш: Ctrl+Shift+Enter. После этого скопировать ячейку, выделить диапазон J13:J39 и вставить туда скопированную ячейку.
- За отбор ФИО указанного отдела отвечает этот кусок: ЕСЛИ( $I$12 = $C$12:$C$111 ;СТРОКА( $C$12:$C$111 )-11)
IF($I$12=$C$12:$C$111;ROW($C$12:$C$111)-11)
Как видно здесь идет сравнение отдела, записанного в $I$12 со всеми отделами в таблице: $C$12:$C$111 . Если отдел совпадает, то функция возвращает номер строки СТРОКА( $C$12:$C$111 ) . Но нам нужен не номер строки на листе, а номер строки внутри таблицы(потому что в формулу ИНДЕКС (INDEX) у нас передан диапазон $A$12:$G$111 и если передать в его второй аргумент( номер_строки ) 14, то получим не Александров Иван , а Андреев Олег ). Поэтому отнимаем от номера строки 11, чтобы было возвращено число 3(а не 14). Т.к. формула записана формулой массива — ЕСЛИ (IF) возвращает массив из номеров строк и логического ЛОЖЬ (FALSE) (если отдел не совпадает):
шаг 1: ЕСЛИ(<ЛОЖЬ:ЛОЖЬ: ИСТИНА :ЛОЖЬ:ЛОЖЬ: ИСТИНА :ЛОЖЬ:ЛОЖЬ:ЛОЖЬ>;<12:13: 14 :15:16: 17 :18:19:20>-11)
шаг 2: ЕСЛИ(<ЛОЖЬ:ЛОЖЬ: ИСТИНА :ЛОЖЬ:ЛОЖЬ: ИСТИНА :ЛОЖЬ:ЛОЖЬ:ЛОЖЬ>;<1:2: 3 :4:5: 6 :7:8:9>)
шаг 3: - Т.к. ЕСЛИ (IF) в данном случае возвращает массив значений, включая ненужные нам ЛОЖЬ (FALSE) — применяем НАИМЕНЬШИЙ (SMALL) , которая будет брать только числа (сначала 3, затем 6 и т.д.), а логические значения ЛОЖЬ (FALSE) будет игнорировать:
НАИМЕНЬШИЙ(<ЛОЖЬ:ЛОЖЬ: 3 :ЛОЖЬ:ЛОЖЬ: 6 :ЛОЖЬ:ЛОЖЬ:ЛОЖЬ>;СТРОКА(A1))
SMALL(<ЛОЖЬ:ЛОЖЬ: 3 :ЛОЖЬ:ЛОЖЬ: 6 :ЛОЖЬ:ЛОЖЬ:ЛОЖЬ>;ROW(A1))
Функция НАИМЕНЬШИЙ (SMALL) отбирает из указанного массива чисел наименьшее. При этом можно отобрать по рангу — первое наименьшее, второе наименьшее, третье наименьшее и т.д.
- с первым аргументом разобрались — это уже отобранные записи, где число — строка в таблице с нужной ФИО и ненужные нам логические ЛОЖЬ (FALSE) .
- второй аргумент СТРОКА(A1) для каждой следующей строки будет меняться. В приложенном примере первая ячейка с формулой — J12 . В ней СТРОКА(A1) равна 1, т.е. НАИМЕНЬШИЙ (SMALL) вернет первое наименьшее из массива чисел — 3 . В ячейке J13 это уже будет СТРОКА(A2) и она равна 2, а значит НАИМЕНЬШИЙ (SMALL) вернет второе наименьшее из массива чисел — 6 . И т.д. Когда все числа закончатся — НАИМЕНЬШИЙ (SMALL) вернет значение ошибки #ЧИСЛО! (#NUM!)
ячейка J12
шаг 1: НАИМЕНЬШИЙ(<ЛОЖЬ:ЛОЖЬ: 3 :ЛОЖЬ:ЛОЖЬ: 6 :ЛОЖЬ:ЛОЖЬ:ЛОЖЬ>;СТРОКА(A1))
шаг 2: НАИМЕНЬШИЙ(<ЛОЖЬ:ЛОЖЬ: 3 :ЛОЖЬ:ЛОЖЬ: 6 :ЛОЖЬ:ЛОЖЬ:ЛОЖЬ>;1)
шаг 3: НАИМЕНЬШИЙ( 3 )
ячейка J13
шаг 1: НАИМЕНЬШИЙ(<ЛОЖЬ:ЛОЖЬ: 3 :ЛОЖЬ:ЛОЖЬ: 6 :ЛОЖЬ:ЛОЖЬ:ЛОЖЬ>;СТРОКА(A2))
шаг 2: НАИМЕНЬШИЙ(<ЛОЖЬ:ЛОЖЬ: 3 :ЛОЖЬ:ЛОЖЬ: 6 :ЛОЖЬ:ЛОЖЬ:ЛОЖЬ>;2)
шаг 3: НАИМЕНЬШИЙ( 6 )
ячейка J12
шаг 1: =ИНДЕКС( $A$12:$G$111 ;НАИМЕНЬШИЙ( 3 );1)
шаг 2: =ИНДЕКС( $A$12:$G$111 ;3;1)
шаг 3: Александров Иван
ячейка J13
шаг 1: =ИНДЕКС( $A$12:$G$111 ;НАИМЕНЬШИЙ( 6 );1)
шаг 2: =ИНДЕКС( $A$12:$G$111 ;6;1)
шаг 3: Александров Петр
И в довершение неплохо бы убрать ошибку в случае, если ни одно значение не соответствует критерию или значений больше, чем ячеек с формулами. Более подробно подобное решение я описывал в этой статье: Как в ячейке с формулой вместо ошибки показать 0
Для всех версий Excel:
=ЕСЛИ(ЕОШ(ИНДЕКС( $A$12:$G$111 ;НАИМЕНЬШИЙ(ЕСЛИ( $I$12 = $C$12:$C$111 ;СТРОКА( $C$12:$C$111 )-11);СТРОКА( A1 ));1));»»;ИНДЕКС( $A$12:$G$111 ;НАИМЕНЬШИЙ(ЕСЛИ( $I$12 = $C$12:$C$111 ;СТРОКА( $C$12:$C$111 )-11);СТРОКА( A1 ));1))
=IF(ISERR(INDEX($A$12:$G$111;SMALL(IF($I$12=$C$12:$C$111;ROW($C$12:$C$111)-11);ROW(A1));1));»»;INDEX($A$12:$G$111;SMALL(IF($I$12=$C$12:$C$111;ROW($C$12:$C$111)-11);ROW(A1));1))
Для Excel 2007 и выше:
=ЕСЛИОШИБКА(ИНДЕКС( $A$12:$G$111 ;НАИМЕНЬШИЙ(ЕСЛИ( $I$12 = $C$12:$C$111 ;СТРОКА( $C$12:$C$111 )-11);СТРОКА( A1 ));1);»»)
=IFERROR(INDEX($A$12:$G$111;SMALL(IF($I$12=$C$12:$C$111;ROW($C$12:$C$111)-11);ROW(A1));1);»»)
Плюс к этому в приложенном к статье файле я привел формулу, которая возвращает список всех сотрудников выбранного отдела без повторений и формулу с возможностью просто поменять заголовок в результирующем столбце(в файле это столбец K, ячейка K11 ) на любой из исходной таблицы и данные будут отображены из этого столбца.
Например, если вместо столбца ФИО записать в K11 Адрес — будут отображены все адреса сотрудников выбранного отдела. Если записать Телефон — все телефоны сотрудников выбранного отдела.
Tips_All_VlookupAllVals.xls (84,5 KiB, 8 651 скачиваний)
Статья помогла? Поделись ссылкой с друзьями!
Поиск и подстановка по нескольким условиям
Постановка задачи
Если вы продвинутый пользователь Microsoft Excel, то должны быть знакомы с функцией поиска и подстановки ВПР или VLOOKUP (если еще нет, то сначала почитайте эту статью, чтобы им стать). Для тех, кто понимает, рекламировать ее не нужно 🙂 — без нее не обходится ни один сложный расчет в Excel. Есть, однако, одна проблема: эта функция умеет искать данные только по совпадению одного параметра. А если у нас их несколько?
Предположим, что у нас есть база данных по ценам товаров за разные месяцы:
Нужно найти и вытащить цену заданного товара (Нектарин) в определенном месяце (Январь), т.е. получить на выходе152, но автоматически, т.е. с помощью формулы. ВПР в чистом виде тут не поможет, но есть несколько других способов решить эту задачу.
Способ 1. Дополнительный столбец с ключом поиска
Это самый очевидный и простой (хотя и не самый удобный) способ. Поскольку штатная функция ВПР (VLOOKUP) умеет искать только по одному столбцу, а не по нескольким, то нам нужно из нескольких сделать один!
Добавим рядом с нашей таблицей еще один столбец, где склеим название товара и месяц в единое целое с помощью оператора сцепки (&), чтобы получить уникальный столбец-ключ для поиска:
Теперь можно использовать знакомую функцию ВПР (VLOOKUP) для поиска склеенной пары НектаринЯнварь из ячеек H3 и J3 в созданном ключевом столбце:
Плюсы : Простой способ, знакомая функция, работает с любыми данными.
Минусы : Надо делать дополнительный столбец и потом, возможно, еще и прятать его от пользователя. При изменении числа строк в таблице — допротягивать формулу сцепки на новые строки (хотя это можно упростить применением умной таблицы).
Способ 2. Функция СУММЕСЛИМН
Если нужно найти именно число (в нашем случае цена как раз число), то вместо ВПР можно использовать функцию СУММЕСЛИМН (SUMIFS) , появившуюся начиная с Excel 2007. По идее, эта функция выбирает и суммирует числовые значения по нескольким (до 127!) условиям. Но если в нашем списке нет повторяющихся товаров внутри одного месяца, то она просто выведет значение цены для заданного товара и месяца:
Плюсы : Не нужен дополнительный столбец, решение легко масштабируется на большее количество условий (до 127), быстро считает.
Минусы : Работает только с числовыми данными на выходе, не применима для поиска текста, не работает в старых версиях Excel (2003 и ранее).
Способ 3. Формула массива
О том, как спользовать связку функций ИНДЕКС (INDEX) и ПОИСКПОЗ (MATCH) в качестве более мощной альтернативы ВПР я уже подробно описывал (с видео). В нашем же случае, можно применить их для поиска по нескольким столбцам в виде формулы массива. Для этого:
- Выделите пустую зеленую ячейку, где должен быть результат.
- Введите в строке формул в нее следующую формулу:
Как это на самом деле работает:
Функция ИНДЕКС выдает из диапазона цен C2:C161 содержимое N-ой ячейки по порядку. При этом порядковый номер нужной ячейки нам находит функция ПОИСКПОЗ. Она ищет связку названия товара и месяца (НектаринЯнварь) по очереди во всех ячейках склеенного из двух столбцов диапазона A2:A161&B2:B161 и выдает порядковый номер ячейки, где нашла точное совпадение. По сути, это первый способ, но ключевой столбец создается виртуально прямо внутри формулы, а не в ячейках листа.
Плюсы : Не нужен отдельный столбец, работает и с числами и с текстом.
Минусы : Ощутимо тормозит на больших таблицах (как и все формулы массива, впрочем), особенно если указывать диапазоны «с запасом» или сразу целые столбцы (т.е. вместо A2:A161 вводить A:A и т.д.) Многим непривычны формулы массива в принципе (тогда вам сюда).