Совет: Попробуйте использовать новые функции ПРОСМОТРX и XMATCH, а также улучшенные версии функций, описанные в этой статье. Эти новые функции работают в любом направлении и возвращают точные совпадения по умолчанию, что упрощает и упрощает работу с ними по сравнению с предшественниками.
Предположим, у вас есть список номеров офисов, и вам нужно знать, какие сотрудники работают в каждом из них. Таблица очень угрюмая, поэтому, возможно, вам кажется, что это сложная задача. С функцией подытов на самом деле это довольно просто.
Функции ВВ., а также ИНДЕКС и ВЫБОРПОЗ — одни из самых полезных функций в Excel.
Примечание: Мастер подметок больше не доступен в Excel.
Ниже в качестве примера по выбору вы можете найти пример использования в этой области.
=ВПР(B2;C2:E7,3,ИСТИНА)
В этом примере B2 является первым аргументом —элементом данных, который требуется для работы функции. В случае СРОТ ВЛ.В.ОВ этот первый аргумент является искомой значением. Этот аргумент может быть ссылкой на ячейку или фиксированным значением, таким как «кузьмина» или 21 000. Вторым аргументом является диапазон ячеек C2–:E7, в котором нужно найти и найти значение. Третий аргумент — это столбец в диапазоне ячеек, содержащий ищите значение.
Четвертый аргумент необязателен. Введите истина или ЛОЖЬ. Если ввести ИСТИНА или оставить аргумент пустым, функция возвращает приблизительное совпадение значения, указанного в качестве первого аргумента. Если ввести ЛОЖЬ, функция будет соответствовать значению, заведомо первому аргументу. Другими словами, если оставить четвертый аргумент пустым или ввести ИСТИНА, это обеспечивает большую гибкость.
В этом примере показано, как работает функция. При вводе значения в ячейку B2 (первый аргумент) в результате поиска в ячейках диапазона C2:E7 (2-й аргумент) выполняется поиск в ней и возвращается ближайшее приблизительное совпадение из третьего столбца в диапазоне — столбца E (третий аргумент).
Четвертый аргумент пуст, поэтому функция возвращает приблизительное совпадение. Иначе потребуется ввести одно из значений в столбец C или D, чтобы получить какой-либо результат.
Если вы хорошо разучились работать с функцией ВГТ.В.В., то в равной степени использовать ее будет легко. Вы вводите те же аргументы, но выполняется поиск в строках, а не в столбцах.
Использование индекса и MATCH вместо ВРОТ
При использовании функции ВПРАВО существует ряд ограничений, которые действуют только при использовании функции ВПРАВО. Это означает, что столбец, содержащий и look up, всегда должен быть расположен слева от столбца, содержащего возвращаемого значения. Теперь, если ваша таблица не построена таким образом, не используйте В ПРОСМОТР. Используйте вместо этого сочетание функций ИНДЕКС и MATCH.
В данном примере представлен небольшой список, в котором искомое значение (Воронеж) не находится в крайнем левом столбце. Поэтому мы не можем использовать функцию ВПР. Для поиска значения «Воронеж» в диапазоне B1:B11 будет использоваться функция ПОИСКПОЗ. Оно найдено в строке 4. Затем функция ИНДЕКС использует это значение в качестве аргумента поиска и находит численность населения Воронежа в четвертом столбце (столбец D). Использованная формула показана в ячейке A14.
Дополнительные примеры использования индексов и MATCH вместо В ПРОСМОТР см. в статье билла Https://www.mrexcel.com/excel-tips/excel-vlookup-index-match/ Билла Джилена (Bill Jelen), MVP корпорации Майкрософт.
Попробуйте попрактиковаться
Если вы хотите поэкспериментировать с функциями подытовки, прежде чем попробовать их с собственными данными, вот примеры данных.
Пример работы с ВЛОКОНПОМ
Скопируйте следующие данные в пустую таблицу.
Совет: Прежде чем врезать данные в Excel, установите для столбцов A–C ширину в 250 пикселей и нажмите кнопку «Перенос текста» (вкладка «Главная», группа «Выравнивание»).
Плотность |
Вязкость |
Температура |
0,457 |
3,55 |
500 |
0,525 |
3,25 |
400 |
0,606 |
2,93 |
300 |
0,675 |
2,75 |
250 |
0,746 |
2,57 |
200 |
0,835 |
2,38 |
150 |
0,946 |
2,17 |
100 |
1,09 |
1,95 |
50 |
1,29 |
1,71 |
0 |
Формула |
Описание |
Результат |
=ВПР(1,A2:C10,2) |
Используя приблизительное соответствие, функция ищет в столбце A значение 1, находит наибольшее значение, которое меньше или равняется 1 и составляет 0,946, а затем возвращает значение из столбца B в той же строке. |
2,17 |
=ВПР(1,A2:C10,3,ИСТИНА) |
Используя приблизительное соответствие, функция ищет в столбце A значение 1, находит наибольшее значение, которое меньше или равняется 1 и составляет 0,946, а затем возвращает значение из столбца C в той же строке. |
100 |
=ВПР(0,7,A2:C10,3,ЛОЖЬ) |
Используя точное соответствие, функция ищет в столбце A значение 0,7. Поскольку точного соответствия нет, возвращается сообщение об ошибке. |
#Н/Д |
=ВПР(0,1,A2:C10,2,ИСТИНА) |
Используя приблизительное соответствие, функция ищет в столбце A значение 0,1. Поскольку 0,1 меньше наименьшего значения в столбце A, возвращается сообщение об ошибке. |
#Н/Д |
=ВПР(2,A2:C10,2,ИСТИНА) |
Используя приблизительное соответствие, функция ищет в столбце A значение 2, находит наибольшее значение, которое меньше или равняется 2 и составляет 1,29, а затем возвращает значение из столбца B в той же строке. |
1,71 |
Пример ГВ.Г.В.В.
Скопируйте всю таблицу и вставьте ее в ячейку A1 пустого листа Excel.
Совет: Прежде чем врезать данные в Excel, установите для столбцов A–C ширину в 250 пикселей и нажмите кнопку «Перенос текста» (вкладка «Главная», группа «Выравнивание»).
Оси |
Подшипники |
Болты |
4 |
4 |
9 |
5 |
7 |
10 |
6 |
8 |
11 |
Формула |
Описание |
Результат |
=ГПР(«Оси»;A1:C4;2;ИСТИНА) |
Поиск слова «Оси» в строке 1 и возврат значения из строки 2, находящейся в том же столбце (столбец A). |
4 |
=ГПР(«Подшипники»;A1:C4;3;ЛОЖЬ) |
Поиск слова «Подшипники» в строке 1 и возврат значения из строки 3, находящейся в том же столбце (столбец B). |
7 |
=ГПР(«П»;A1:C4;3;ИСТИНА) |
Поиск буквы «П» в строке 1 и возврат значения из строки 3, находящейся в том же столбце. Так как «П» найти не удалось, возвращается ближайшее из меньших значений: «Оси» (в столбце A). |
5 |
=ГПР(«Болты»;A1:C4;4) |
Поиск слова «Болты» в строке 1 и возврат значения из строки 4, находящейся в том же столбце (столбец C). |
11 |
=ГПР(3;{1;2;3:»a»;»b»;»c»;»d»;»e»;»f»};2;ИСТИНА) |
Поиск числа 3 в трех строках константы массива и возврат значения из строки 2 того же (в данном случае — третьего) столбца. Константа массива содержит три строки значений, разделенных точкой с запятой (;). Так как «c» было найдено в строке 2 того же столбца, что и 3, возвращается «c». |
c |
Примеры индекса и match
В последнем примере функции ИНДЕКС и MATCH совместно возвращают номер счета с наиболее ранней датой и соответствующую дату для каждого из пяти городов. Так как дата возвращается как число, для ее формата используется функция ТЕКСТ. Функция ИНДЕКС использует результат, возвращенный функцией ПОИСКПОЗ, как аргумент. Сочетание функций ИНДЕКС и ПОИСКПОЗ используется в каждой формуле дважды — сперва для возврата номера счета, а затем для возврата даты.
Скопируйте всю таблицу и вставьте ее в ячейку A1 пустого листа Excel.
Совет: Перед тем как вировать данные в Excel, установите для столбцов A–D ширину в 250 пикселей и нажмите кнопку «Перенос текста» (вкладка «Главная», группа «Выравнивание»).
Счет |
Город |
Дата выставления счета |
Счет с самой ранней датой по городу, с датой |
3115 |
Казань |
07.04.12 |
=»Казань = «&ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Казань»,$B$2:$B$33,0),1)& «, Дата выставления счета: » & ТЕКСТ(ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Казань»,$B$2:$B$33,0),3),»m/d/yy») |
3137 |
Казань |
09.04.12 |
=»Орел = «&ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Орел»,$B$2:$B$33,0),1)& «, Дата выставления счета: » & ТЕКСТ(ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Орел»,$B$2:$B$33,0),3),»m/d/yy») |
3154 |
Казань |
11.04.12 |
=»Челябинск = «&ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Челябинск»,$B$2:$B$33,0),1)& «, Дата выставления счета: » & ТЕКСТ(ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Челябинск»,$B$2:$B$33,0),3),»m/d/yy») |
3191 |
Казань |
21.04.12 |
=»Нижний Новгород = «&ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Нижний Новгород»,$B$2:$B$33,0),1)& «, Дата выставления счета: » & ТЕКСТ(ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Нижний Новгород»,$B$2:$B$33,0),3),»m/d/yy») |
3293 |
Казань |
25.04.12 |
=»Москва = «&ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Москва»,$B$2:$B$33,0),1)& «, Дата выставления счета: » & ТЕКСТ(ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Москва»,$B$2:$B$33,0),3),»m/d/yy») |
3331 |
Казань |
27.04.12 |
|
3350 |
Казань |
28.04.12 |
|
3390 |
Казань |
01.05.12 |
|
3441 |
Казань |
02.05.12 |
|
3517 |
Казань |
08.05.12 |
|
3124 |
Орел |
09.04.12 |
|
3155 |
Орел |
11.04.12 |
|
3177 |
Орел |
19.04.12 |
|
3357 |
Орел |
28.04.12 |
|
3492 |
Орел |
06.05.12 |
|
3316 |
Челябинск |
25.04.12 |
|
3346 |
Челябинск |
28.04.12 |
|
3372 |
Челябинск |
01.05.12 |
|
3414 |
Челябинск |
01.05.12 |
|
3451 |
Челябинск |
02.05.12 |
|
3467 |
Челябинск |
02.05.12 |
|
3474 |
Челябинск |
04.05.12 |
|
3490 |
Челябинск |
05.05.12 |
|
3503 |
Челябинск |
08.05.12 |
|
3151 |
Нижний Новгород |
09.04.12 |
|
3438 |
Нижний Новгород |
02.05.12 |
|
3471 |
Нижний Новгород |
04.05.12 |
|
3160 |
Москва |
18.04.12 |
|
3328 |
Москва |
26.04.12 |
|
3368 |
Москва |
29.04.12 |
|
3420 |
Москва |
01.05.12 |
|
3501 |
Москва |
06.05.12 |
Skip to content
В этом руководстве показано, как использовать ИНДЕКС и ПОИСКПОЗ в Excel и чем они лучше ВПР.
В нескольких недавних статьях мы приложили немало усилий, чтобы объяснить основы функции ВПР новичкам и предоставить более сложные примеры формул ВПР опытным пользователям. А теперь я постараюсь если не отговорить вас от использования ВПР, то хотя бы показать вам альтернативный способ поиска нужных значений в 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. Я надеюсь, что наши примеры формул окажутся полезными для вас.
Вот еще несколько статей по этой теме:
Этот учебник рассказывает о главных преимуществах функций ИНДЕКС и ПОИСКПОЗ в Excel, которые делают их более привлекательными по сравнению с ВПР. Вы увидите несколько примеров формул, которые помогут Вам легко справиться со многими сложными задачами, перед которыми функция ВПР бессильна.
В нескольких недавних статьях мы приложили все усилия, чтобы разъяснить начинающим пользователям основы функции ВПР и показать примеры более сложных формул для продвинутых пользователей. Теперь мы попытаемся, если не отговорить Вас от использования ВПР, то хотя бы показать альтернативные способы реализации вертикального поиска в Excel.
Зачем нам это? – спросите Вы. Да, потому что ВПР – это не единственная функция поиска в Excel, и её многочисленные ограничения могут помешать Вам получить желаемый результат во многих ситуациях. С другой стороны, функции ИНДЕКС и ПОИСКПОЗ – более гибкие и имеют ряд особенностей, которые делают их более привлекательными, по сравнению с ВПР.
- Базовая информация об ИНДЕКС и ПОИСКПОЗ
- Используем функции ИНДЕКС и ПОИСКПОЗ в Excel
- Преимущества ИНДЕКС и ПОИСКПОЗ перед ВПР
- ИНДЕКС и ПОИСКПОЗ – примеры формул
- Как находить значения, которые находятся слева
- Вычисления при помощи ИНДЕКС и ПОИСКПОЗ
- Поиск по известным строке и столбцу
- Поиск по нескольким критериям
- ИНДЕКС и ПОИСКПОЗ в сочетании с ЕСЛИОШИБКА
Содержание
- Базовая информация об ИНДЕКС и ПОИСКПОЗ
- ИНДЕКС – синтаксис и применение функции
- ПОИСКПОЗ – синтаксис и применение функции
- Как использовать ИНДЕКС и ПОИСКПОЗ в Excel
- Почему ИНДЕКС/ПОИСКПОЗ лучше, чем ВПР?
- 4 главных преимущества использования ПОИСКПОЗ/ИНДЕКС в Excel:
- ИНДЕКС и ПОИСКПОЗ – примеры формул
- Как выполнить поиск с левой стороны, используя ПОИСКПОЗ и ИНДЕКС
- Вычисления при помощи ИНДЕКС и ПОИСКПОЗ в Excel (СРЗНАЧ, МАКС, МИН)
- О чём нужно помнить, используя функцию СРЗНАЧ вместе с ИНДЕКС и ПОИСКПОЗ
- Как при помощи ИНДЕКС и ПОИСКПОЗ выполнять поиск по известным строке и столбцу
- Поиск по нескольким критериям с ИНДЕКС и ПОИСКПОЗ
- ИНДЕКС и ПОИСКПОЗ в сочетании с ЕСЛИОШИБКА в Excel
Базовая информация об ИНДЕКС и ПОИСКПОЗ
Так как задача этого учебника – показать возможности функций ИНДЕКС и ПОИСКПОЗ для реализации вертикального поиска в Excel, мы не будем задерживаться на их синтаксисе и применении.
Приведём здесь необходимый минимум для понимания сути, а затем разберём подробно примеры формул, которые показывают преимущества использования ИНДЕКС и ПОИСКПОЗ вместо ВПР.
ИНДЕКС – синтаксис и применение функции
Функция INDEX (ИНДЕКС) в Excel возвращает значение из массива по заданным номерам строки и столбца. Функция имеет вот такой синтаксис:
INDEX(array,row_num,[column_num])
ИНДЕКС(массив;номер_строки;[номер_столбца])
Каждый аргумент имеет очень простое объяснение:
- array (массив) – это диапазон ячеек, из которого необходимо извлечь значение.
- row_num (номер_строки) – это номер строки в массиве, из которой нужно извлечь значение. Если не указан, то обязательно требуется аргумент column_num (номер_столбца).
- column_num (номер_столбца) – это номер столбца в массиве, из которого нужно извлечь значение. Если не указан, то обязательно требуется аргумент row_num (номер_строки)
Если указаны оба аргумента, то функция ИНДЕКС возвращает значение из ячейки, находящейся на пересечении указанных строки и столбца.
Вот простейший пример функции INDEX (ИНДЕКС):
=INDEX(A1:C10,2,3)
=ИНДЕКС(A1:C10;2;3)
Формула выполняет поиск в диапазоне A1:C10 и возвращает значение ячейки во 2-й строке и 3-м столбце, то есть из ячейки C2.
Очень просто, правда? Однако, на практике Вы далеко не всегда знаете, какие строка и столбец Вам нужны, и поэтому требуется помощь функции ПОИСКПОЗ.
ПОИСКПОЗ – синтаксис и применение функции
Функция MATCH (ПОИСКПОЗ) в Excel ищет указанное значение в диапазоне ячеек и возвращает относительную позицию этого значения в диапазоне.
Например, если в диапазоне B1:B3 содержатся значения New-York, Paris, London, тогда следующая формула возвратит цифру 3, поскольку «London» – это третий элемент в списке.
=MATCH("London",B1:B3,0)
=ПОИСКПОЗ("London";B1:B3;0)
Функция MATCH (ПОИСКПОЗ) имеет вот такой синтаксис:
MATCH(lookup_value,lookup_array,[match_type])
ПОИСКПОЗ(искомое_значение;просматриваемый_массив;[тип_сопоставления])
- lookup_value (искомое_значение) – это число или текст, который Вы ищите. Аргумент может быть значением, в том числе логическим, или ссылкой на ячейку.
- lookup_array (просматриваемый_массив) – диапазон ячеек, в котором происходит поиск.
- match_type (тип_сопоставления) – этот аргумент сообщает функции ПОИСКПОЗ, хотите ли Вы найти точное или приблизительное совпадение:
- 1 или не указан – находит максимальное значение, меньшее или равное искомому. Просматриваемый массив должен быть упорядочен по возрастанию, то есть от меньшего к большему.
- 0 – находит первое значение, равное искомому. Для комбинации ИНДЕКС/ПОИСКПОЗ всегда нужно точное совпадение, поэтому третий аргумент функции ПОИСКПОЗ должен быть равен 0.
- -1 – находит наименьшее значение, большее или равное искомому значению. Просматриваемый массив должен быть упорядочен по убыванию, то есть от большего к меньшему.
На первый взгляд, польза от функции ПОИСКПОЗ вызывает сомнение. Кому нужно знать положение элемента в диапазоне? Мы хотим знать значение этого элемента!
Позвольте напомнить, что относительное положение искомого значения (т.е. номер строки и/или столбца) – это как раз то, что мы должны указать для аргументов row_num (номер_строки) и/или column_num (номер_столбца) функции INDEX (ИНДЕКС). Как Вы помните, функция ИНДЕКС может возвратить значение, находящееся на пересечении заданных строки и столбца, но она не может определить, какие именно строка и столбец нас интересуют.
Как использовать ИНДЕКС и ПОИСКПОЗ в Excel
Теперь, когда Вам известна базовая информация об этих двух функциях, полагаю, что уже становится понятно, как функции ПОИСКПОЗ и ИНДЕКС могут работать вместе. ПОИСКПОЗ определяет относительную позицию искомого значения в заданном диапазоне ячеек, а ИНДЕКС использует это число (или числа) и возвращает результат из соответствующей ячейки.
Ещё не совсем понятно? Представьте функции ИНДЕКС и ПОИСКПОЗ в таком виде:
=INDEX(столбец из которого извлекаем,(MATCH (искомое значение,столбец в котором ищем,0))
=ИНДЕКС(столбец из которого извлекаем;(ПОИСКПОЗ(искомое значение;столбец в котором ищем;0))
Думаю, ещё проще будет понять на примере. Предположим, у Вас есть вот такой список столиц государств:
Давайте найдём население одной из столиц, например, Японии, используя следующую формулу:
=INDEX($D$2:$D$10,MATCH("Japan",$B$2:$B$10,0))
=ИНДЕКС($D$2:$D$10;ПОИСКПОЗ("Japan";$B$2:$B$10;0))
Теперь давайте разберем, что делает каждый элемент этой формулы:
- Функция MATCH (ПОИСКПОЗ) ищет значение «Japan» в столбце B, а конкретно – в ячейках B2:B10, и возвращает число 3, поскольку «Japan» в списке на третьем месте.
- Функция INDEX (ИНДЕКС) использует 3 для аргумента row_num (номер_строки), который указывает из какой строки нужно возвратить значение. Т.е. получается простая формула:
=INDEX($D$2:$D$10,3)
=ИНДЕКС($D$2:$D$10;3)
Формула говорит примерно следующее: ищи в ячейках от D2 до D10 и извлеки значение из третьей строки, то есть из ячейки D4, так как счёт начинается со второй строки.
Вот такой результат получится в Excel:
Важно! Количество строк и столбцов в массиве, который использует функция INDEX (ИНДЕКС), должно соответствовать значениям аргументов row_num (номер_строки) и column_num (номер_столбца) функции MATCH (ПОИСКПОЗ). Иначе результат формулы будет ошибочным.
Стоп, стоп… почему мы не можем просто использовать функцию VLOOKUP (ВПР)? Есть ли смысл тратить время, пытаясь разобраться в лабиринтах ПОИСКПОЗ и ИНДЕКС?
=VLOOKUP("Japan",$B$2:$D$2,3)
=ВПР("Japan";$B$2:$D$2;3)
В данном случае – смысла нет! Цель этого примера – исключительно демонстрационная, чтобы Вы могли понять, как функции ПОИСКПОЗ и ИНДЕКС работают в паре. Последующие примеры покажут Вам истинную мощь связки ИНДЕКС и ПОИСКПОЗ, которая легко справляется с многими сложными ситуациями, когда ВПР оказывается в тупике.
Почему ИНДЕКС/ПОИСКПОЗ лучше, чем ВПР?
Решая, какую формулу использовать для вертикального поиска, большинство гуру Excel считают, что ИНДЕКС/ПОИСКПОЗ намного лучше, чем ВПР. Однако, многие пользователи Excel по-прежнему прибегают к использованию ВПР, т.к. эта функция гораздо проще. Так происходит, потому что очень немногие люди до конца понимают все преимущества перехода с ВПР на связку ИНДЕКС и ПОИСКПОЗ, а тратить время на изучение более сложной формулы никто не хочет.
Далее я попробую изложить главные преимущества использования ПОИСКПОЗ и ИНДЕКС в Excel, а Вы решите – остаться с ВПР или переключиться на ИНДЕКС/ПОИСКПОЗ.
4 главных преимущества использования ПОИСКПОЗ/ИНДЕКС в Excel:
1. Поиск справа налево. Как известно любому грамотному пользователю Excel, ВПР не может смотреть влево, а это значит, что искомое значение должно обязательно находиться в крайнем левом столбце исследуемого диапазона. В случае с ПОИСКПОЗ/ИНДЕКС, столбец поиска может быть, как в левой, так и в правой части диапазона поиска. Пример: Как находить значения, которые находятся слева покажет эту возможность в действии.
2. Безопасное добавление или удаление столбцов. Формулы с функцией ВПР перестают работать или возвращают ошибочные значения, если удалить или добавить столбец в таблицу поиска. Для функции ВПР любой вставленный или удалённый столбец изменит результат формулы, поскольку синтаксис ВПР требует указывать весь диапазон и конкретный номер столбца, из которого нужно извлечь данные.
Например, если у Вас есть таблица A1:C10, и требуется извлечь данные из столбца B, то нужно задать значение 2 для аргумента col_index_num (номер_столбца) функции ВПР, вот так:
=VLOOKUP("lookup value",A1:C10,2)
=ВПР("lookup value";A1:C10;2)
Если позднее Вы вставите новый столбец между столбцами A и B, то значение аргумента придется изменить с 2 на 3, иначе формула возвратит результат из только что вставленного столбца.
Используя ПОИСКПОЗ/ИНДЕКС, Вы можете удалять или добавлять столбцы к исследуемому диапазону, не искажая результат, так как определен непосредственно столбец, содержащий нужное значение. Действительно, это большое преимущество, особенно когда работать приходится с большими объёмами данных. Вы можете добавлять и удалять столбцы, не беспокоясь о том, что нужно будет исправлять каждую используемую функцию ВПР.
3. Нет ограничения на размер искомого значения. Используя ВПР, помните об ограничении на длину искомого значения в 255 символов, иначе рискуете получить ошибку #VALUE! (#ЗНАЧ!). Итак, если таблица содержит длинные строки, единственное действующее решение – это использовать ИНДЕКС/ПОИСКПОЗ.
Предположим, Вы используете вот такую формулу с ВПР, которая ищет в ячейках от B5 до D10 значение, указанное в ячейке A2:
=VLOOKUP(A2,B5:D10,3,FALSE)
=ВПР(A2;B5:D10;3;ЛОЖЬ)
Формула не будет работать, если значение в ячейке A2 длиннее 255 символов. Вместо неё Вам нужно использовать аналогичную формулу ИНДЕКС/ПОИСКПОЗ:
=INDEX(D5:D10,MATCH(TRUE,INDEX(B5:B10=A2,0),0))
=ИНДЕКС(D5:D10;ПОИСКПОЗ(ИСТИНА;ИНДЕКС(B5:B10=A2;0);0))
4. Более высокая скорость работы. Если Вы работаете с небольшими таблицами, то разница в быстродействии Excel будет, скорее всего, не заметная, особенно в последних версиях. Если же Вы работаете с большими таблицами, которые содержат тысячи строк и сотни формул поиска, Excel будет работать значительно быстрее, при использовании ПОИСКПОЗ и ИНДЕКС вместо ВПР. В целом, такая замена увеличивает скорость работы Excel на 13%.
Влияние ВПР на производительность Excel особенно заметно, если рабочая книга содержит сотни сложных формул массива, таких как ВПР+СУММ. Дело в том, что проверка каждого значения в массиве требует отдельного вызова функции ВПР. Поэтому, чем больше значений содержит массив и чем больше формул массива содержит Ваша таблица, тем медленнее работает Excel.
С другой стороны, формула с функциями ПОИСКПОЗ и ИНДЕКС просто совершает поиск и возвращает результат, выполняя аналогичную работу заметно быстрее.
ИНДЕКС и ПОИСКПОЗ – примеры формул
Теперь, когда Вы понимаете причины, из-за которых стоит изучать функции ПОИСКПОЗ и ИНДЕКС, давайте перейдём к самому интересному и увидим, как можно применить теоретические знания на практике.
Как выполнить поиск с левой стороны, используя ПОИСКПОЗ и ИНДЕКС
Любой учебник по ВПР твердит, что эта функция не может смотреть влево. Т.е. если просматриваемый столбец не является крайним левым в диапазоне поиска, то нет шансов получить от ВПР желаемый результат.
Функции ПОИСКПОЗ и ИНДЕКС в Excel гораздо более гибкие, и им все-равно, где находится столбец со значением, которое нужно извлечь. Для примера, снова вернёмся к таблице со столицами государств и населением. На этот раз запишем формулу ПОИСКПОЗ/ИНДЕКС, которая покажет, какое место по населению занимает столица России (Москва).
Как видно на рисунке ниже, формула отлично справляется с этой задачей:
=INDEX($A$2:$A$10,MATCH("Russia",$B$2:$B$10,0))
=ИНДЕКС($A$2:$A$10;ПОИСКПОЗ("Russia";$B$2:$B$10;0))
Теперь у Вас не должно возникать проблем с пониманием, как работает эта формула:
- Во-первых, задействуем функцию MATCH (ПОИСКПОЗ), которая находит положение «Russia» в списке:
=MATCH("Russia",$B$2:$B$10,0))
=ПОИСКПОЗ("Russia";$B$2:$B$10;0))
- Далее, задаём диапазон для функции INDEX (ИНДЕКС), из которого нужно извлечь значение. В нашем случае это A2:A10.
- Затем соединяем обе части и получаем формулу:
=INDEX($A$2:$A$10;MATCH("Russia";$B$2:$B$10;0))
=ИНДЕКС($A$2:$A$10;ПОИСКПОЗ("Russia";$B$2:$B$10;0))
Подсказка: Правильным решением будет всегда использовать абсолютные ссылки для ИНДЕКС и ПОИСКПОЗ, чтобы диапазоны поиска не сбились при копировании формулы в другие ячейки.
Вычисления при помощи ИНДЕКС и ПОИСКПОЗ в Excel (СРЗНАЧ, МАКС, МИН)
Вы можете вкладывать другие функции Excel в ИНДЕКС и ПОИСКПОЗ, например, чтобы найти минимальное, максимальное или ближайшее к среднему значение. Вот несколько вариантов формул, применительно к таблице из предыдущего примера:
1. MAX (МАКС). Формула находит максимум в столбце D и возвращает значение из столбца C той же строки:
=INDEX($C$2:$C$10,MATCH(MAX($D$2:I$10),$D$2:D$10,0))
=ИНДЕКС($C$2:$C$10;ПОИСКПОЗ(МАКС($D$2:I$10);$D$2:D$10;0))
Результат: Beijing
2. MIN (МИН). Формула находит минимум в столбце D и возвращает значение из столбца C той же строки:
=INDEX($C$2:$C$10,MATCH(MIN($D$2:I$10),$D$2:D$10,0))
=ИНДЕКС($C$2:$C$10;ПОИСКПОЗ(МИН($D$2:I$10);$D$2:D$10;0))
Результат: Lima
3. AVERAGE (СРЗНАЧ). Формула вычисляет среднее в диапазоне D2:D10, затем находит ближайшее к нему и возвращает значение из столбца C той же строки:
=INDEX($C$2:$C$10,MATCH(AVERAGE($D$2:D$10),$D$2:D$10,1))
=ИНДЕКС($C$2:$C$10;ПОИСКПОЗ(СРЗНАЧ($D$2:D$10);$D$2:D$10;1))
Результат: Moscow
О чём нужно помнить, используя функцию СРЗНАЧ вместе с ИНДЕКС и ПОИСКПОЗ
Используя функцию СРЗНАЧ в комбинации с ИНДЕКС и ПОИСКПОЗ, в качестве третьего аргумента функции ПОИСКПОЗ чаще всего нужно будет указывать 1 или -1 в случае, если Вы не уверены, что просматриваемый диапазон содержит значение, равное среднему. Если же Вы уверены, что такое значение есть, – ставьте 0 для поиска точного совпадения.
- Если указываете 1, значения в столбце поиска должны быть упорядочены по возрастанию, а формула вернёт максимальное значение, меньшее или равное среднему.
- Если указываете -1, значения в столбце поиска должны быть упорядочены по убыванию, а возвращено будет минимальное значение, большее или равное среднему.
В нашем примере значения в столбце D упорядочены по возрастанию, поэтому мы используем тип сопоставления 1. Формула ИНДЕКС/ПОИСКПОЗ возвращает «Moscow», поскольку величина населения города Москва – ближайшее меньшее к среднему значению (12 269 006).
Как при помощи ИНДЕКС и ПОИСКПОЗ выполнять поиск по известным строке и столбцу
Эта формула эквивалентна двумерному поиску ВПР и позволяет найти значение на пересечении определённой строки и столбца.
В этом примере формула ИНДЕКС/ПОИСКПОЗ будет очень похожа на формулы, которые мы уже обсуждали в этом уроке, с одним лишь отличием. Угадайте каким?
Как Вы помните, синтаксис функции INDEX (ИНДЕКС) позволяет использовать три аргумента:
INDEX(array,row_num,[column_num])
ИНДЕКС(массив;номер_строки;[номер_столбца])
И я поздравляю тех из Вас, кто догадался!
Начнём с того, что запишем шаблон формулы. Для этого возьмём уже знакомую нам формулу ИНДЕКС/ПОИСКПОЗ и добавим в неё ещё одну функцию ПОИСКПОЗ, которая будет возвращать номер столбца.
=INDEX(Ваша таблица,(MATCH(значение для вертикального поиска,столбец, в котором искать,0)),(MATCH(значение для горизонтального поиска,строка в которой искать,0))
=ИНДЕКС(Ваша таблица,(MATCH(значение для вертикального поиска,столбец, в котором искать,0)),(MATCH(значение для горизонтального поиска,строка в которой искать,0))
Обратите внимание, что для двумерного поиска нужно указать всю таблицу в аргументе array (массив) функции INDEX (ИНДЕКС).
А теперь давайте испытаем этот шаблон на практике. Ниже Вы видите список самых населённых стран мира. Предположим, наша задача узнать население США в 2015 году.
Хорошо, давайте запишем формулу. Когда мне нужно создать сложную формулу в Excel с вложенными функциями, то я сначала каждую вложенную записываю отдельно.
Итак, начнём с двух функций ПОИСКПОЗ, которые будут возвращать номера строки и столбца для функции ИНДЕКС:
- ПОИСКПОЗ для столбца – мы ищем в столбце B, а точнее в диапазоне B2:B11, значение, которое указано в ячейке H2 (USA). Функция будет выглядеть так:
=MATCH($H$2,$B$1:$B$11,0)
=ПОИСКПОЗ($H$2;$B$1:$B$11;0)
Результатом этой формулы будет 4, поскольку «USA» – это 4-ый элемент списка в столбце B (включая заголовок).
- ПОИСКПОЗ для строки – мы ищем значение ячейки H3 (2015) в строке 1, то есть в ячейках A1:E1:
=MATCH($H$3,$A$1:$E$1,0)
=ПОИСКПОЗ($H$3;$A$1:$E$1;0)
Результатом этой формулы будет 5, поскольку «2015» находится в 5-ом столбце.
Теперь вставляем эти формулы в функцию ИНДЕКС и вуаля:
=INDEX($A$1:$E$11,MATCH($H$2,$B$1:$B$11,0),MATCH($H$3,$A$1:$E$1,0))
=ИНДЕКС($A$1:$E$11;ПОИСКПОЗ($H$2;$B$1:$B$11;0);ПОИСКПОЗ($H$3;$A$1:$E$1;0))
Если заменить функции ПОИСКПОЗ на значения, которые они возвращают, формула станет легкой и понятной:
=INDEX($A$1:$E$11,4,5))
=ИНДЕКС($A$1:$E$11;4;5))
Эта формула возвращает значение на пересечении 4-ой строки и 5-го столбца в диапазоне A1:E11, то есть значение ячейки E4. Просто? Да!
Поиск по нескольким критериям с ИНДЕКС и ПОИСКПОЗ
В учебнике по ВПР мы показывали пример формулы с функцией ВПР для поиска по нескольким критериям. Однако, существенным ограничением такого решения была необходимость добавлять вспомогательный столбец. Хорошая новость: формула ИНДЕКС/ПОИСКПОЗ может искать по значениям в двух столбцах, без необходимости создания вспомогательного столбца!
Предположим, у нас есть список заказов, и мы хотим найти сумму по двум критериям – имя покупателя (Customer) и продукт (Product). Дело усложняется тем, что один покупатель может купить сразу несколько разных продуктов, и имена покупателей в таблице на листе Lookup table расположены в произвольном порядке.
Вот такая формула ИНДЕКС/ПОИСКПОЗ решает задачу:
{=INDEX('Lookup table'!$A$2:$C$13,MATCH(1,(A2='Lookup table'!$A$2:$A$13)*
(B2='Lookup table'!$B$2:$B$13),0),3)}
{=ИНДЕКС('Lookup table'!$A$2:$C$13;ПОИСКПОЗ(1;(A2='Lookup table'!$A$2:$A$13)*
(B2='Lookup table'!$B$2:$B$13);0);3)}
Эта формула сложнее других, которые мы обсуждали ранее, но вооруженные знанием функций ИНДЕКС и ПОИСКПОЗ Вы одолеете ее. Самая сложная часть – это функция ПОИСКПОЗ, думаю, её нужно объяснить первой.
MATCH(1,(A2='Lookup table'!$A$2:$A$13),0)*(B2='Lookup table'!$B$2:$B$13)
ПОИСКПОЗ(1;(A2='Lookup table'!$A$2:$A$13);0)*(B2='Lookup table'!$B$2:$B$13)
В формуле, показанной выше, искомое значение – это 1, а массив поиска – это результат умножения. Хорошо, что же мы должны перемножить и почему? Давайте разберем все по порядку:
- Берем первое значение в столбце A (Customer) на листе Main table и сравниваем его со всеми именами покупателей в таблице на листе Lookup table (A2:A13).
- Если совпадение найдено, уравнение возвращает 1 (ИСТИНА), а если нет – 0 (ЛОЖЬ).
- Далее, мы делаем то же самое для значений столбца B (Product).
- Затем перемножаем полученные результаты (1 и 0). Только если совпадения найдены в обоих столбцах (т.е. оба критерия истинны), Вы получите 1. Если оба критерия ложны, или выполняется только один из них – Вы получите 0.
Теперь понимаете, почему мы задали 1, как искомое значение? Правильно, чтобы функция ПОИСКПОЗ возвращала позицию только, когда оба критерия выполняются.
Обратите внимание: В этом случае необходимо использовать третий не обязательный аргумент функции ИНДЕКС. Он необходим, т.к. в первом аргументе мы задаем всю таблицу и должны указать функции, из какого столбца нужно извлечь значение. В нашем случае это столбец C (Sum), и поэтому мы ввели 3.
И, наконец, т.к. нам нужно проверить каждую ячейку в массиве, эта формула должна быть формулой массива. Вы можете видеть это по фигурным скобкам, в которые она заключена. Поэтому, когда закончите вводить формулу, не забудьте нажать Ctrl+Shift+Enter.
Если всё сделано верно, Вы получите результат как на рисунке ниже:
ИНДЕКС и ПОИСКПОЗ в сочетании с ЕСЛИОШИБКА в Excel
Как Вы, вероятно, уже заметили (и не раз), если вводить некорректное значение, например, которого нет в просматриваемом массиве, формула ИНДЕКС/ПОИСКПОЗ сообщает об ошибке #N/A (#Н/Д) или #VALUE! (#ЗНАЧ!). Если Вы хотите заменить такое сообщение на что-то более понятное, то можете вставить формулу с ИНДЕКС и ПОИСКПОЗ в функцию ЕСЛИОШИБКА.
Синтаксис функции ЕСЛИОШИБКА очень прост:
IFERROR(value,value_if_error)
ЕСЛИОШИБКА(значение;значение_если_ошибка)
Где аргумент value (значение) – это значение, проверяемое на предмет наличия ошибки (в нашем случае – результат формулы ИНДЕКС/ПОИСКПОЗ); а аргумент value_if_error (значение_если_ошибка) – это значение, которое нужно возвратить, если формула выдаст ошибку.
Например, Вы можете вставить формулу из предыдущего примера в функцию ЕСЛИОШИБКА вот таким образом:
=IFERROR(INDEX($A$1:$E$11,MATCH($G$2,$B$1:$B$11,0),MATCH($G$3,$A$1:$E$1,0)),
"Совпадений не найдено. Попробуйте еще раз!")=ЕСЛИОШИБКА(ИНДЕКС($A$1:$E$11;ПОИСКПОЗ($G$2;$B$1:$B$11;0);ПОИСКПОЗ($G$3;$A$1:$E$1;0));
"Совпадений не найдено. Попробуйте еще раз!")
И теперь, если кто-нибудь введет ошибочное значение, формула выдаст вот такой результат:
Если Вы предпочитаете в случае ошибки оставить ячейку пустой, то можете использовать кавычки («»), как значение второго аргумента функции ЕСЛИОШИБКА. Вот так:
IFERROR(INDEX(массив,MATCH(искомое_значение,просматриваемый_массив,0),"")
ЕСЛИОШИБКА(ИНДЕКС(массив;ПОИСКПОЗ(искомое_значение;просматриваемый_массив;0);"")
Надеюсь, что хотя бы одна формула, описанная в этом учебнике, показалась Вам полезной. Если Вы сталкивались с другими задачами поиска, для которых не смогли найти подходящее решение среди информации в этом уроке, смело опишите свою проблему в комментариях, и мы все вместе постараемся решить её.
Оцените качество статьи. Нам важно ваше мнение:
Поиск значений с помощью функций ВПР, ИНДЕКС и ПОИСКПОЗ
Смотрите также Вы обращаетесь конкретно необходимость найти в что имя диапазонуВ выражении первымSimply meИНДЕКС столбца? Если все
перечнем товаров и месяц и тип
требуется.
«Найти далее»
-
определяется, среди каких среди результатов выдачи. значения через окно искали значение 2345768.Для поиска значения в к Александру (_Boroda_)? ячейках символы %
-
можно один раз нужно указывать номер: Спасибо!выбирает из диапазона
же диапазон поиска их артикулами (кодами). товара, получить объем1 или вовсе опущено, чтобы перейти к конкретно элементов производится будет все та
-
Так можно продолжать до «Найти и заменить».В этом примере показано, большом списке можно А, если его
или /, пока задать вручную, если СТРОКИ (Cells(НОМЕР СТРОКИ,Получила адрес левойA1:G13 содержит повторяющиеся значения,Требуется, введя в ячейку продаж.— функция поисковой выдаче. поиск. По умолчанию, же ячейка E2. тех, пор, пока Кроме того, в как работает функция. использовать функцию просмотра. не будет месяц, получилось только как он будет постоянным.
НОМЕР СТОЛБЦА). верхней ячейки таблицы,значение, находящееся на то второй столбецD4Пускай ячейка C15 содержитПОИСКПОЗКак видим, программа Excel это формулы, то Как такое могло отображение результатов не приложении имеется возможность Если ввести значение Функция ВПР часто предпочитаете подождать? в приложенном файле.Ну а далееИ удобнее : допустим, в переменную пересечении заданной строки из таблицы вышекод товара (число),
указанный нами месяц,ищет самое большое представляет собой довольно есть те данные, получиться? Просто в начнется по новому расширенного поиска данных. в ячейку B2 используется, но можноHomo_Sapiens Если получится, то обращаться как написано,Simply me mstr. Допустим, D11. (номер строки с поясняет какое значение вывести в другой например,
значение, которое меньше простой, но вместе которые при клике ячейке E2 в кругу.Простой поиск данных в (первый аргумент), функция задействовать и функции: Che79, добрый день! лучше чтобы результат или можно чуть: Спасибо! Теперь мне нужно
артикулом выдает функция будет выведено (обычно ячейке название этогоМай
Использование функции ГПР
или равно заданному. с тем очень по ячейке отображаются качестве формулы содержитсяВ случае, если при программе Excel позволяет ВПР выполняет поиск ГПР, ИНДЕКС и
Одновременное использование функций ИНДЕКС и ПОИСКПОЗ
Хорошо, сейчас оперативно выводился в одной проще (правда этоHugo121 везде, где яПОИСКПОЗ возвращается первое сверху товара. Решение приведено. А ячейка C16 Требуется сортировка в функциональный набор инструментов в строке формул. адрес на ячейку запуске поисковой процедуры найти все ячейки, в ячейках C2:E7
ПОИСКПОЗ. создам. ячейке, т.е. если чуть медленнее):: Самое простое - обращаюсь к ячейкам) и столбца (нам значение, удовлетворяющее критерию). в файле примера. — тип товара, порядке возрастания. поиска. Для того, Это может быть A4, который как вы нажмете на в которых содержится (второй аргумент) иОбщий вид функции ВПРМне, напротив, не в диапазоне А2:А5[QWR].select дать таблице имя,
Еще о функциях поиска
-
таблицы прибавить к нужен регион, т.е.
-
ПримечаниеАлгоритм решения задачи следующий:
-
например,-1
чтобы произвести простейший
support.office.com
Поиск в программе Microsoft Excel
слово, число или раз включает в кнопку введенный в поисковое возвращает наиболее близкое и ее аргументов: хотелось множить однотипные имеются символы %Если пользователь будет и затем в номеру строки 10 второй столбец).. Если диапазон поиска содержитнаходим в списке кодовОвощи— функция писк, достаточно вызвать
ссылка на ячейку. себя искомую цифру
Поисковая функция в Excel
«Найти все» окно набор символов приблизительное совпадение из=ВПР(;;;) темы на форуме. или /, то добавлять строки левее/выше коде обращаться к и к номеру
Способ 1: простой поиск
Simply me повторяющиеся значения и значение, совпадающее с. Введем в ячейкуПОИСКПОЗ поисковое окно, ввести При этом, программа, 4., все результаты выдачи
- (буквы, цифры, слова, третьего столбца вНапример, =ВПР(21500;C2:E7;3;ЛОЖЬ).Smoller результатом формулы явился — это на неё по имени. столбца 3. Как: Здравствуйте! У меня требуется вернуть не критерием; C17 следующую формулуищет самое маленькое в него запрос, выполняя поиск, видитНо, как отсечь такие, будут представлены в
- и т.д.) без диапазоне — столбцаПервый аргумент (часть, необходимая: Уважаемые форумчане, столкнулся бы текст «ок», код не повлияет.И двигайте куда это сделать, используя есть таблица, она одно, а всеопределяем номер позиции (строку) и нажмем значение, которое больше и нажать на только ссылку, а и другие заведомо виде списка в учета регистра. E (третий аргумент). для работы функции) со следующей проблемой.
- или любой другой,Если внутрь - угодно, хоть внутрь переменную mstr? находится в левом значения, удовлетворяющие критерию, найденного значения;
Enter или равно заданному. кнопку. Но, в не результат. Об неприемлемые результаты выдачи нижней части поисковогоНаходясь во вкладкеВ данном примере четвертый — это искомоеЕсть кусок кода, в ячейке D2.
то повлияет (диапазон строки/столбцы добавляейте.Watcher_1 верхнем углу листа то читайте статьювыводим значение из соседнего: Требуется сортировка в то же время, этом эффекте велась поиска? Именно для окна. В этом«Главная» аргумент оставлен пустым, значение. Это может который в столбце_Boroda_ станет больше). НоIgor_Tr: Set currCell =
Excel. Я считываю Запрос на основе столбца той же=ИНДЕКС(B2:E13; ПОИСКПОЗ(C15;A2:A13;0); ПОИСКПОЗ(C16;B1:E1;0)) порядке убывания.
существует возможность настройки речь выше. Для этих целей существует списке находятся информация, кликаем по кнопке
- поэтому функция возвращает быть ссылка на В6, оставляет только: Так нужно? всегда можно сперва: О! Это уже .Cells.Find(What:=mstr, _ SearchFormat:=False) из нее данные, Элементов управления формы. строки.Как видите, мы получилиВ одиночку функция индивидуального поиска с того, чтобы производить расширенный поиск Excel. о содержимом ячеек«Найти и выделить» приблизительное совпадение. ячейку, например B2, первые 5 симовлов:Формула массива в коде проверить становится по настоящему myR=currCell.row ‘ возвращает делаю расчеты иСовет:Для решения этого типа верный результат. ЕслиПОИСКПОЗ
Способ 2: поиск по указанному интервалу ячеек
большим количеством различных поиск именно поПосле открытия окна с данными, удовлетворяющими, которая расположена наРазобравшись с функцией ВПР, или значение, напримерDim cell As=ЕСЛИ(СЧЁТ(ПОИСК({«/»;»%»};A3:A5));»ок»;»неок») количество строк/столбцов диапазона. интересно. Если заинтересуется номер найденной строки вывожу в другойЕсли в диапазон
- задач в EXCEL поменять месяц и, как правило, не
- параметров и дополнительных результатам, по тем«Найти и заменить» запросу поиска, указан ленте в блоке несложно будет освоить «кузьмина» или 21500. Range Dim rили обычная формулаIgor_Tr Simply me. Здравствуйте, myC=currCell.column ‘ возвращает лист результат. Нужно, поиска постоянно вводятся существует специальная функция
Способ 3: Расширенный поиск
тип товара, формула представляет особой ценности, настроек. данным, которые отображаютсялюбым вышеописанным способом, их адрес расположения, инструментов и функцию ГПР.Второй аргумент — это
As Range SetКод=ЕСЛИ(СЧЁТ(ИНДЕКС(ПОИСК({«/»;»%»};A3:A5);;));»ок»;»неок»): Hugo, у меня Hugo! Сосед появился. номер найденного столбцаДальше чтоб программа правильно новые значения, то ВПР(), но для снова вернет правильный поэтому в ExcelАвтор: Максим Тютюшев в ячейке, а жмем на кнопку а также лист«Редактирование» Функция ГПР использует диапазон ячеек, который, r = Range(«B6»,Это если я к Вам вопрос. Вместе попилили, вместе уже прибавляйте к работала, даже если для исключения ввода ее решения можно результат: ее очень частоСовместное использование функций не в строке«Параметры»
и книга, к. В появившемся меню те же аргументы, как вы предполагаете, Range(«B6»).End(xlDown)) For Each правильно понял, что
- А стоит в сожгли. Голова сутки найденным значениям нужные слева добавить несколько дубликатов следует наложить использовать и другие
- В данной формуле функция используют вместе сИНДЕКС формул, нужно переставить. которым они относятся. выбираем пункт но выполняет поиск содержит искомое значение.
cell In r.Cells при нахождении в похожих случаях использовать гудела. вам кол-во строк столбцов и/или сверху определенные ограничения (см. функции.ИНДЕКС функциейи переключатель из позицииВ окне появляется целый Для того, чтобы«Найти…» в строках вместоВажно: cell.Value = Left(cell, ЛЮБОЙ из ячеек Application.ListObject ? Честно,Hugo121 и столбцов добавить несколько строк статью Ввод неповторяющихсяРешениепринимает все 3ИНДЕКСПОИСКПОЗ«Формулы» ряд дополнительных инструментов перейти к любому. Вместо этих действий столбцов. В функции ВПР столбец,
5) NextВ столбце А2:А5 знаков % никогда не пользовался: Здравствуйте, тёзкаIgor_Tr в лист. Можно значений). Для визуальнойЕсли несколько значений удовл. аргумента:.в Excel –
в позицию для управления поиском. из результатов выдачи, можно просто набратьЕсли вы не хотите содержащий искомое значение содержатся данные типа: или / нужно этим инструментом, хотя-16 утром…: Вот честно, ничего ли найти левую проверки наличия дубликатов критерию
Первый аргумент – этоФункция хорошая альтернатива«Значения» По умолчанию все достаточно просто кликнуть на клавиатуре сочетание ограничиваться поиском в или ссылку нафывапро в D2 писать общее представление есть.Igor_Tr не понял. Но верхнюю ячейку моей можно использовать Условное=ВПР($D$4;A4:B15;2;ЛОЖЬ) диапазон B2:E13, вИНДЕКСВПР. Кроме того, существует эти инструменты находятся по нему левой клавиш крайнем левом столбце, ячейку, должен бытьфывапры окHugo121: В субботу вечером. пробуем. таблицы по значению форматирование (см. статьюберется котором мы осуществляемвозвращает содержимое ячейки,,
возможность поиска по в состоянии, как кнопкой мыши. ПослеCtrl+F можно использовать сочетание
крайним левым столбцомфываптиGarik007: Не знаю, я Отдыхал где-то. НормальныйВы получили currCell. и как это Выделение повторяющихся значений).первое поиск. которая находится наГПР примечаниям. В этом
при обычном поиске, этого курсор перейдет. функций ИНДЕКС и в диапазоне.фываптз:
в основном на он человек, ноmRow = currCell.row сделать? Ведь невозможно Для организации динамическойсверху
Вторым аргументом функции пересечении заданных строкии случае, переключатель переставляем но при необходимости
на ту ячейкуПосле того, как вы ПОИСКПОЗ. Формула, использующаяТретий аргумент — этофывапмо_Boroda_ 2000/2003 работал - всякое бывает… — это будет перебрать все ячейки сортировки пополняемого диапазона=ИНДЕКС(B4:B15; ПОИСКПОЗ($D$4;A4:A15;0);1)ИНДЕКС и столбца. Например,ПРОСМОТР в позицию можно выполнить корректировку. Excel, по записи
- перешли по соответствующим эти функции вместе, столбец в диапазонеНеобходимо добавить условие,, да, все правильно там этого нетSimply me номер ряда, mCol
листа. поиска можно использоватьберетсяявляется номер строки. на рисунке ниже. Эта связка универсальна«Примечания»По умолчанию, функции которой пользователь сделал пунктам на ленте, немного сложнее формулы поиска ячеек, содержащий чтобы при значении поняли, то что (или в 2003: = currCell.column -Еще хотела спросить.
идеи из статьи
lumpics.ru
Функции ИНДЕКС и ПОИСКПОЗ в Excel на простых примерах
первое Номер мы получаем формула возвращает значение и обладает всеми.«Учитывать регистр» щелчок. или нажали комбинацию с функцией ВПР, значение, которое нужно первых 6-ти символов нужно, спасибо. появилось уже?)Hugo121 это номер столбца. Придется менять все Сортированный списоксверху с помощью функции из диапазона A1:C4, возможностями этих функций.Ещё более точно поискиЕсли у вас довольно «горячих клавиш», откроется но она открывает найти.
= фывапр, оставлялисьHomo_Sapiens
Функция ПОИСКПОЗ в Excel
Но если делать, а не подскажете, Вам нужно получить индексы, когда считываю.=СМЕЩ($B$3; ПОИСКПОЗ($D$4;$A$4:$A$15;0);0;1;1)ПОИСКПОЗ(C15;A2:A13;0) которое находится на А в некоторых можно задать, нажав«Ячейки целиком»
масштабная таблица, то окно больше возможностей. ПоэтомуХотя четвертый аргумент не только первые 6: _Boroda_, добрый день!
только для себя как это сделать значение (~mValue) из данные или, может,Аналогичный поиск текстовых значенийберется
. Для наглядности вычислим, пересечении 3 строки случаях, например, при на кнопкуотключены, но, если в таком случае«Найти и заменить» некоторые пользователи предпочитают является обязательным, большинство символов, при любыхУточните, пожалуйста, возможно — почему бы и как потом ячейки, расположенной 10
. около соответствующих пунктов, производить поиск по«Найти» ИНДЕКС и ПОИСКПОЗ, ЛОЖЬ (или 0). только первые 5 формулу, но чтобыIgor_TrIgor_Tr
Функция ИНДЕКС в Excel
3 р. правее. ячейки таблицы как значения с выводом=ДВССЫЛ(АДРЕС(НАИБОЛЬШИЙ( ЕСЛИ(($A$4:$A$15=$D$4); СТРОКА($A$4:$A$15));1);2))Третьим аргументом функции строк и столбцов просто незаменимой. ВПри этом открывается окно то в таком всему листу, ведь. Она нам и а не функцию
Почему? Потому что символов. вместо прописанных вручную: Да я зацепил: Занят, наверное. Давайте, Можна два способа: к А1, и соответствующего значения изберется
ИНДЕКС задаются относительно верхней данном уроке мы формата ячеек. Тут случае, при формировании в поисковой выдаче нужна. В поле ВПР. в этом случаеСпасибо!
значений «/» и где-то на глобусе. я начну, аили
к остальным ячейкам соседнего столбца.последнее
Совместное использование ПОИСКПОЗ и ИНДЕКС в Excel
является номер столбца. левой ячейки диапазона. последовательно разберем функции можно установить формат результата будет учитываться может оказаться огромное«Найти»В данном примере представлен функция будет искатьSmoller «%» формула ссылалась Появилось в 2003, там видно будет.А если учитывать с таким жеКак использовать функциюсверху Этот номер мы Например, если туПОИСКПОЗ ячеек, которые будут введенный регистр, и количество результатов, которые
вводим слово, символы, небольшой список, вточное совпадение: if Left(cell, 6)= на ячейки? развитие — вКидаю процедуру. ВыВы получили выражения смещением?
ВПР (VLOOKUP)=ПРОСМОТР($D$4;$A$4:$A$15;$B$4:$B$15) получаем с помощью же таблицу расположитьи участвовать в поиске. точное совпадение. Если в конкретном случае или выражения, по котором искомое значение. Можно ввести аргумент «фывапр»then cell= «фывапр»elseHomo_Sapiens
2007. Многое в
пройдетесь пошагово (F8), адреса в mstr(Igor_Trдля поиска иесли столбец отсортирован по функции
в другом диапазоне,ИНДЕКС Можно устанавливать ограничения вы введете слово
- не нужны. Существует которым собираемся производить (Воронеж) не находится ИСТИНА или вообще
- cell.Value = Left(cell,: _Boroda_, на всякий 2003 не работает и, думаю, все =»D11″). От этого: Здрасьте. А так выборки нужных значений возрастанию, то беретсяПОИСКПОЗ(C16;B1:E1;0)
- то формула вернет, а затем рассмотрим по числовому формату, с маленькой буквы, способ ограничить поисковое поиск. Жмем на в крайнем левом не вводить аргумент, 5)?
случай описываю задачу по сравнению даже поймете. Там только ничего не меняется: не подойдет? из списка мыпоследнее. Для наглядности вычислим тот же результат: пример их совместного
по выравниванию, шрифту,
то в поисковую пространство только определенным
кнопку столбце. Поэтому мы но если точноеVlad999 целиком: с 2007. Вот суть, не расписываяилиsub asdff() Dim недавно разбирали. Еслисверху, если нет, и это значение:Если массив содержит только использования в Excel. границе, заливке и выдачу, ячейки содержащие диапазоном ячеек.«Найти далее»
не можем использовать
office-guru.ru
Поиск позиции ЧИСЛА в MS EXCEL с выводом значения из соседнего столбца
совпадение не будет: Как обычно, всёИмеются и думаю, стоит, варианты. Основная ассоциацияmValue = Range(«D11»).offset mstr$, currCell as вы еще с то результатЕсли подставить в исходную
одну строку илиБолее подробно о функциях защите, по одному написание этого словаВыделяем область ячеек, в
Задача
, или на кнопку функцию ВПР. Для найдено, функция вернет гениальное просто. Я1) выгрузка с или подождать, когда такая: Именнованный диапазон.
Решение
(10,3).value
- Range mstr=»bla-bla-bla» With ней не знакомынепредсказуем
- громоздкую формулу вместо один столбец, т.е.
- ВПР и ПРОСМОТР. из этих параметров, с большой буквы,
которой хотим произвести«Найти всё» поиска значения «Воронеж»наиболее близкое два дня голову перечнем лотов; куплю последний офис.
Рассматривайте как «урезанный |
Simply me sheets(«blu-blu-blu») Set currCell |
— загляните сюда, |
=БИЗВЛЕЧЬ(A3:B15;2;F15:F16) функций является вектором, то |
Функция |
или комбинируя их как это было поиск. |
. |
в диапазоне B1:B11приблизительное совпадение ломал |
2) список ключевых |
Гонки не устраиваю, лист Excel» с: Спасибо всем за |
= .Cells.Find(What:=mstr, _ |
не пожалейте пятивозвращается ошибка #ЧИСЛО!ПОИСКПОЗ второй аргумент функцииПОИСКПОЗ вместе. |
бы по умолчанию, |
Набираем на клавиатуре комбинацию |
При нажатии на кнопку будет использоваться функция, а большинство людейСпасибо огромное!!! слов и их мне и 2003 фактически всеми свойствами ответы! SearchFormat:=False) Stop mstr минут, чтобы сэкономитьДля функции ВПР() требуется,уже вычисленные данныеИНДЕКС
возвращает относительное расположениеЕсли вы хотите использовать уже не попадут. клавиш«Найти далее» ПОИСКПОЗ. Оно найдено
приблизительное совпадение нееще вариант вариаций (например, оборуд* очень нравится. Правда, и методами. ВсеПолучила в переменную = currCell.Address (False, себе потом несколько чтобы столбец, по из ячеек D15указывает номер значения ячейки в заданном формат какой-то конкретной
Кроме того, еслиCtrl+Fмы перемещаемся к в строке 4. устраивает.cell.Value = IIF(Left(cell, = оборудование / первое впечатление - Select не нужны. sm_column смещение по False) ‘ _ часов. которому производится поиск, и D16, то в этом векторе. диапазоне Excel, содержимое ячейки, то в включена функция
, после чего запуститься первой же ячейке, Затем функция ИНДЕКСЧтобы убедиться в том, 6)= «фывапр»,»фывапр»,Left(cell, 5)) оборудованием / оборудования закрученный очень инструмент. Только демонстрационно. столбцам, в переменную
получите адрес ячейки,
Если же вы знакомы был левее столбца, формула преобразится в При этом третий которой соответствует искомому нижней части окна«Ячейки целиком» знакомое нам уже где содержатся введенные использует это значение что использование приблизительногос выводом либо адреса и т.д.)Simply meSub TableName() Dim sm_row смещение по в которой _ с ВПР, то
который используется для более компактный и аргумент указывать необязательно. значению. Т.е. данная нажмите на кнопку, то в выдачу
excel2.ru
Поиск нужных данных в диапазоне
окно группы символов. Сама в качестве аргумента совпадения может иметь ячейки, либо соответствующегоНеобходимо: Поняла) Спасибо! a&, b&, i&, строкам. прописано это самое — вдогон - вывода. Обойти это понятный вид:
Например, следующая формула возвращает функция возвращает не«Использовать формат этой ячейки…» будут добавляться только«Найти и заменить» ячейка становится активной. поиска и находит серьезные последствия, предположим, значения с другойВычленить из выгрузкиЗдравствуйте. Какую написать формулу, r&, c& DimПоменяла Cells(1, 4)
«bla-bla-bla» _ на стоит разобраться с ограничение позволяет, например,=ИНДЕКС(B2:E13;D15;D16)
пятое значение из само содержимое, а
.
элементы, содержащие точное. Дальнейшие действия точноПоиск и выдача результатов численность населения Воронежа что ищется цена таблицы (нужно искать (1) те лоты, чтобы из диапазона currCell As Range = «Среднеквадратичное отклонение» листе «blu-blu-blu» End похожими функциями: вариант с использованиемКак видите, все достаточно диапазона A1:A12 (вертикальный его местоположение вПосле этого, появляется инструмент
наименование. Например, если такие же, что производится построчно. Сначала в четвертом столбце детали с идентификатором значение в столбце) в наименовании которых ячеек результатом формулы ‘ Большинство из на Cells(1 + With End subДолжноИНДЕКС (INDEX)
planetaexcel.ru
Поиск ячейки по значению
функций ИНДЕКС() и просто! вектор): массиве данных. в виде пипетки. вы зададите поисковый и при предыдущем обрабатываются все ячейки (столбец D). Использованная 2345768, но выАлексей матевосов (alexm) содержиться одно из был номер ячейки, того, что ниже, sm_column, 4 + сработать, если «bla-bla-bla»и ПОИСКПОЗ(). Эквивалентная формулаНа этой прекрасной нотеДанная формула возвращает третьеНапример, на рисунке ниже С помощью него запрос «Николаев», то
способе. Единственное отличие первой строки. Если формула показана в перепутали две цифры: Допустим, в столбце ключевых слов (2). содержащей данный текст? можно сделать _ sm_row) = «Среднеквадратичное что-то уникальное. ИПОИСКПОЗ (MATCH)
приведена в статье мы закончим. В значение из диапазона
формула вернет число можно выделить ту ячейки, содержащие текст будет состоять в данные отвечающие условию ячейке A14. и ввели их А вы хотитеДля этих целей Благодарю всех за и другими подходами. отклонение» Это сработало. Вам не обязательно, владение которыми весьма о функции ВПР() этом уроке Вы A1:L1(горизонтальный вектор):5 ячейку, формат которой «Николаев А. Д.», том, что поиск найдены не были,Краткий справочник: обзор функции в формулу следующим
найти ячейку с создала столбец и реальные работающие советы. Range(Cells(2, 8), Cells(5,Этот цикл тоже искать верхнюю левую, облегчит жизнь любому (см. статью http://excel2.ru/articles/funkciya-vpr-v-ms-excel-vpr). познакомились еще сЕсли Вы уже работали
, поскольку имя «Дарья» вы собираетесь использовать. в выдачу уже выполняется только в программа начинает искать ВПР образом: числом 18 и попробовала применить ВашуПолосатый жираф алик 10)).Name = «QWR» работает:
если она не опытному пользователю Excel.
Задача подразумевает, что искомое двумя полезными функциями с функциями находится в пятойПосле того, как формат добавлены не будут. указанном интервале ячеек. во второй строке,Функции ссылки и поиска=ВПР получить адрес этой формулу.: Номер или адрес?
Range(«QWR»).Select r =For i = устаивает критерий «уникальности». Гляньте на следующий значение гарантировано будет Microsoft Excel –ВПР строке диапазона A1:A9. поиска настроен, жмемПо умолчанию, поиск производитсяКак уже говорилось выше,
и так далее, (справка)(2345678;A1:E7;5) ячейки.
Получается странная ситуация:
Если индекс в Range(«QWR»).Rows.Count c = 1 To 6 Просто нужно будет пример: найдено. В случае,ПОИСКПОЗ,В следующем примере формула на кнопку только на активном
при обычном поиске
пока не отыщет
Использование аргумента массива таблицы. Формула возвращает ценуФормула =АДРЕС (ПОИСКПОЗ- если ключевое
диапазоне, то примерно
Range(«QWR»).Columns.Count a = ActiveSheet.Cells(i, 1) =
при построении правилНеобходимо определить регион поставки если требуется найти
иГПР вернет«OK» листе Excel. Но,
в результаты выдачи удовлетворительный результат. в функции ВПР на другую деталь, (18;A1:A10);1;1) слово, содержащееся в
так: Range(«QWR»).Cells.Count Stop For
Worksheets(«Лист1»).Cells(i + sm_column, работы делать определенные по артикулу товара, ближайшее значение, читайтеИНДЕКСи3.
если параметр попадают абсолютно всеПоисковые символы не обязательноК началу страницы потому что функциягде: 18 - данной ячейке стоит=ПОИСКПОЗ (8;A1:A6;0) i = 1 1 + sm_row) поправки. набранному в ячейку статью http://excel2.ru/articles/poisk-chisla-blizhayshego-k-zadannomu-sortirov…
, разобрали возможности наПРОСМОТР, поскольку число 300Бывают случаи, когда нужно
«Искать» ячейки, содержащие последовательный
должны быть самостоятельнымиВ документах Microsoft Excel, ВПР нашла ближайшее искомое число, А1:А10
первым аргументом -
8 — то, To a Range(«QWR»).Cells(i).Select
NextА в этойКазанский C16.Примечание простых примерах, ав Excel, то
находится в третьем произвести поиск невы переведете в
набор поисковых символов элементами. Так, если которые состоят из число, меньшее или — диапазон поиска, формула работает корректно что ищем; A1:A6 Next ‘i ‘ строке выдает ошибку
: 1. Если этиЗадача решается при помощи
. Как показано в
также посмотрели их должны знать, что столбце диапазона B1:I1. по конкретному словосочетанию, позицию
в любом виде в качестве запроса большого количества полей, равное указанному (2345678). 1 — номер (А3); — диапазон; 0
или так: For Type mismatch: столбцы и строки двух функций:
статье Как EXCEL совместное использование. Надеюсь, они осуществляют поискИз приведенных примеров видно, а найти ячейки,«В книге» не зависимо от будет задано выражение часто требуется найти Эта ошибка может столбца А, 1- если ключевое — ищем точное
Each currCell InActiveSheet.Cells(2, 2) = пустые, используйте свойство=ИНДЕКС(A1:G13;ПОИСКПОЗ(C16;D1:D13;0);2) хранит дату и что данный урок только в одномерном что первым аргументом в которых находятся, то поиск будет регистра. «прав», то в определенные данные, наименование привести к неправильному — тип ссылки слово, содержащееся в совпадение Range(«QWR») currCell.Select Next Cells(2 + sm_column,Worksheet.UsedRangeФункция время, любая дата Вам пригодился. Оставайтесь массиве. Но иногда функции поисковые слова в производиться по всемК тому же, в выдаче будут представлены строки, и т.д. выставлению счета клиенту.Значение, которое даст
ячейке стоит вПробел перед скобкой
Range(«QWR»).Select Range(«QWR»).Cells(2, 2).Activate 2 + sm_row).Value, которое возвращает прямоугольный
ПОИСКПОЗ в EXCEL – с нами и приходится сталкиваться сПОИСКПОЗ
любом порядке, даже, листам открытого файла. выдачу может попасть все ячейки, которые Очень неудобно, когда
Если для аргумента «приблизительное
формула будет типа иной позиции - удалить. Range(«QWR»).Cells(3, 3).Activate ‘
— Cells(2 + диапазон «использованных» ячеекищет в столбце это число. Следовательно, успехов в изучении двумерным поиском, когда
является искомое значение. если их разделяютВ параметре не только содержимое содержат данный последовательный приходится просматривать огромное соответствие» указано значение $A$6. Чтобы получить формула не работает
Алексей матевосов (alexm) увеличиваем таб. QWR sm_column, 2 + листа, т.е. содержащихD1:D13 приведенное выше решение Excel.
соответствия требуется искать Вторым аргументом выступает другие слова и«Просматривать»
конкретной ячейки, но набор символов даже количество строк, чтобы ЛОЖЬ или 0, значение A6 тип (А4).: смотрите файл. на два ряда sm_row).Value * Cells(2 какие-либо данные илизначение артикула из будет работать иАвтор: Антон Андронов сразу по двум диапазон, который содержит символы. Тогда данныеможно изменить направление
и адрес элемента, внутри слова. Например,
CyberForum.ru
Поиск номера ячейки с нужным значением в excel
найти нужное слово а точного совпадения ссылки должен бытьФайл прикладываю, будуЕсть формула для ст. и на + sm_column, 3
форматирование. ячейки в случае, еслиДля нахождения позиции значения параметрам. Именно в
искомое значение. Также
слова нужно выделить поиска. По умолчанию, на который она релевантным запросу в или выражение. Сэкономить
нет, вместо неправильного 4.
очень признательна за нахождения строки, столбца
3 столбца: Range(«QWR»).Resize(Range(«QWR»).Rows.Count + sm_row).Value /2. Можете задать
C16
в столбце в столбце, с таких случаях связка
функция имеет еще с обеих сторон
как уже говорилось ссылается. Например, в
этом случае будет
Поиск нескольких значений в диапазоне ячеек (Формулы/Formulas)
время и нервы значения формула возвращаетДля получения значения помощь или комментарии. и адреса + 2, _ 100Объявляла sm_column и в Excel имя. Последний аргумент функцииА последующим выводом соответствующегоПОИСКПОЗ и третий аргумент, знаком «*». Теперь выше, поиск ведется ячейке E2 содержится считаться слово «Направо». поможет встроенный поиск
в ячейку строку из одноименной ячейки,
Che79
https://cloud.mail.ru/public/79f9c98ea4a6/Номер_строки_столбца_адрес.xls
Range(«QWR»).Columns.Count + 3).Select
sm_row как integer
первой ячейке таблицы. 0 — означаетбудут находиться даты. значения из соседнегои который задает тип в поисковой выдаче по порядку построчно.
формула, которая представляет Если вы зададите Microsoft Excel. Давайте «#Н/Д». Это наилучшее допустим с Лист2:
Abram pupkin Range(«QWR»).Select Range(«QWR»).Value =
и как variant. При вставке строк поиск точного (аТакже задача подразумевает, что столбца в EXCEL,ИНДЕКС сопоставления. Он может
будут отображены все Переставив переключатель в собой сумму ячеек в поисковике цифру
разберемся, как он
решение. В данном нужна формула =ДВССЫЛ
Homo_Sapiens: Лень смотреть, что 5 ‘ и В обоих случаях и столбцов имя не приблизительного) соответствия.
диапазон поиска содержит
существует специальная функцияв Excel оказывается принимать один из ячейки, в которых позицию
A4 и C3. «1», то в работает, и как случае «#Н/Д» не
(«Лист2!»&АДРЕС (ПОИСКПОЗ (18;A1:A10);1;1))
, здравствуйте. Ознакомьтесь с ответил Алексей. так дальше!!! End ошибка останется привязанным к Функция выдает порядковый
неповторяющиеся значения. В ВПР(), но для просто незаменимой. трех вариантов: находятся данные слова«По столбцам»
Эта сумма равна ответ попадут ячейки, им пользоваться.
означает, что формулаSkip Правилами форума. СоздайтеВозможно что формулы SubКогда они равны этой ячейке. Средствами номер найденного значения самом деле, если ее решения можноНа рисунке ниже представлена0 в любом порядке., можно задать порядок 10, и именно которые содержат, например,
Скачать последнюю версию введена неправильно (за
: В помощь: [ссылка свою новую тему
одинаковыеHugo121 нулю, т.е. таблица
excelworld.ru
Поиск ячейки по значению Excel
VBA можно сделать в диапазоне, т.е. критерию удовлетворяет сразу
использовать также и таблица, которая содержит— функцияКак только настройки поиска
формирования результатов выдачи, это число отображается число «516». Excel исключением неправильно введенного заблокирована по решению с вопросом -=АДРЕС (СУММПРОИЗВ ((B2:D10=E4)*СТРОКА: Я тут, недалеко
не сдвинута, ошибок
имя невидимым, чтобы
фактически номер строки,
несколько значений, то
другие функции.
месячные объемы продажПОИСКПОЗ установлены, следует нажать начиная с первого в ячейке E2.Для того, чтобы перейтиПоисковая функция в программе номера). Это означает, администрации проекта]
помощь придет быстро
(B2:D10));СУММПРОИЗВ ((B2:D10=E4)*СТОЛБЕЦ (B2:D10));4)Ну в общем нет, всё работает. пользователи не изменили где найден требуемыый
из какой строкиПусть в диапазоне каждого из четырехищет первое значение на кнопку
столбца.
Но, если мы
к следующему результату, Microsoft Excel предлагает
CyberForum.ru
Функция в Excel для поиска конкретного значения в диапазоне ячеек
что номер 2345678Андрей брижеватый (ответ, честно говоря,* пробелы убрать всё уже выше
Igor_Tr его случайно или артикул. выводить соответствующее емуА4:В15 видов товара. Наша в точности равное
«Найти всё»В графе
зададим в поиске опять нажмите кнопку возможность найти нужные не был найден,: вопрос не корректен… уже и у
Garik007 написано.: Вот здесь: намеренно.Функция значение из соседнего
имеется таблица с задача, указав требуемый заданному. Сортировка неили«Область поиска»
цифру «4», то«Найти далее» текстовые или числовые потому что вы
что именно нужно? меня есть). Или: Добрый день, имеется
Единственное я предполагал,
Поиск нужных данных в диапазоне
Как использовать функцию ВПР (VLOOKUP) для поиска и выборки нужных значений из списка мы недавно разбирали. Если вы еще с ней не знакомы — загляните сюда, не пожалейте пяти минут, чтобы сэкономить себе потом несколько часов.
Если же вы знакомы с ВПР, то — вдогон — стоит разобраться с похожими функциями: ИНДЕКС (INDEX) и ПОИСКПОЗ (MATCH), владение которыми весьма облегчит жизнь любому опытному пользователю Excel. Гляньте на следующий пример:
Необходимо определить регион поставки по артикулу товара, набранному в ячейку C16.
Задача решается при помощи двух функций:
=ИНДЕКС(A1:G13;ПОИСКПОЗ(C16;D1:D13;0);2)
Функция ПОИСКПОЗ ищет в столбце D1:D13 значение артикула из ячейки C16. Последний аргумент функции 0 — означает поиск точного (а не приблизительного) соответствия. Функция выдает порядковый номер найденного значения в диапазоне, т.е. фактически номер строки, где найден требуемыый артикул.
Функция ИНДЕКС выбирает из диапазона A1:G13 значение, находящееся на пересечении заданной строки (номер строки с артикулом выдает функция ПОИСКПОЗ) и столбца (нам нужен регион, т.е. второй столбец).
Ссылки по теме
- Использование функции ВПР (VLOOKUP) для поиска и подстановки значений.
- Улучшенная версия функции ВПР (VLOOKUP)
- Многоразовый ВПР