Совет: Попробуйте использовать новые функции ПРОСМОТРX и XMATCH, а также улучшенные версии функций, описанные в этой статье. Эти новые функции работают в любом направлении и возвращают точные совпадения по умолчанию, что упрощает и упрощает работу с ними по сравнению с предшественниками.
Предположим, у вас есть список номеров офисов, и вам нужно знать, какие сотрудники работают в каждом из них. Таблица очень угрюмая, поэтому, возможно, вам кажется, что это сложная задача. С функцией подытов на самом деле это довольно просто.
Функции ВВ., а также ИНДЕКС и ВЫБОРПОЗ — одни из самых полезных функций в Excel.
Примечание: Мастер подметок больше не доступен в Excel.
Ниже в качестве примера по выбору вы можете найти пример использования в этой области.
=ВПР(B2;C2:E7,3,ИСТИНА)
В этом примере B2 является первым аргументом —элементом данных, который требуется для работы функции. В случае СРОТ ВЛ.В.ОВ этот первый аргумент является искомой значением. Этот аргумент может быть ссылкой на ячейку или фиксированным значением, таким как «кузьмина» или 21 000. Вторым аргументом является диапазон ячеек C2–:E7, в котором нужно найти и найти значение. Третий аргумент — это столбец в диапазоне ячеек, содержащий ищите значение.
Четвертый аргумент необязателен. Введите истина или ЛОЖЬ. Если ввести ИСТИНА или оставить аргумент пустым, функция возвращает приблизительное совпадение значения, указанного в качестве первого аргумента. Если ввести ЛОЖЬ, функция будет соответствовать значению, заведомо первому аргументу. Другими словами, если оставить четвертый аргумент пустым или ввести ИСТИНА, это обеспечивает большую гибкость.
В этом примере показано, как работает функция. При вводе значения в ячейку B2 (первый аргумент) в результате поиска в ячейках диапазона C2:E7 (2-й аргумент) выполняется поиск в ней и возвращается ближайшее приблизительное совпадение из третьего столбца в диапазоне — столбца E (третий аргумент).
Четвертый аргумент пуст, поэтому функция возвращает приблизительное совпадение. Иначе потребуется ввести одно из значений в столбец C или D, чтобы получить какой-либо результат.
Если вы хорошо разучились работать с функцией ВГТ.В.В., то в равной степени использовать ее будет легко. Вы вводите те же аргументы, но выполняется поиск в строках, а не в столбцах.
Использование индекса и MATCH вместо ВРОТ
При использовании функции ВПРАВО существует ряд ограничений, которые действуют только при использовании функции ВПРАВО. Это означает, что столбец, содержащий и look up, всегда должен быть расположен слева от столбца, содержащего возвращаемого значения. Теперь, если ваша таблица не построена таким образом, не используйте В ПРОСМОТР. Используйте вместо этого сочетание функций ИНДЕКС и MATCH.
В данном примере представлен небольшой список, в котором искомое значение (Воронеж) не находится в крайнем левом столбце. Поэтому мы не можем использовать функцию ВПР. Для поиска значения «Воронеж» в диапазоне B1:B11 будет использоваться функция ПОИСКПОЗ. Оно найдено в строке 4. Затем функция ИНДЕКС использует это значение в качестве аргумента поиска и находит численность населения Воронежа в четвертом столбце (столбец D). Использованная формула показана в ячейке A14.
Дополнительные примеры использования индексов и MATCH вместо В ПРОСМОТР см. в статье билла Https://www.mrexcel.com/excel-tips/excel-vlookup-index-match/ Билла Джилена (Bill Jelen), MVP корпорации Майкрософт.
Попробуйте попрактиковаться
Если вы хотите поэкспериментировать с функциями подытовки, прежде чем попробовать их с собственными данными, вот примеры данных.
Пример работы с ВЛОКОНПОМ
Скопируйте следующие данные в пустую таблицу.
Совет: Прежде чем врезать данные в Excel, установите для столбцов A–C ширину в 250 пикселей и нажмите кнопку «Перенос текста» (вкладка «Главная», группа «Выравнивание»).
Плотность |
Вязкость |
Температура |
0,457 |
3,55 |
500 |
0,525 |
3,25 |
400 |
0,606 |
2,93 |
300 |
0,675 |
2,75 |
250 |
0,746 |
2,57 |
200 |
0,835 |
2,38 |
150 |
0,946 |
2,17 |
100 |
1,09 |
1,95 |
50 |
1,29 |
1,71 |
0 |
Формула |
Описание |
Результат |
=ВПР(1,A2:C10,2) |
Используя приблизительное соответствие, функция ищет в столбце A значение 1, находит наибольшее значение, которое меньше или равняется 1 и составляет 0,946, а затем возвращает значение из столбца B в той же строке. |
2,17 |
=ВПР(1,A2:C10,3,ИСТИНА) |
Используя приблизительное соответствие, функция ищет в столбце A значение 1, находит наибольшее значение, которое меньше или равняется 1 и составляет 0,946, а затем возвращает значение из столбца C в той же строке. |
100 |
=ВПР(0,7,A2:C10,3,ЛОЖЬ) |
Используя точное соответствие, функция ищет в столбце A значение 0,7. Поскольку точного соответствия нет, возвращается сообщение об ошибке. |
#Н/Д |
=ВПР(0,1,A2:C10,2,ИСТИНА) |
Используя приблизительное соответствие, функция ищет в столбце A значение 0,1. Поскольку 0,1 меньше наименьшего значения в столбце A, возвращается сообщение об ошибке. |
#Н/Д |
=ВПР(2,A2:C10,2,ИСТИНА) |
Используя приблизительное соответствие, функция ищет в столбце A значение 2, находит наибольшее значение, которое меньше или равняется 2 и составляет 1,29, а затем возвращает значение из столбца B в той же строке. |
1,71 |
Пример ГВ.Г.В.В.
Скопируйте всю таблицу и вставьте ее в ячейку A1 пустого листа Excel.
Совет: Прежде чем врезать данные в Excel, установите для столбцов A–C ширину в 250 пикселей и нажмите кнопку «Перенос текста» (вкладка «Главная», группа «Выравнивание»).
Оси |
Подшипники |
Болты |
4 |
4 |
9 |
5 |
7 |
10 |
6 |
8 |
11 |
Формула |
Описание |
Результат |
=ГПР(«Оси»;A1:C4;2;ИСТИНА) |
Поиск слова «Оси» в строке 1 и возврат значения из строки 2, находящейся в том же столбце (столбец A). |
4 |
=ГПР(«Подшипники»;A1:C4;3;ЛОЖЬ) |
Поиск слова «Подшипники» в строке 1 и возврат значения из строки 3, находящейся в том же столбце (столбец B). |
7 |
=ГПР(«П»;A1:C4;3;ИСТИНА) |
Поиск буквы «П» в строке 1 и возврат значения из строки 3, находящейся в том же столбце. Так как «П» найти не удалось, возвращается ближайшее из меньших значений: «Оси» (в столбце A). |
5 |
=ГПР(«Болты»;A1:C4;4) |
Поиск слова «Болты» в строке 1 и возврат значения из строки 4, находящейся в том же столбце (столбец C). |
11 |
=ГПР(3;{1;2;3:»a»;»b»;»c»;»d»;»e»;»f»};2;ИСТИНА) |
Поиск числа 3 в трех строках константы массива и возврат значения из строки 2 того же (в данном случае — третьего) столбца. Константа массива содержит три строки значений, разделенных точкой с запятой (;). Так как «c» было найдено в строке 2 того же столбца, что и 3, возвращается «c». |
c |
Примеры индекса и match
В последнем примере функции ИНДЕКС и MATCH совместно возвращают номер счета с наиболее ранней датой и соответствующую дату для каждого из пяти городов. Так как дата возвращается как число, для ее формата используется функция ТЕКСТ. Функция ИНДЕКС использует результат, возвращенный функцией ПОИСКПОЗ, как аргумент. Сочетание функций ИНДЕКС и ПОИСКПОЗ используется в каждой формуле дважды — сперва для возврата номера счета, а затем для возврата даты.
Скопируйте всю таблицу и вставьте ее в ячейку A1 пустого листа Excel.
Совет: Перед тем как вировать данные в Excel, установите для столбцов A–D ширину в 250 пикселей и нажмите кнопку «Перенос текста» (вкладка «Главная», группа «Выравнивание»).
Счет |
Город |
Дата выставления счета |
Счет с самой ранней датой по городу, с датой |
3115 |
Казань |
07.04.12 |
=»Казань = «&ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Казань»,$B$2:$B$33,0),1)& «, Дата выставления счета: » & ТЕКСТ(ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Казань»,$B$2:$B$33,0),3),»m/d/yy») |
3137 |
Казань |
09.04.12 |
=»Орел = «&ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Орел»,$B$2:$B$33,0),1)& «, Дата выставления счета: » & ТЕКСТ(ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Орел»,$B$2:$B$33,0),3),»m/d/yy») |
3154 |
Казань |
11.04.12 |
=»Челябинск = «&ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Челябинск»,$B$2:$B$33,0),1)& «, Дата выставления счета: » & ТЕКСТ(ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Челябинск»,$B$2:$B$33,0),3),»m/d/yy») |
3191 |
Казань |
21.04.12 |
=»Нижний Новгород = «&ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Нижний Новгород»,$B$2:$B$33,0),1)& «, Дата выставления счета: » & ТЕКСТ(ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Нижний Новгород»,$B$2:$B$33,0),3),»m/d/yy») |
3293 |
Казань |
25.04.12 |
=»Москва = «&ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Москва»,$B$2:$B$33,0),1)& «, Дата выставления счета: » & ТЕКСТ(ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Москва»,$B$2:$B$33,0),3),»m/d/yy») |
3331 |
Казань |
27.04.12 |
|
3350 |
Казань |
28.04.12 |
|
3390 |
Казань |
01.05.12 |
|
3441 |
Казань |
02.05.12 |
|
3517 |
Казань |
08.05.12 |
|
3124 |
Орел |
09.04.12 |
|
3155 |
Орел |
11.04.12 |
|
3177 |
Орел |
19.04.12 |
|
3357 |
Орел |
28.04.12 |
|
3492 |
Орел |
06.05.12 |
|
3316 |
Челябинск |
25.04.12 |
|
3346 |
Челябинск |
28.04.12 |
|
3372 |
Челябинск |
01.05.12 |
|
3414 |
Челябинск |
01.05.12 |
|
3451 |
Челябинск |
02.05.12 |
|
3467 |
Челябинск |
02.05.12 |
|
3474 |
Челябинск |
04.05.12 |
|
3490 |
Челябинск |
05.05.12 |
|
3503 |
Челябинск |
08.05.12 |
|
3151 |
Нижний Новгород |
09.04.12 |
|
3438 |
Нижний Новгород |
02.05.12 |
|
3471 |
Нижний Новгород |
04.05.12 |
|
3160 |
Москва |
18.04.12 |
|
3328 |
Москва |
26.04.12 |
|
3368 |
Москва |
29.04.12 |
|
3420 |
Москва |
01.05.12 |
|
3501 |
Москва |
06.05.12 |
Skip to content
В этой статье объясняется с примерами формул, как использовать функцию ПОИСКПОЗ в Excel. Также вы узнаете, как улучшить формулы поиска, создав динамическую формулу с функциями ВПР и ПОИСКПОЗ.
В Microsoft Excel существует множество различных функций, которые могут помочь вам найти определенное значение в диапазоне ячеек, и ПОИСКПОЗ (MATCH на английском) — одна из них. По сути, она определяет относительное положение элемента в массиве значений. Однако функция ПОИСКПОЗ может делать гораздо больше.
- Функция ПОИСКПОЗ — пошаговая инструкция
- Поиск частичного совпадения с подстановочными знаками
- ПОИСКПОЗ с учетом регистра
- ПОИСКПОЗ и несколько условий
- Как сравнить столбцы при помощи ПОИСКПОЗ
- Совместное использование ВПР и ПОИСКПОЗ
- Использование ГПР и ПОИСКПОЗ
Функция ПОИСКПОЗ Excel — пошаговая инструкция
Функция ПОИСКПОЗ в Excel ищет указанное значение в массиве и возвращает относительное положение этого значения.
Рассмотрим пошагово, как составить формулу ПОИСКПОЗ:
ПОИСКПОЗ(искомое_значение; массив_поиска, [тип_совпадения])
Шаг 1. Искомое_значение (обязательный аргумент) — значение, которое вы хотите найти. Это может быть число, текстовое или логическое значение, а также ссылка на ячейку.
Шаг 2. Массив_поиска (обязательно) — диапазон ячеек для поиска.
Шаг 3. Указываем Тип_совпадения (необязательно) — определяет тип соответствия. Это может быть одно из следующих значений: 1, 0, -1. Аргумент, установленный в 0, возвращает только точное совпадение, в то время как два других значения допускают приблизительное совпадение.
- 1 или опущено (по умолчанию) — найти наибольшее значение в массиве поиска, которое меньше или равно значению поиска. Требуется сортировка массива поиска в порядке возрастания, от меньшего к большему или от А до Я.
- 0 — найти первое значение в массиве, точно равное искомому значению. Никакой сортировки не требуется.
- -1 — найти наименьшее значение в массиве, которое больше или равно искомому значению. Массив поиска должен быть отсортирован в порядке убывания, от наибольшего к наименьшему или от Я до A.
Чтобы лучше понять функцию ПОИСКПОЗ, давайте составим простую формулу на основе этих данных: имена учащихся в столбце А и их экзаменационные баллы в столбце В, отсортированные от наибольшего к наименьшему. Чтобы узнать, какое место среди других занимает конкретный ученик (скажем, Елена ), используйте эту простую формулу:
=ПОИСКПОЗ(“Елена”; A2:A8;0)
При желании вы можете поместить искомое значение в какую-либо ячейку (E1 в этом примере) и сослаться на эту ячейку в своей формуле:
=ПОИСКПОЗ(E1; A2:A8;0)
Как вы видите на скриншоте выше, имена расположены не по алфавиту, а потому мы устанавливаем аргументу тип_совпадения значение 0 (точное соответствие). Ведь только этот вариант не требует сортировки в массиве поиска.
Технически формула ПОИСКПОЗ возвращает относительное положение «Елена» в списке. Но поскольку оценки отсортированы от наибольшей суммы к наименьшей, это также говорит нам о том, что Елена занимает пятое место среди 8 учащихся.
4 вещи, которые вы должны знать о функции ПОИСКПОЗ
Как вы только что убедились, использовать ПОИСКПОЗ в Excel достаточно просто. Однако, как и в случае с почти любой другой функцией Excel, есть несколько особенностей, о которых вам следует помнить:
- Функция ПОИСКПОЗ возвращает относительное положение искомого значения в массиве, а не само значение.
- ПОИСКПОЗ нечувствительна к регистру , то есть не различает строчные и прописные символы при работе с текстовыми значениями.
- Если искомый массив содержит несколько вхождений искомого значения, то возвращается позиция первого найденного значения.
- Если искомое значение не найдено в массиве поиска, возвращается ошибка #Н/Д.
Как использовать ПОИСКПОЗ в Excel — примеры формул
Теперь, когда вы знаете основные способы использования функции ПОИСКПОЗ Excel, давайте обсудим еще несколько примеров формул, чуть более сложных.
Частичное совпадение с подстановочными знаками
Как и многие другие функции, ПОИСКПОЗ понимает следующие подстановочные знаки :
- Вопросительный знак (?) — заменяет любой одиночный символ
- Звездочка (*) — заменяет любую последовательность символов
Примечание. Подстановочные знаки можно использовать только тогда, если для параметра тип_совпадения установлено значение 0.
Формула поиска с подстановочными знаками полезна в ситуациях, когда требуется сопоставить не всю текстовую строку, а только некоторые символы или её часть. Чтобы проиллюстрировать это, рассмотрим следующий пример.
Предположим, у вас есть данные о продажах напитков за последний месяц. Вы хотите найти относительную позицию определенного наименования в списке (отсортированном по суммам продаж в порядке убывания), но не можете точно вспомнить полное наименование, хотя помните несколько первых символов.
Предположим, что наименования товаров находятся в диапазоне A2:A11, и вы ищете имя, начинающееся с «доб». Формула выглядит следующим образом:
=ПОИСКПОЗ(«доб*»; A2:A11;0)
Чтобы сделать нашу формулу более универсальной, вы можете ввести искомое значение в какую-либо ячейку (E1 в этом примере) и соединить эту ячейку с подстановочным знаком, например:
=ПОИСКПОЗ(E1&»*»; A2:A11;0)
Как показано на скриншоте ниже, формула возвращает 4, что является позицией «Добрый экзотик»:
Обратите внимание, что напитков «Добрый» в нашем массиве целых три. Но формула останавливает поиск, как только будет найдено первое подходящее соответствие.
Чтобы заменить только один символ в искомом значении, используйте подстановочный знак «?».
Формула ПОИСКПОЗ с учетом регистра
Как упоминалось ранее, функция ПОИСКПОЗ не различает символы верхнего и нижнего регистра.
Чтобы создать формулу поиска с учетом регистра, используйте ПОИСКПОЗ в сочетании с функцией СОВПАД, которая точно сравнивает содержимое ячеек, включая регистр символов.
Вот общая формула с учетом регистра для сопоставления данных:
=ПОИСКПОЗ(ИСТИНА;СОВПАД(искомый массив ; искомое значение );0)
Формула работает по следующей логике:
- Функция СОВПАД (EXACT в английской версии) сравнивает значение с каждым элементом массива поиска. Если сравниваемые ячейки точно равны, функция возвращает значение ИСТИНА, в противном случае — ЛОЖЬ.
- Затем функция ПОИСКПОЗ сравнивает ИСТИНА (которое является ее искомым_значением ) с каждым значением в массиве, возвращаемом функцией СОВПАД, и возвращает позицию первого совпадения.
Пожалуйста, имейте в виду, что это формула массива , которая требует нажатия Ctrl + Shift + Enter
при завершении ее ввода.
Предполагая, что искомое значение находится в ячейке E1, а массив поиска — A2:A9, формула выглядит следующим образом:
=ПОИСКПОЗ(ИСТИНА;СОВПАД(A2:A9;E1);0)
На скриншоте показана формула поиска соответствия с учетом регистра в Excel:
Как видите, формула различает регистр букв и по этой причине «А-201» было признано неподходящим.
ПОИСКПОЗ и несколько условий
Выше мы рассматривали функцию ПОИСКПОЗ с одним условием. Но на практике очень часто критериев поиска бывает несколько. Давайте рассмотрим такой случай.
Предположим, у нас есть список продаж отдельных товаров в нескольких регионах. Нужно найти первую подходящую позицию в списке для нужного товара и заданного региона.
Вот формула ПОИСКПОЗ для нескольких условий:
=ПОИСКПОЗ(1;(B2:B12=G1)*(C2:C12=G2);0)
Давайте разбираться.
Наши два условия мы записываем в виде выражения (B2:B12=G1)*(C2:C12=G2). Первое условие (B2:B12=G1) означает, что мы сравниваем каждое из значений в столбце «Регион» с целью «Север», которая записана в G1. Получаем массив {ЛОЖЬ:ИСТИНА:ИСТИНА:ИСТИНА:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:ИСТИНА:ЛОЖЬ:ЛОЖЬ}
Аналогично каждый из товаров сравниваем с «Яблоки» из G2. Аналогично получаем результат {ИСТИНА:ЛОЖЬ:ЛОЖЬ:ИСТИНА:ЛОЖЬ:ИСТИНА:ЛОЖЬ:ЛОЖЬ:ИСТИНА:ЛОЖЬ:ИСТИНА}.
После перемножения этих массивов получаем матрицу единиц и нулей: {0:0:0:1:0:0:0:0:1:0:0}
Здесь единицы означают те позиции, в которых оба условия выполняются.
И вот в этом массиве функция ПОИСКПОЗ ищет первую единицу. И находит ее в 4-й позиции.
Обратите внимание, что в наших данных есть две строки, в которых выполняются оба условия — товар и регион. Но функция ПОИСКПОЗ ищет в массиве только первое совпадение и после этого поиск останавливается.
Думаю, вы понимаете, что совершенно аналогичным образом можно вести поиск по трём и большему количеству условий.
Номер позиции в данном случае для нас может быть не так уж и важен сам по себе. Но зато, зная его, мы можем при помощи функции ИНДЕКС извлечь значение из любого столбца в этой позиции. Более подробно об этом читайте: ИНДЕКС+ПОИСКПОЗ с несколькими условиями.
Как сравнить столбцы при помощи ПОИСКПОЗ
Проверка двух списков на совпадения и различия — одна из наиболее распространенных задач в Excel, и ее можно выполнить различными способами. Формула ЕНД/ПОИСКПОЗ является одним из них:
ЕСЛИ(ЕНД(ПОИСКПОЗ( 1-е значение в Списке1 , Списке2 , 0)), «Нет в Списке 1», «»)
Для любого значения списка 2, которого нет в списке 1, формула возвращает « Нет в списке 1 ».
Рассмотрим пошагово:
- Функция ПОИСКПОЗ ищет значение из списка 1 в списке 2. Если значение найдено, оно возвращает его относительное положение, в противном случае получается ошибка #Н/Д.
- Функция ЕНД в Excel выполняет только одну работу — проверяет наличие ошибок #Н/Д (что означает «недоступно»). Если обрабатываемое ею значение является ошибкой #Н/Д, функция возвращает значение ИСТИНА, в противном случае – ЛОЖЬ. В нашем случае ИСТИНА означает, что значение из списка 1 не найдено в списке 2 (т. е. функция ПОИСКПОЗ возвращает ошибку).
- Поскольку вам может быть не слишком понятным видеть ИСТИНА для значений, которые не отображаются в списке 1, вы оборачиваете функцию ЕСЛИ вокруг ЕНД, чтобы вместо ИСТИНА отображалось « Нет в списке 1 » или любой другой текст, который вы хотите.
Например, чтобы сравнить значения в столбце B со значениями в столбце A, формула может быть записана так (где B2 — самая верхняя ячейка):
=ЕСЛИ(ЕНД(ПОИСКПОЗ(B2;A:A;0)); «Нет в списке 1»; «»)
Как вы помните, функция ПОИСКПОЗ в Excel сама по себе нечувствительна к регистру. Чтобы она различала регистр символов, вставьте функцию СОВПАД (EXACT по английски) в аргумент массив_поиска и не забудьте нажать Ctrl + Shift + Enter
, чтобы ввести эту формулу массива :
{=ЕСЛИ(ЕНД(ПОИСКПОЗ(ИСТИНА; СОВПАД(A:A; B2);0)); «Нет в списке 1»; «»)}
На следующем рисунке показаны обе формулы в действии:
Быть может, вам также будет интересен этот материал: 5 способов сравнения ячеек в Excel.
Совместное использование ВПР и ПОИСКПОЗ
В этом примере предполагается, что у вас уже есть базовые знания о функции ВПР в Excel . И если вы работали с ВПР, то есть вероятность, что вы столкнулись с ее многочисленными ограничениями (подробный обзор которых можно найти в статье Почему не работает функция ВПР в Excel ) и ищете более надежную и универсальную альтернативу.
Один из самых досадных недостатков ВПР заключается в том, что она перестает корректно работать после вставки или удаления столбца в таблице поиска. Это происходит потому, что функция ВПР извлекает совпадающее значение на основе указанного вами номера возвращаемого столбца (номер индекса). Поскольку номер индекса «жестко запрограммирован» в формуле, Excel не может изменить его, когда в таблицу добавляются или удаляются новые столбцы.
Функция ПОИСКПОЗ в Excel работает с относительным положением искомого значения, что идеально подходит для аргумента номер_стролбца функции ВПР. Другими словами, вместо указания возвращаемого столбца в виде статического числа вы используете ПОИСКПОЗ, чтобы найти текущую позицию этого столбца.
Чтобы упростить понимание, давайте снова воспользуемся таблицей с экзаменационными баллами студентов (аналогичной той, которую мы использовали в начале этой статьи). Но на этот раз мы будем получать реальную оценку, а не ее относительное положение.
Предполагая, что искомое значение находится в ячейке F1, значения таблицы расположены в $A$1:$C$8 (рекомендуется зафиксировать его с помощью абсолютных ссылок на ячейки, если вы планируете копировать формулу), выражение выглядит следующим образом:
=ВПР($G$1;$A$1:$С$8; 2; ЛОЖЬ)
Третий аргумент ( номер столбца ) имеет значение 2, потому что результат Теста 1 , который мы хотим получить, является вторым столбцом в таблице. Как вы можете видеть на скриншоте ниже, эта обычная формула ВПР работает хорошо.
Но только до тех пор, пока вы не вставите или не удалите какие-то столбцы:
Как видите, если мы вставляем дополнительный столбец, то формула теперь извлекает неверные данные. Она по-прежнему ссылается на второй столбец, в то время как данные Тест 1 сместились в третий.
Чтобы предотвратить подобные вещи, вы можете сделать свою формулу ВПР более гибкой, включив в нее функцию ПОИСКПОЗ:
ПОИСКПОЗ($F$2;$A$1:$С$1;0)
Где:
- F2 — это искомое значение, которое в точности совпадает с именем возвращаемого столбца, т. е. столбца, из которого вы хотите извлечь значение ( Тест 1 в этом примере).
- A1:C1 — массив поиска, содержащий заголовки таблицы.
А теперь запишите эту формулу в аргумент номер_столбца вашей формулы ВПР, например:
=ВПР($G$1;$A$1:$D$8; ПОИСКПОЗ($F$2;$A$1:$С$1;0); ЛОЖЬ)
И убедитесь, что формула работает безупречно, независимо от того, сколько столбцов вы добавляете или удаляете.
Вставляем столбец с итоговым тестом:
Формула автоматически изменяется и продолжает работать, возвращая верный результат:
=ВПР($G$1;$A$1:$D$8; ПОИСКПОЗ($F$2;$A$1:$D$1;0); ЛОЖЬ)
Использование ГПР и ПОИСКПОЗ
Аналогичным образом вы можете использовать функцию ПОИСКПОЗ в Excel, чтобы улучшить свои формулы ГПР . Общий принцип, по сути, такой же, как и в случае ВПР: вы используете функцию ПОИСКПОЗ, чтобы получить относительное положение возвращаемого столбца, и передаете это число аргументу номер_строки вашей формулы ГПР.
Предположим, что искомое значение находится в ячейке B5, данные таблицы — B1:H3, имя возвращаемой строки (значение поиска для ПОИСКПОЗ) — в ячейке A6, а заголовки строк — A1:A3.
Тогда формула выглядит следующим образом:
=ГПР(B5;B1:H3;ПОИСКПОЗ(A6; A1:A3;0);ЛОЖЬ)
Как вы только что видели, комбинация ВПР/ГПР и ПОИСКПОЗ, безусловно, является улучшением по сравнению с обычными формулами. Однако функция ПОИСКПОЗ не устраняет всех их ограничений и недостатков. В частности, эта формула ВПР по-прежнему не может делать «левый поиск», а ГПР не может выполнять поиск ни в одной строке, кроме самой верхней.
Чтобы преодолеть вышеуказанные (и некоторые другие) ограничения, научитесь использовать комбинацию ИНДЕКС+ПОИСКПОЗ, которая обеспечивает действительно мощный и универсальный способ поиска в Excel, превосходящий ВПР и ГПР во многих отношениях.
Подробное руководство и примеры формул можно найти в ИНДЕКС и ПОИСКПОЗ в Excel — лучшей альтернативе ВПР .
Вот как можно использовать формулы ПОИСКПОЗ в Excel для быстрого поиска в массиве данных. Надеемся, что примеры, рассмотренные в этом руководстве, окажутся полезными в вашей работе.
Функция ПОИСКПОЗ в Excel используется для поиска точного совпадения или ближайшего (меньшего или большего заданному в зависимости от типа сопоставления, указанного в качестве аргумента) значения заданному в массиве или диапазоне ячеек и возвращает номер позиции найденного элемента.
Примеры использования функции ПОИСКПОЗ в Excel
Например, имеем последовательный ряд чисел от 1 до 10, записанных в ячейках B1:B10. Функция =ПОИСКПОЗ(3;B1:B10;0) вернет число 3, поскольку искомое значение находится в ячейке B3, которая является третьей от точки отсчета (ячейки B1).
Данная функция удобна для использования в случаях, когда требуется вернуть не само значение, содержащееся в искомой ячейке, а ее координату относительно рассматриваемого диапазона. В случае использования для констант массивов, которые могут быть представлены как массивы элементов «ключ» — «значение», функция ПОИСКПОЗ возвращает значение ключа, который явно не указан.
Например, массив {«виноград»;»яблоко»;»груша»;»слива»} содержит элементы, которые можно представить как: 1 – «виноград», 2 – «яблоко», 3 – «груша», 4 – «слива», где 1, 2, 3, 4 – ключи, а названия фруктов – значения. Тогда функция =ПОИСКПОЗ(«яблоко»;{«виноград»;»яблоко»;»груша»;»слива»};0) вернет значение 2, являющееся ключом второго элемента. Отсчет выполняется не с 0 (нуля), как это реализовано во многих языках программирования при работе с массивами, а с 1.
Функция ПОИСКПОЗ редко используется самостоятельно. Ее целесообразно применять в связке с другими функциями, например, ИНДЕКС.
Формула для поиска неточного совпадения текста в Excel
Пример 1. Найти позицию первого частичного совпадения строки в диапазоне ячеек, хранящих текстовые значения.
Вид исходной таблицы данных:
Для нахождения позиции текстовой строки в таблице используем следующую формулу:
=ПОИСКПОЗ(D2&»*»;B:B;0)-1
Описание аргументов:
- D2&»*» – искомое значение, состоящее и фамилии, указанной в ячейке B2, и любого количества других символов (“*”);
- B:B – ссылка на столбец B:B, в котором выполняется поиск;
- 0 – поиск точного совпадения.
Из полученного значения вычитается единица для совпадения результата с id записи в таблице.
Пример поиска:
Сравнение двух таблиц в Excel на наличие несовпадений значений
Пример 2. В Excel хранятся две таблицы, которые на первый взгляд кажутся одинаковыми. Было решено сравнить по одному однотипному столбцу этих таблиц на наличие несовпадений. Реализовать способ сравнения двух диапазонов ячеек.
Вид таблицы данных:
Для сравнения значений, находящихся в столбце B:B со значениями из столбца A:A используем следующую формулу массива (CTRL+SHIFT+ENTER):
Функция ПОИСКПОЗ выполняет поиск логического значения ИСТИНА в массиве логических значений, возвращаемых функцией СОВПАД (сравнивает каждый элемент диапазона A2:A12 со значением, хранящимся в ячейке B2, и возвращает массив результатов сравнения). Если функция ПОИСКПОЗ нашла значение ИСТИНА, будет возвращена позиция его первого вхождения в массив. Функция ЕНД возвратит значение ЛОЖЬ, если она не принимает значение ошибки #Н/Д в качестве аргумента. В этом случае функция ЕСЛИ вернет текстовую строку «есть», иначе – «нет».
Чтобы вычислить остальные значения «протянем» формулу из ячейки C2 вниз для использования функции автозаполнения. В результате получим:
Как видно, третьи элементы списков не совпадают.
Поиск ближайшего большего знания в диапазоне чисел Excel
Пример 3. Найти ближайшее меньшее числу 22 в диапазоне чисел, хранящихся в столбце таблицы Excel.
Вид исходной таблицы данных:
Для поиска ближайшего большего значения заданному во всем столбце A:A (числовой ряд может пополняться новыми значениями) используем формулу массива (CTRL+SHIFT+ENTER):
Функция ПОИСКПОЗ возвращает позицию элемента в столбце A:A, имеющего максимальное значение среди чисел, которые больше числа, указанного в ячейке B2. Функция ИНДЕКС возвращает значение, хранящееся в найденной ячейке.
Результат расчетов:
Для поиска ближайшего меньшего значения достаточно лишь немного изменить данную формулу и ее следует также ввести как массив (CTRL+SHIFT+ENTER):
Результат поиска:
Особенности использования функции ПОИСКПОЗ в Excel
Функция имеет следующую синтаксическую запись:
=ПОИСКПОЗ(искомое_значение;просматриваемый_массив;[тип_сопоставления])
Описание аргументов:
- искомое_значение – обязательный аргумент, принимающий текстовые, числовые значения, а также данные логического и ссылочного типов, который используется в качестве критерия поиска (для сопоставления величин или нахождения точного совпадения);
- просматриваемый_массив – обязательный аргумент, принимающий данные ссылочного типа (ссылки на диапазон ячеек) или константу массива, в которых выполняется поиск позиции элемента согласно критерию, заданному первым аргументом функции;
- [тип_сопоставления] – необязательный для заполнения аргумент в виде числового значения, определяющего способ поиска в диапазоне ячеек или массиве. Может принимать следующие значения:
- -1 – поиск наименьшего ближайшего значения заданному аргументом искомое_значение в упорядоченном по убыванию массиве или диапазоне ячеек.
- 0 – (по умолчанию) поиск первого значения в массиве или диапазоне ячеек (не обязательно упорядоченном), которое полностью совпадает со значением, переданным в качестве первого аргумента.
- 1 – Поиск наибольшего ближайшего значения заданному первым аргументом в упорядоченном по возрастанию массиве или диапазоне ячеек.
Скачать примеры ПОИСКПОЗ для поиска совпадения значений в Excel
Примечания:
- Если в качестве аргумента искомое_значение была передана текстовая строка, функция ПОИСКПОЗ вернет позицию элемента в массиве (если такой существует) без учета регистра символов. Например, строки «МоСкВа» и «москва» являются равнозначными. Для различения регистров можно дополнительно использовать функцию СОВПАД.
- Если поиск с использованием рассматриваемой функции не дал результатов, будет возвращен код ошибки #Н/Д.
- Если аргумент [тип_сопоставления] явно не указан или принимает число 0, для поиска частичного совпадения текстовых значений могут быть использованы подстановочные знаки («?» — замена одного любого символа, «*» — замена любого количества символов).
- Если в объекте данных, переданном в качестве аргумента просматриваемый_массив, содержится два и больше элементов, соответствующих искомому значению, будет возвращена позиция первого вхождения такого элемента.
Функции ИНДЕКС и ПОИСКПОЗ в Excel – лучшая альтернатива для ВПР
Смотрите также B3, поскольку третья «Работа с данными» последовательных чисел;искомое_значениеINDIRECT(ref_text,[a1]) в основную таблицу, столбца. диапазона.=ВПР(B1;$A$7:$D$18;4;ЛОЖЬ). они возвращают, формула, затем находит ближайшееФормула не будет работать,=ВПР(«Japan»;$B$2:$D$2;3) число или текст,Этот учебник рассказывает о
Чтобы функция ПОИСКПОЗ работала строка является второй и выбрать инструментФункция ИНДЕКС() возвращает текстовые.ДВССЫЛ(ссылка_на_текст;[a1]) необходимо выполнить действие,Итак, давайте обратимся кЭта формула находит толькоГде ячейкаСинтаксис функции станет легкой и к нему и если значение вВ данном случае – который Вы ищите. главных преимуществах функций
с таблицей с по счету относительно «Проверка данных»: значения из ИсходногоПросматриваемый_массивПервый аргумент может быть известное как двойной нашей таблице и второе совпадающее значение.B1ЕСЛИОШИБКА понятной: возвращает значение из ячейке смысла нет! Цель Аргумент может бытьИНДЕКС двумя столбцами как ячейки A2, аВ открывшемся диалоговом окне списка, из строк,может быть не ссылкой на ячейку
- ВПР запишем формулу с
- Если же Вамсодержит объединенное значение
- очень прост:=INDEX($A$1:$E$11,4,5))
- столбцаA2
- этого примера – значением, в том
- и с одним мы
- столбец B:B является необходимо выбрать «Тип
- номера которых были
- упорядочен. (стиль A1 или
Базовая информация об ИНДЕКС и ПОИСКПОЗ
или вложенный функцией необходимо извлечь остальные аргументаIFERROR(value,value_if_error)=ИНДЕКС($A$1:$E$11;4;5))Cдлиннее 255 символов. исключительно демонстрационная, чтобы числе логическим, илиПОИСКПОЗ
использовали в ее вторым относительно столбца данных:» — «Список» получены на предыдущем-1 R1C1), именем диапазонаВПРВПР повторения, воспользуйтесь предыдущимlookup_valueЕСЛИОШИБКА(значение;значение_если_ошибка)Эта формула возвращает значение
ИНДЕКС – синтаксис и применение функции
той же строки: Вместо неё Вам Вы могли понять, ссылкой на ячейку.в Excel, которые аргументах оператор &. A:A. и указать в
шаге.
Функция
или текстовой строкой..
- , которая найдет информацию решением.(искомое_значение), аГде аргумент на пересечении
- =INDEX($C$2:$C$10,MATCH(AVERAGE($D$2:D$10),$D$2:D$10,1)) нужно использовать аналогичную как функцииlookup_array делают их более Учитывая этот операторПри необходимости можно получить поле «Источник» диапазонВ предельном случае м.б.ПОИСКПОЗ
- Второй аргумент определяет,Запишите функцию о стоимости проданныхЕсли Вам нужен список4value4-ой=ИНДЕКС($C$2:$C$10;ПОИСКПОЗ(СРЗНАЧ($D$2:D$10);$D$2:D$10;1)) формулуПОИСКПОЗ
(просматриваемый_массив) – диапазон привлекательными по сравнению первый аргументом для целую строку или ячеек: найдено столько женаходит наименьшее значение,
какого стиля ссылкаВПР в марте лимонов.
всех совпадений –
– аргумент
(значение) – этостроки иРезультат: MoscowИНДЕКСи ячеек, в котором с функции теперь является целый столбец, указавПереходим в ячейку A13 значений, сколько содержится которое больше или
содержится в первом, которая находит имяСуществует несколько способов выполнить функцияcol_index_num значение, проверяемое на5-гоИспользуя функцию/
ПОИСКПОЗ – синтаксис и применение функции
ИНДЕКС происходит поиск.ВПР значение FordМаркетинговый. По в качестве номера и выполняем аналогичные в исходном списке равно значению аргумента
аргументе: товара в таблице двумерный поиск. ПознакомьтесьВПР(номер_столбца), т.е. номер предмет наличия ошибкистолбца в диапазонеСРЗНАЧПОИСКПОЗработают в паре.
match_type
. Вы увидите несколько
этой причине первый строки и столбца действия только лишь (когда все значения
искомое_значение
A1
- Lookup table 1 с возможными вариантамитут не помощник, столбца, содержащего данные, (в нашем случаеA1:E11в комбинации с:
- Последующие примеры покажут(тип_сопоставления) – этот примеров формул, которые Ford из отдела
- соответственно значение 0 указываем другую ссылку удовлетворяют критерию). Поэтому., если аргумент равен, используя и выберите наиболее
- поскольку она возвращает которые необходимо извлечь. – результат формулы, то есть значениеИНДЕКС=INDEX(D5:D10,MATCH(TRUE,INDEX(B5:B10=A2,0),0)) Вам истинную мощь аргумент сообщает функции помогут Вам легко продаж не учитывается,
- (нуль). Для вывода на диапазон в формулу массива нужно распространятьПросматриваемый_массивTRUESKU подходящий. только одно значениеЕсли Вам необходимо обновитьИНДЕКС ячейкии=ИНДЕКС(D5:D10;ПОИСКПОЗ(ИСТИНА;ИНДЕКС(B5:B10=A2;0);0)) связки
- ПОИСКПОЗ справиться со многими ведь теперь для полученных строки или поле «Источник:» на диапазон тойдолжен быть упорядочен(ИСТИНА) или не, как искомое значение:
Вы можете использовать связку за раз – основную таблицу (Main/E4ПОИСКПОЗ4. Более высокая скоростьИНДЕКС
, хотите ли Вы сложными задачами, перед функции два форда столбца функцию ИНДЕКСТакой же выпадающий список же размерности, что по убыванию: ИСТИНА, указан;=VLOOKUP(A2,New_SKU,2,FALSE) из функций и точка. Но table), добавив данныеПОИСКПОЗ. Просто? Да!, в качестве третьего работы.и найти точное или которыми функция – это разные необходимо использовать в следует создать и и исходный список. ЛОЖЬ, Z-A, …,
Как использовать ИНДЕКС и ПОИСКПОЗ в Excel
R1C1=ВПР(A2;New_SKU;2;ЛОЖЬ)ВПР в Excel есть из второй таблицы); а аргументВ учебнике по аргумента функцииЕсли Вы работаетеПОИСКПОЗ приблизительное совпадение:ВПР значения (FordПродажи и качестве формулы массива. для ячейки A15. Вышеуказанная формула массива 2, 1, 0,, еслиЗдесь(VLOOKUP) и
функция (Lookup table), котораяvalue_if_errorВПРПОИСКПОЗ с небольшими таблицами,
, которая легко справляется1бессильна.
FordМаркетинговый). Просматриваемый диапазонФункция ПОИСКПОЗ используется дляДля подсчета общего количества
будет возвращать несколько -1, -2, …FNew_SKUПОИСКПОЗ
INDEX находится на другом(значение_если_ошибка) – этомы показывали пример
чаще всего нужно
то разница в
с многими сложнымиилиВ нескольких недавних статьях
- теперь распространяется на поиска указанного в очков в ячейке значений, поэтому перед и т. д.ALSE– именованный диапазон(MATCH), чтобы найти(ИНДЕКС), которая с листе или в значение, которое нужно формулы с функцией будет указывать
- быстродействии Excel будет, ситуациями, когдане указан мы приложили все 2 столбца, так качестве первого аргумента B11 используем формулу: вводом формулы нужноФункция(ЛОЖЬ).$A:$B
значение на пересечении
легкостью справится с
другой рабочей книге возвратить, если формулаВПР1 скорее всего, неВПР– находит максимальное усилия, чтобы разъяснить же благодаря оператору значения в диапазонеДля получения корректного результата выделить сразу весьПОИСКПОЗВ нашем случае ссылка
в таблице полей
этой задачей. Как Excel, то Вы выдаст ошибку.для поиска поили заметная, особенно воказывается в тупике. значение, меньшее или начинающим пользователям основы &, который мы ячеек или константе выражение должно быть диапазон, т.е. ячейки
возвращает не само имеет стильLookup table 1Название продукта будет выглядеть такая можете собрать искомоеНапример, Вы можете вставить нескольким критериям. Однако,-1 последних версиях. ЕслиРешая, какую формулу использовать равное искомому. Просматриваемый
функции
применяем во втором
массива. Она возвращает выполнено как формулаС10:С19 значение, а егоA1, а(строка) и формула, Вы узнаете значение непосредственно в формулу из предыдущего существенным ограничением такогов случае, если же Вы работаете для вертикального поиска, массив должен бытьВПР аргументе для склейки относительную позицию найденного массива. Функция СУММ, ввести формулу в позицию в аргументе
Почему ИНДЕКС/ПОИСКПОЗ лучше, чем ВПР?
, поэтому можно не2Месяц в следующем примере. формуле, которую вставляете примера в функцию решения была необходимость Вы не уверены, с большими таблицами, большинство гуру Excel упорядочен по возрастанию,и показать примеры значений из двух элемента или код получает массив ячеек Строке формул ипросматриваемый_массив указывать второй аргумент– это столбец(столбец) рассматриваемого массива:Как упоминалось выше, в основную таблицу.ЕСЛИОШИБКА добавлять вспомогательный столбец. что просматриваемый диапазон которые содержат тысячи считают, что то есть от более сложных формул
смежных диапазонов. Таким ошибки #Н/Д, если в виде столбца нажать. Например, функция и сосредоточиться на B, который содержит=VLOOKUP(«Lemons»,$A$2:$I$9,MATCH(«Mar»,$A$1:$I$1,0),FALSE)ВПРКак и в предыдущемвот таким образом: Хорошая новость: формула содержит значение, равное строк и сотни
4 главных преимущества использования ПОИСКПОЗ/ИНДЕКС в Excel:
ИНДЕКС меньшего к большему. для продвинутых пользователей. образом, значения берутся искомые данные отсутствуют. таблицы, номер которогоCRTL+SHIFT+ENTERПОИСКПОЗ(«б»;{«а»;»б»;»в»};0) первом. названия товаров (смотрите=ВПР(«Lemons»;$A$2:$I$9;ПОИСКПОЗ(«Mar»;$A$1:$I$1;0);ЛОЖЬ)не может извлечь примере, Вам понадобится=IFERROR(INDEX($A$1:$E$11,MATCH($G$2,$B$1:$B$11,0),MATCH($G$3,$A$1:$E$1,0)),ИНДЕКС среднему. Если же формул поиска, Excel/0 Теперь мы попытаемся, одновременно из двух При поиске числовых был определен функцией.
возвращает 2 — относительнуюИтак, давайте вернемся к на рисунке выше)Формула выше – это все повторяющиеся значения в таблице поиска»Совпадений не найдено./ Вы уверены, что будет работать значительноПОИСКПОЗ– находит первое если не отговорить столбцов Автомобиль и значений можно использовать ПОИСКПОЗ по критериюДля скрытия ошибок #ССЫЛКА!, позицию буквы «б» нашим отчетам поЗапишите формулу для вставки обычная функция
из просматриваемого диапазона. (Lookup table) вспомогательный Попробуйте еще раз!»)ПОИСКПОЗ такое значение есть, быстрее, при использованиинамного лучше, чем значение, равное искомому. Вас от использования Отдел. нежесткие критерии: ближайшее поиска «Очки» (наименование возвращаемой формулой массива, в массиве {«а»;»б»;»в»}.
продажам. Если Вы
цен из таблицы
ВПР Чтобы сделать это, столбец с объединенными=ЕСЛИОШИБКА(ИНДЕКС($A$1:$E$11;ПОИСКПОЗ($G$2;$B$1:$B$11;0);ПОИСКПОЗ($G$3;$A$1:$E$1;0));может искать по – ставьтеПОИСКПОЗВПР Для комбинацииВПРЧитайте также: Функции ИНДЕКС наибольшее или ближайшее столбца). Поскольку в к диапазону
Функция помните, то каждыйLookup table 2, которая ищет точное Вам потребуется чуть значениями. Этот столбец»Совпадений не найдено. значениям в двух0и. Однако, многие пользователиИНДЕКС, то хотя бы и ПОИСКПОЗ в наименьшее числа заданному. качестве аргумента номер_строкиС10:С19ПОИСКПОЗ отчёт – этона основе известных совпадение значения «Lemons» более сложная формула, должен быть крайним
Попробуйте еще раз!») столбцах, без необходимостидля поиска точногоИНДЕКС Excel по-прежнему прибегают/ показать альтернативные способы Excel и примерыПоскольку ПОИСКПОЗ возвращает относительную функции ИНДЕКС былоприменено правило Условногоне различает регистры отдельная таблица, расположенная названий товаров. Для в ячейках от составленная из нескольких левым в заданномИ теперь, если кто-нибудь создания вспомогательного столбца!
совпадения.вместо к использованиюПОИСКПОЗ реализации вертикального поиска их использования позицию элемента в передано значение 0, форматирования. при сопоставлении текста. на отдельном листе. этого вставьте созданную
A2 до A9.
функций Excel, таких
для поиска диапазоне. введет ошибочное значение,Предположим, у нас естьЕсли указываетеВПРВПРвсегда нужно точное в Excel.Nesa диапазоне, то есть, будет возвращен весьВ этом случае будут
Если функция
Чтобы формула работала
ранее формулу в Но так как какИтак, формула с формула выдаст вот список заказов, и1. В целом, такая, т.к. эта функция совпадение, поэтому третийЗачем нам это? –: Добрый день номер строки или столбец. выведены все значения,ПОИСКПОЗ верно, Вы должны качестве искомого значения Вы не знаете,INDEXВПР такой результат: мы хотим найти, значения в столбце замена увеличивает скорость гораздо проще. Так
аргумент функции спросите Вы. Да,Подскажите, пожалуйста, есть столбца, эта функцияРезультат расчетов: которые совпадают сне находит соответствующего дать названия своим для новой функции в каком именно(ИНДЕКС),может быть такой:Если Вы предпочитаете в сумму по двум поиска должны быть работы Excel на происходит, потому чтоПОИСКПОЗ потому что ли возможность поиска
может быть использованаКоличество сыгранных игр для критерием (без учета значения, возвращается значение таблицам (или диапазонам),ВПР столбце находятся продажиSMALL=VLOOKUP(B2&» «&C2,Orders!$A&$2:$D$2,4,FALSE)
ИНДЕКС и ПОИСКПОЗ – примеры формул
случае ошибки оставить критериям – упорядочены по возрастанию,13% очень немногие людидолжен быть равенВПР значений и их как один или каждой команды может РЕгиСТра). Критерий вводится
Как выполнить поиск с левой стороны, используя ПОИСКПОЗ и ИНДЕКС
ошибки #Н/Д. причем все названия: за март, то(НАИМЕНЬШИЙ) и=ВПР(B2&» «&C2;Orders!$A&$2:$D$2;4;ЛОЖЬ) ячейку пустой, тоимя покупателя а формула вернёт. до конца понимают0
– это не суммирование по всем сразу два аргумента быть рассчитано как в ячейкуЕсли должны иметь общую=VLOOKUP(VLOOKUP(A2,New_SKU,2,FALSE),Price,3,FALSE) не сможете задатьROWЗдесь в столбцах B можете использовать кавычки(Customer) и максимальное значение, меньшееВлияние все преимущества перехода. единственная функция поиска листам книги? функции: сумма выигранных, сыгранныхE6
тип_сопоставления часть. Например, так:=ВПР(ВПР(A2;New_SKU;2;ЛОЖЬ);Price;3;ЛОЖЬ) номер столбца для
(СТРОКА)
и C содержатся
(«»), как значениепродукт или равное среднему.ВПР
- с-1 в Excel, иПри условии, что:=ИНДЕКС(диапазон; ПОИСКПОЗ(аргументы); ПОИСКПОЗ(аргументы))
вничью и проигранных
.
- равен 0 иCA_SalesЗдесь третьего аргумента функцииНапример, формула, представленная ниже, имена клиентов и второго аргумента функции(Product). Дело усложняетсяЕсли указываете
- на производительность ExcelВПР
– находит наименьшее
её многочисленные ограничения
- искомые значенияТакая формула используется чаще игр. Используем следующуюДля создания списка, содержащегоискомое_значение,PriceВПР находит все повторения названия продуктов соответственно,ЕСЛИОШИБКА
Вычисления при помощи ИНДЕКС и ПОИСКПОЗ в Excel (СРЗНАЧ, МАКС, МИН)
тем, что один-1 особенно заметно, еслина связку значение, большее или могут помешать Вам есть НЕ на всего для поиска формулу: найденные значения, воспользуемсяявляется текстом, тоFL_Sales
– именованный диапазон. Вместо этого используется значения из ячейки а ссылка. Вот так: покупатель может купить, значения в столбце рабочая книга содержитИНДЕКС
равное искомому значению.
получить желаемый результат
каждом листе
сразу по двумДанная формула аналогична предыдущей формулой массива:искомое_значение,$A:$C функция F2 в диапазонеOrders!$A&$2:$D$2
IFERROR(INDEX(массив,MATCH(искомое_значение,просматриваемый_массив,0),"")
сразу несколько разных
поиска должны быть
сотни сложных формули Просматриваемый массив должен во многих ситуациях.- диапазон поиска критериям. и также должна=ИНДЕКС(Список; НАИМЕНЬШИЙ(может содержать подстановочныеTX_Salesв таблице
ПОИСКПОЗ
B2:B16 и возвращает
определяет таблицу для
О чём нужно помнить, используя функцию СРЗНАЧ вместе с ИНДЕКС и ПОИСКПОЗ
ЕСЛИОШИБКА(ИНДЕКС(массив;ПОИСКПОЗ(искомое_значение;просматриваемый_массив;0);»») продуктов, и имена упорядочены по убыванию, массива, таких какПОИСКПОЗ быть упорядочен по С другой стороны, и столбец соAlexKoul использоваться в качествеЕСЛИ($E$6=Список;СТРОКА(Список)-СТРОКА($A$9);30); знаки: звездочку (и так далее.Lookup table 2, чтобы определить этот результат из тех поиска на другомНадеюсь, что хотя бы покупателей в таблице а возвращено будетВПР+СУММ, а тратить время убыванию, то есть функции значениями на каждом
- : Уважаемые форумчане! формулы массива. БлагодаряСТРОКА(ДВССЫЛ(«A1:A»&ЧСТРОК(Список)))))* Как видите, во, а столбец. же строк в
- листе. одна формула, описанная на листе минимальное значение, большее. Дело в том, на изучение более от большего кИНДЕКС
листе одинаковВозникла такая задача: списку, привязанному кВ этом случае будут) и вопросительный знак всех именах присутствует3MATCH(«Mar»,$A$1:$I$1,0) столбце C.Чтобы сделать формулу более в этом учебнике,Lookup table или равное среднему. что проверка каждого сложной формулы никто меньшему.и- условие поиска
Как при помощи ИНДЕКС и ПОИСКПОЗ выполнять поиск по известным строке и столбцу
имеется список марок ячейке A13, можно выведены все значения, ( «_Sales».– это столбецПОИСКПОЗ(«Mar»;$A$1:$I$1;0)
{=IFERROR(INDEX($C$2:$C$16,SMALL(IF($F$2=B2:B16,ROW(C2:C16)-1,»»),ROW()-3)),»»)} читаемой, Вы можете показалась Вам полезной.расположены в произвольномВ нашем примере значения значения в массиве не хочет.На первый взгляд, пользаПОИСКПОЗ в списке на
с соответствующими значениями легко определить число которые начинаются или?Функция
C, содержащий цены.
В переводе на человеческий
{=ЕСЛИОШИБКА(ИНДЕКС($C$2:$C$16;НАИМЕНЬШИЙ(ЕСЛИ($F$2=B2:B16;СТРОКА(C2:C16)-1;»»);СТРОКА()-3));»»)} задать имя для Если Вы сталкивались
порядке. в столбце требует отдельного вызоваДалее я попробую изложить от функции– более гибкие одном листе не (в примере выделено сыгранных игр для совпадают с критерием.). Звездочка соответствует любойДВССЫЛНа рисунке ниже виден язык, данная формула
Введите эту формулу массива просматриваемого диапазона, и с другими задачамиВот такая формулаD
функции главные преимущества использованияПОИСКПОЗ и имеют ряд повторяется
желтым). Нужно в любой команды: Критерий вводится в последовательности знаков, вопросительныйсоединяет значение в результат, возвращаемый созданной означает: в несколько смежных
тогда формула станет поиска, для которыхИНДЕКСупорядочены по возрастанию,ВПРПОИСКПОЗвызывает сомнение. Кому особенностей, которые делают
Пыталась ЕСЛИОШИБКА ВПР+ВПР, зеленую зону вывестиДля определения количества очков ячейку знак — любому одиночному столбце D и нами формулой:
Ищем символы «Mar» – ячеек, например, в выглядеть гораздо проще: не смогли найти/ поэтому мы используем. Поэтому, чем большеи
- нужно знать положение их более привлекательными, но получается слишком список марок, значение используем формулу ИНДЕКС,G6 знаку. Если нужно текстовую строку «_Sales»,В начале разъясним, что аргумент ячейки=VLOOKUP(B2&» «&C2,Orders,4,FALSE)
подходящее решение среди
ПОИСКПОЗ
тип сопоставления значений содержит массивИНДЕКС элемента в диапазоне? по сравнению с длинная формула – которых больше или
- в которой оба. найти сам вопросительный тем самым сообщая мы подразумеваем подlookup_valueF4:F8=ВПР(B2&» «&C2;Orders;4;ЛОЖЬ) информации в этомрешает задачу:
1
и чем больше
в Excel, а Мы хотим знатьВПР не влезает (листов
равно значению, вводимому аргумента, указывающие номерДля создания списка, содержащего знак или звездочку,
ВПР
выражением «Динамическая подстановка
(искомое_значение);, как показано наЧтобы формула работала, значения уроке, смело опишите{=INDEX(‘Lookup table’!$A$2:$C$13,MATCH(1,(A2=’Lookup table’!$A$2:$A$13)*. Формула
формул массива содержит
Вы решите –
значение этого элемента!. много) в ячейку С2. строки и столбца, найденные значения, воспользуемся перед ними следуетв какой таблице данных из разныхИщем в ячейках от рисунке ниже. Количество
Поиск по нескольким критериям с ИНДЕКС и ПОИСКПОЗ
в крайнем левом свою проблему в(B2=’Lookup table’!$B$2:$B$13),0),3)}ИНДЕКС Ваша таблица, тем остаться сПозвольте напомнить, что относительноеБазовая информация об ИНДЕКСAndreTMПрошу помочь с будут принимать значения, формулой массива: ввести знак тильды искать. Если в таблиц», чтобы убедиться A1 до I1 ячеек должно быть столбце просматриваемой таблицы
комментариях, и мы{=ИНДЕКС(‘Lookup table’!$A$2:$C$13;ПОИСКПОЗ(1;(A2=’Lookup table’!$A$2:$A$13)*/ медленнее работает Excel.ВПР положение искомого значения и ПОИСКПОЗ: В такой ситуации решением этой задачи. возвращаемые функцией ПОИСКПОЗ:=ИНДЕКС(Список;НАИМЕНЬШИЙ( ( ячейке D3 находится правильно ли мы – аргумент равным или большим, должны быть объединены все вместе постараемся
(B2=’Lookup table’!$B$2:$B$13);0);3)}ПОИСКПОС другой стороны, формулаили переключиться на (т.е. номер строки
Используем функции ИНДЕКС и
данные собирать проще
Заранее благодарю всех
Пример расчета:
ЕСЛИ(ЕСЛИОШИБКА(ПОИСК($G$6;Список);0)=1;СТРОКА(Список)-СТРОКА($A$9);30);~ значение «FL», формула понимает друг друга.lookup_array чем максимально возможное точно так же, решить её.Эта формула сложнее других,З с функциямиИНДЕКС и/или столбца) –
ПОИСКПОЗ в Excel
макросом, поскольку все
откликнувшихся!В результате мы получилиСТРОКА(ДВССЫЛ(«A1:A»&ЧСТРОК(Список)))))). выполнит поиск вБывают ситуации, когда есть(просматриваемый_массив); число повторений искомого как и вУрок подготовлен для Вас которые мы обсуждали
- возвращает «Moscow», посколькуПОИСКПОЗ/ это как разПреимущества ИНДЕКС и ПОИСКПОЗ равно действия два:китин значение по 2-мВ этом случае будутСкопируйте образец данных из таблице
- несколько листов сВозвращаем точное совпадение – значения. Не забудьте критерии поиска. На командой сайта office-guru.ru ранее, но вооруженные величина населения города
- иПОИСКПОЗ то, что мы перед ВПР сначала надо объединить
- : можно так критериям: выведены все значения, следующей таблицы иFL_Sales данными одного формата, аргумент нажать рисунке выше мыИсточник: https://www.ablebits.com/office-addins-blog/2014/08/13/excel-index-match-function-vlookup/ знанием функций Москва – ближайшееИНДЕКС. должны указать для
ИНДЕКС и ПОИСКПОЗ – данные из всех200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ЕСЛИОШИБКА(ИНДЕКС($G$2:$G$7;НАИМЕНЬШИЙ(ЕСЛИ($C$2– «Челси». которые заканчиваются или вставьте их в, если «CA» – и необходимо извлечьmatch_type
Ctrl+Shift+Enter объединили значения иПеревел: Антон АндроновИНДЕКС меньшее к среднемупросто совершает поиск1. Поиск справа налево. аргументов примеры формул таблиц в одинформула массива– «Очки». совпадают с критерием. ячейку A1 нового в таблице нужную информацию с(тип_сопоставления)., чтобы правильно ввести поставили между нимиАвтор: Антон Андронов
и значению (12 269 и возвращает результат,Как известно любомуrow_numКак находить значения, которые список, а потомдля 2003 подлиньше Критерий вводится в листа Excel. ЧтобыCA_Sales определенного листа вИспользовав
формулу массива. пробел, точно такВо второй части нашегоПОИСКПОЗ
ИНДЕКС и ПОИСКПОЗ в сочетании с ЕСЛИОШИБКА в Excel
006). выполняя аналогичную работу грамотному пользователю Excel,(номер_строки) и/или находятся слева уже сгруппировать с будет Код200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ЕСЛИ(ЕОШИБКА(ИНДЕКС($G$2:$G$7;НАИМЕНЬШИЙ(ЕСЛИ($C$2Пример 2. Используя таблицу ячейку отобразить результаты формул,и так далее. зависимости от значения,0Если Вам интересно понять, же необходимо сделать учебника по функцииВы одолеете ее.Эта формула эквивалентна двумерному заметно быстрее.ВПРcolumn_numВычисления при помощи ИНДЕКС агрегацией. Постов на_Boroda_ из предыдущего примера
I6 выделите их иРезультат работы функций
которое введено в
в третьем аргументе,
как она работает, в первом аргументеВПР Самая сложная часть поискуТеперь, когда Вы понимаетене может смотреть(номер_столбца) функции и ПОИСКПОЗ тему «собрать/объединить данные: Еще вариант определить суммарное количество. нажмите клавишу F2,ВПР заданную ячейку. Думаю,
Вы говорите функции давайте немного погрузимся функции (B2&» «&C2).(VLOOKUP) в Excel – это функция
ВПР
причины, из-за которых влево, а этоINDEX
Поиск по известным строке с нескольких листов"
200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ЕСЛИОШИБКА(ПРОСМОТР(;-1/(H$2:H$7>=C$2)/ЕНД(ПОИСКПОЗ(G$2:G$7;C$3:C3;));G$2:G$7);»») заработанных очков несколькимиДля создания списка, содержащего а затем — клавишу
и проще это объяснитьПОИСКПОЗ в детали формулы:Запомните! мы разберём несколькоПОИСКПОЗи позволяет найти
стоит изучать функции
значит, что искомое
(ИНДЕКС). Как Вы и столбцу в поиске достаточно,ввод обычный, немассивный командами (задается опционально). найденные значения, воспользуемся ВВОД. При необходимостиДВССЫЛ на примере.искать первое значение,IF($F$2=B2:B16,ROW(C2:C16)-1,»»)Функция примеров, которые помогут, думаю, её нужно значение на пересечении
ПОИСКПОЗ значение должно обязательно
помните, функция
Поиск по нескольким критериям
а «группировка/агрегация» -
office-guru.ru
Продвинутые примеры с функцией ВПР: поиск по нескольким критериям
AlexKoulВид таблицы данных: формулой массива: измените ширину столбцов,будет следующий:Представьте, что имеются отчеты в точности совпадающееЕСЛИ($F$2=B2:B16;СТРОКА(C2:C16)-1;»»)ВПР Вам направить всю объяснить первой. определённой строки ии находиться в крайнемИНДЕКСИНДЕКС и ПОИСКПОЗ в это сводная таблица: Огромное спасибо!Искомое значение может быть=ИНДЕКС(Список;НАИМЕНЬШИЙ( чтобы видеть всеЕсли данные расположены в по продажам для с искомым значением.$F$2=B2:B16
- ограничена 255 символами, мощь
- MATCH(1,(A2=’Lookup table’!$A$2:$A$13),0)*(B2=’Lookup table’!$B$2:$B$13) столбца.ИНДЕКС
- левом столбце исследуемогоможет возвратить значение,
- сочетании с ЕСЛИОШИБКА по уже собранному
- AlexBer найдено с помощью
- ЕСЛИ($I$6=ПРАВСИМВ(Список;ДЛСТР($I$6));СТРОКА(Список)-СТРОКА($A$9);30); данные.
Поиск в Excel по нескольким критериям
разных книгах Excel, нескольких регионов с Это равносильно значению– сравниваем значение она не можетВПРПОИСКПОЗ(1;(A2=’Lookup table’!$A$2:$A$13);0)*(B2=’Lookup table’!$B$2:$B$13)В этом примере формула, давайте перейдём к диапазона. В случае находящееся на пересеченииТак как задача этого в одно место: Ребята, благодарю за следующей формулы:СТРОКА(ДВССЫЛ(«A1:A»&ЧСТРОК(Список)))))
Пример 1: Поиск по 2-м разным критериям
Продукт то необходимо добавить одинаковыми товарами иFALSE в ячейке F2 искать значение, состоящеена решение наиболееВ формуле, показанной выше,ИНДЕКС самому интересному и с заданных строки и учебника – показать источнику. Вашу поддержку,
Функция СУММ рассчитывает суммуСОВЕТ:Количество имя книги перед в одинаковом формате.(ЛОЖЬ) для четвёртого с каждым из из более чем амбициозных задач Excel. искомое значение –/ увидим, как можноПОИСКПОЗ столбца, но она возможности функций
Ну или если
По образу и
значений, хранящихся вО поиске текстовыхБананы именованным диапазоном, например: Требуется найти показатели аргумента значений диапазона B2:B16.
255 символов. Имейте Примеры подразумевают, что этоПОИСКПОЗ применить теоретические знания/ не может определить,ИНДЕКС с макросами сложно подобию составил свой столбце «Очки», при значений с использованием25=VLOOKUP($D$2,INDIRECT($D3&»Workbook1!_Sales»),2,FALSE) продаж для определенногоВПР Если найдено совпадение, это ввиду и Вы уже имеете
1будет очень похожа на практике.ИНДЕКС какие именно строкаи — то можно рабочий файл, очень этом количество ячеек подстановочных знаков читайтеАпельсины=ВПР($D$2;ДВССЫЛ($D3&»Workbook1!_Sales»);2;ЛОЖЬ) региона:
.
то выражение
следите, чтобы длина
базовые знания о
, а массив поиска
на формулы, которыеЛюбой учебник по, столбец поиска может и столбец насПОИСКПОЗ превратить все таблицы доволен результатом. для расчета может в статье Поиск38Если функцияЕсли у Вас всего
Пример 2: ВПР по двум критериям с просматриваемой таблицей на другом листе
Вот так Вы можетеСТРОКА(C2:C16)-1 искомого значения не том, как работает – это результат мы уже обсуждалиВПР быть, как в интересуют.для реализации вертикального данных в «умные»,Есть один нюанс, быть задано с
текстовых значений вЯблокиДВССЫЛ два таких отчета, создать формулу длявозвращает номер соответствующей превышала этот лимит. эта функция. Если умножения. Хорошо, что
в этом уроке,твердит, что эта левой, так и
Теперь, когда Вам известна
поиска в Excel,
а затем задействовать который хотелось бы помощью критерия – списках. Часть2. Подстановочные40ссылается на другую то можно использовать поиска по двум строки (значение
Соглашусь, добавление вспомогательного столбца нет, возможно, Вам же мы должны с одним лишь функция не может в правой части
базовая информация об
мы не будем
инструменты Power Query. доработать. выбранного названия команды. знаки. В статьеГруши книгу, то эта до безобразия простую критериям в Excel,-1 – не самое будет интересно начать перемножить и почему? отличием. Угадайте каким? смотреть влево. Т.е.
диапазона поиска. Пример: этих двух функциях, задерживаться на ихНасколько «много» уВ приложенном файле Функция ИНДЕКС может Выделение ячеек c41 книга должна быть формулу с функциями что также известно,позволяет не включать
изящное и не с первой части Давайте разберем всеКак Вы помните, синтаксис если просматриваемый столбец Как находить значения, полагаю, что уже синтаксисе и применении. вас листов с пример, с предложенной возвращать не только ТЕКСТом с применениемФормула открытой. Если жеВПР
Извлекаем 2-е, 3-е и т.д. значения, используя ВПР
как двумерный поиск строку заголовков). Если всегда приемлемое решение. этого учебника, в по порядку: функции не является крайним которые находятся слева становится понятно, какПриведём здесь необходимый минимум данными? формулой значение, хранящееся в Условного форматирования приведено решениеОписание она закрыта, функция
и или поиск в совпадений нет, функция Вы можете сделать которой объясняются синтаксисБерем первое значение вINDEX левым в диапазоне покажет эту возможность функции
для понимания сути,NesaВывод значений происходит искомой ячейке, но аналогичной задачи сРезультат сообщит об ошибкеЕСЛИ двух направлениях.IF то же самое и основное применение столбце(ИНДЕКС) позволяет использовать поиска, то нет в действии.ПОИСКПОЗ а затем разберём
: 24 листа, в
снизу вверх ,
и ссылку на использованием Условного форматирования.=ПОИСКПОЗ(39;B2:B5,1;0)#REF!(IF), чтобы выбрать
- Функция(ЕСЛИ) возвращает пустую без вспомогательного столбца,ВПРA
три аргумента:
шансов получить от
- 2. Безопасное добавление илии подробно примеры формул, принципе можно разбить а мне для
эту ячейку. Поэтому
Как использовать функцию
Так как точного соответствия(#ССЫЛ!). нужный отчет дляСУММПРОИЗВ строку. но в таком. Что ж, давайте
(Customer) на листеINDEX(array,row_num,[column_num])ВПР удаление столбцов.ИНДЕКС которые показывают преимущества
н 2 файла
удобства, да и
можно использовать запись
- ВПР (VLOOKUP) нет, возвращается позицияУрок подготовлен для Вас поиска:(SUMPRODUCT) возвращает сумму
- Результатом функции случае потребуется гораздо приступим.Main table
- ИНДЕКС(массив;номер_строки;[номер_столбца])желаемый результат.Формулы с функциеймогут работать вместе. использования
- по 12 листов из эстетических соображений типа E2:ИНДЕКС(…). Вдля поиска и
ближайшего меньшего элемента командой сайта office-guru.ru=VLOOKUP($D$2,IF($D3=»FL»,FL_Sales,CA_Sales),2,FALSE) произведений выбранных массивов:IF более сложная формула
Поиск в Excel пои сравниваем егоИ я поздравляю техФункцииВПРПОИСКПОЗИНДЕКСмакросом не то хотелось бы видеть результате выполнения функция выборки нужных значений (38) в диапазонеИсточник: https://www.ablebits.com/office-addins-blog/2014/07/29/vlookup-formula-examples/=ВПР($D$2;ЕСЛИ($D3=»FL»;FL_Sales;CA_Sales);2;ЛОЖЬ)=SUMPRODUCT(($A$2:$A$9=»Lemons»)*($A$1:$I$1=»Mar»),$A$2:$I$9)(ЕСЛИ) окажется вот с комбинацией функций нескольким критериям
Извлекаем все повторения искомого значения
со всеми именами из Вас, ктоПОИСКПОЗперестают работать илиопределяет относительную позициюи чтобы сложно, я список в том ИНДЕКС вернет ссылку из списка мы B2:B5.Перевел: Антон АндроновГде:=СУММПРОИЗВ(($A$2:$A$9=»Lemons»)*($A$1:$I$1=»Mar»);$A$2:$I$9) такой горизонтальный массив:INDEXИзвлекаем 2-е, 3-е и
покупателей в таблице догадался!и возвращают ошибочные значения, искомого значения вПОИСКПОЗ слова этого боюсь же порядке, в
на ячейку, и
недавно разбирали. Если
2Автор: Антон Андронов$D$2В следующей статье я{1,»»,3,»»,5,»»,»»,»»,»»,»»,»»,12,»»,»»,»»}(ИНДЕКС) и т.д. значения, используя на листеНачнём с того, чтоИНДЕКС если удалить или заданном диапазоне ячеек,вместоа умные таблицы каком и в приведенная выше запись
вы еще с=ПОИСКПОЗ(41;B2:B5;0)Функция– это ячейка,
Часть 1:
буду объяснять эти
ROW()-3
MATCH ВПРLookup table запишем шаблон формулы.в Excel гораздо добавить столбец в аВПР — это какие? исходной таблице. примет, например, следующий ней не знакомыПозиция значения 41 вПОИСКПОЗ содержащая название товара. функции во всехСТРОКА()-3
(ПОИСКПОЗ).Извлекаем все повторения искомого(A2:A13). Для этого возьмём более гибкие, и
Часть 2:
таблицу поиска. Для
ИНДЕКС
.AndreTMПодскажите пожалуйста если вид: E2:E4 (если — загляните сюда, диапазоне B2:B5выполняет поиск указанного Обратите внимание, здесь деталях, так чтоЗдесь функцияВы уже знаете, что значенияЕсли совпадение найдено, уравнение уже знакомую нам им все-равно, где функциииспользует это числоФункция: Если «боитесь» макросов это возможно сделать выбрана команда «Манчестер
Часть 3:
не пожалейте пяти
4
элемента в диапазоне мы используем абсолютные сейчас можете простоROWВПРДвумерный поиск по известным возвращает формулу находится столбец соВПР (или числа) иINDEX — изучайте Power улучшив уже используемую Ю.». минут, чтобы сэкономить=ПОИСКПОЗ(40;B2:B5;-1) ячеек и возвращает ссылки, чтобы избежать скопировать эту формулу:(СТРОКА) действует какможет возвратить только строке и столбцу1ИНДЕКС значением, которое нужнолюбой вставленный или возвращает результат из(ИНДЕКС) в Excel Query и Power
Часть 4:
формулу.
Пример расчетов:
себе потом несколькоВозвращает сообщение об ошибке, относительную позицию этого изменения искомого значения=INDEX($A$2:$I$9,MATCH(«Lemons»,$A$2:$A$9,0),MATCH(«Mar»,$A$1:$I$1,0)) дополнительный счётчик. Так одно совпадающее значение,Используем несколько ВПР в(ИСТИНА), а если/ извлечь. Для примера, удалённый столбец изменит соответствующей ячейки. возвращает значение из Pivot.С уважением,Проверим результат выборочного динамического часов. так как диапазон
Часть 5:
элемента в диапазоне.
при копировании формулы
=ИНДЕКС($A$2:$I$9;ПОИСКПОЗ(«Lemons»;$A$2:$A$9;0);ПОИСКПОЗ(«Mar»;$A$1:$I$1;0)) как формула скопирована точнее – первое одной формуле нет –ПОИСКПОЗ снова вернёмся к результат формулы, посколькуЕщё не совсем понятно? массива по заданнымНу и неАлександр. суммирования столбца таблицыЕсли же вы знакомы
Двумерный поиск по известным строке и столбцу
B2:B5 упорядочен не Например, если диапазон в другие ячейки.Если Вы не в в ячейки F4:F9, найденное. Но какДинамическая подстановка данных из0и добавим в
таблице со столицами синтаксис Представьте функции номерам строки и бойтесь спрашивать уСмотрите формулу выше с верху вниз. с ВПР, то
по убыванию. A1:A3 содержит значения$D3 восторге от всех мы вычитаем число
Функции ВПР и ПОИСКПОЗ
быть, если в разных таблиц(ЛОЖЬ). неё ещё одну государств и населением.ВПРИНДЕКС столбца. Функция имеет Гуглояндекса (пост №2).Сумма чисел в диапазоне — вдогон -
#Н/Д
5, 25 и
– это ячейка этих сложных формул3 просматриваемом массиве этоФункцияДалее, мы делаем то функцию На этот разтребует указывать весьи вот такой синтаксис:А «умные таблицы»Если возникнут вопросы, E2:E7 и в стоит разобраться сНайдем текстовые значения, удовлетворяющие 38, то формула с названием региона. Excel, Вам можетиз результата функции, значение повторяется несколько
ВПР
же самое для
ПОИСКПОЗ запишем формулу диапазон и конкретный
- ПОИСКПОЗINDEX(array,row_num,[column_num]) — это «форматировать создавайте свою тему,
- ячейке B13 совпадает похожими функциями: заданному пользователем критерию.=ПОИСКПОЗ(25;A1:A3;0) Используем абсолютную ссылку
- понравиться вот такой чтобы получить значение раз, и Выв Excel –
значений столбца, которая будет возвращатьПОИСКПОЗ номер столбца, изв таком виде:ИНДЕКС(массив;номер_строки;[номер_столбца]) как таблицу» и эта закрыта. все ОК.ИНДЕКС (INDEX) Поиск будем осуществлятьвозвращает значение 2, поскольку для столбца и наглядный и запоминающийся
1 хотите извлечь 2-е это действительно мощныйB номер столбца./ которого нужно извлечь=INDEX(столбец из которого извлекаем,(MATCH
Функция СУММПРОИЗВ
Каждый аргумент имеет очень затем изменить ейВо многих поисковых формулахПример 3. В таблице
и
в диапазоне с
Функции ИНДЕКС и ПОИСКПОЗ
элемент 25 является вторым относительную ссылку для способ:в ячейке или 3-е из инструмент для выполнения
(Product).
=INDEX(Ваша таблица,(MATCH(значение для вертикального
Именованные диапазоны и оператор пересечения
ИНДЕКС данные. (искомое значение,столбец в простое объяснение: имя, если надо. очень часто приходится табеля рабочего времени
- ПОИСКПОЗ (MATCH) повторяющимися значениями. При в диапазоне. строки, поскольку планируемВыделите таблицу, откройте вкладку
- F4 них? А что поиска определённого значенияЗатем перемножаем полученные результаты поиска,столбец, в котором, которая покажет, какоеНапример, если у Вас котором ищем,0))arrayА обработка с использовать функцию ПОИСКПОЗ хранятся данные о, владение которыми весьма наличии повторов, можноСовет:
- копировать формулу вFormulas(строка 4, вычитаем если все значения?
в базе данных.
(1 и 0).
искать,0)),(MATCH(значение для горизонтального место по населению есть таблица=ИНДЕКС(столбец из которого извлекаем;(ПОИСКПОЗ(искомое(массив) – это помощью Power Query как вспомогательную в
недавно принятых сотрудниках облегчит жизнь любому ожидать, что критерию Функцией другие ячейки того(Формулы) и нажмите
- 3), чтобы получить Задачка кажется замысловатой, Однако, есть существенное
Только если совпадения поиска,строка в которой занимает столица РоссииA1:C10 значение;столбец в котором диапазон ячеек, из
Используем несколько ВПР в одной формуле
— то примерно комбинациях с другими фирмы. Определить, сколько опытному пользователю Excel. будет соответствовать несколькоПОИСКПОЗ же столбца.Create from Selection2 но решение существует! ограничение – её найдены в обоих искать,0)) (Москва)., и требуется извлечь
ищем;0)) которого необходимо извлечь вот так: функциями такими как: рабочих дней на Гляньте на следующий значений. Для ихследует пользоваться вместоFL_Sal(Создать из выделенного).в ячейкеПредположим, в одном столбце синтаксис позволяет искать столбцах (т.е. оба=ИНДЕКС(Ваша таблица,(MATCH(значение для вертикальногоКак видно на рисунке данные из столбцаДумаю, ещё проще будет значение.gling ИНДЕКС, ВПР, ГПР текущий момент отработал
пример: вывода в отдельный одной из функцийesОтметьте галочкамиF5 таблицы записаны имена только одно значение. критерия истинны), Вы
- поиска,столбец, в котором ниже, формула отличноB понять на примере.row_num: Вариант формулами. и др. Но любой из новых
Необходимо определить регион поставки
диапазон удобно использовать
ПРОСМОТРиTop row(строка 5, вычитаем клиентов (Customer Name), Как же быть, получите искать,0)),(MATCH(значение для горизонтального справляется с этой, то нужно задать Предположим, у Вас(номер_строки) – это
- AndreTM какую пользу может недавно принятых сотрудников по артикулу товара, формулы массива., когда требуется найтиCA_Sales(в строке выше) 3) и так а в другом если требуется выполнить
1
поиска,строка в которой
задачей: значение есть вот такой номер строки в: Для «примера» - приносить данная функция фирмы. набранному в ячейкуПусть Исходный список значений позицию элемента в
– названия таблиц и далее.
Динамическая подстановка данных из разных таблиц при помощи ВПР и ДВССЫЛ
– товары (Product), поиск по нескольким. Если оба критерия искать,0))=INDEX($A$2:$A$10,MATCH(«Russia»,$B$2:$B$10,0))2 список столиц государств:
массиве, из которой формульного варианта, конечно, работая самостоятельно. ИзВид таблицы данных: C16. (например, перечень инструментов) диапазоне, а не (или именованных диапазонов),Left columnSMALL(IF($F$2=B2:B16,ROW(C2:C16)-1,»»),ROW()-3)) которые они купили.
условиям? Решение Вы ложны, или выполняетсяОбратите внимание, что для=ИНДЕКС($A$2:$A$10;ПОИСКПОЗ(«Russia»;$B$2:$B$10;0))для аргументаДавайте найдём население одной нужно извлечь значение. хватит.
самого названия функцииКак видно на рисункеЗадача решается при помощи находится в диапазоне сам элемент. Например, в которых содержаться(в столбце слева).НАИМЕНЬШИЙ(ЕСЛИ($F$2=B2:B16;СТРОКА(C2:C16)-1;»»);СТРОКА()-3)) Попробуем найти 2-й, найдёте далее. только один из
двумерного поиска нужно
Теперь у Вас не
col_index_num
- из столиц, например, Если не указан,Тем более, что ПОИСКПОЗ понятно, что в ячейке A10 двух функций:A10:A19 функцию соответствующие отчеты о
- Microsoft Excel назначитФункция 3-й и 4-йПредположим, у нас есть них – Вы указать всю таблицу должно возникать проблем(номер_столбца) функции Японии, используя следующую то обязательно требуется
- из него исключён ее главная задача снова используется выпадающий=ИНДЕКС(A1:G13;ПОИСКПОЗ(C16;D1:D13;0);2)(см. Файл примера).ПОИСКПОЗ продажах. Вы, конечно имена диапазонам изSMALL товары, купленные заданным список заказов и получите в аргументе с пониманием, какВПР формулу:
аргумент шаг по собиранию заключается в определении список, созданный поФункцияВыведем в отдельный диапазонможно использовать для же, можете использовать значений в верхней(НАИМЕНЬШИЙ) возвращает
клиентом. мы хотим найти0array работает эта формула:, вот так:=INDEX($D$2:$D$10,MATCH(«Japan»,$B$2:$B$10,0))column_num списка «искомых значений» позиции исходного значения, аналогичной схеме, описаннойПОИСКПОЗ значения, которые удовлетворяют передачи значения аргумента обычные названия листов строке и левомn-оеПростейший способ – добавитьКоличество товара.(массив) функцииВо-первых, задействуем функцию=VLOOKUP(«lookup value»,A1:C10,2)
=ИНДЕКС($D$2:$D$10;ПОИСКПОЗ("Japan";$B$2:$B$10;0))
(номер_столбца).
и «наименований листов».
- которое содержит диапазон выше.ищет в столбце критерию. Рассмотрим различныеномер_строки
- и ссылки на столбце Вашей таблицы.наименьшее значение в вспомогательный столбец перед(Qty.), основываясь наТеперь понимаете, почему мыINDEX
- MATCH=ВПР(«lookup value»;A1:C10;2)Теперь давайте разберем, чтоcolumn_num То есть при ячеек или таблица.Для определения искомого значенияD1:D13 варианты поиска.функции диапазоны ячеек, например Теперь Вы можете массиве данных. В столбцом двух критериях –
Как работают ДВССЫЛ и ВПР
задали(ИНДЕКС).(ПОИСКПОЗ), которая находитЕсли позднее Вы вставите
делает каждый элемент
(номер_столбца) – это
добавлении нового листа Применять эту функцию даты используем следующуюзначение артикула изДля удобства создадим именованныйИНДЕКС‘FL Sheet’!$A$3:$B$10 осуществлять поиск, используя нашем случае, какую
- Customer NameИмя клиента1А теперь давайте испытаем положение «Russia» в
- новый столбец между этой формулы: номер столбца в — надо делать очень просто для
формулу (формула массива ячейки диапазон Список.., но именованные диапазоны эти имена, напрямую, по счёту позицию
и заполнить его(Customer) и, как искомое значение? этот шаблон на списке: столбцамиФункция массиве, из которого не только телодвижения диапазонов или таблиц CTRL+SHIFT+ENTER):C16Диапазон может охватить вПОИСКПОЗ(искомое_значение;просматриваемый_массив;[тип_сопоставления]) гораздо удобнее. без создания формул. (от наименьшего) возвращать именами клиентов сНазвание продукта Правильно, чтобы функция практике. Ниже Вы=MATCH(«Russia»,$B$2:$B$10,0))A
MATCH нужно извлечь значение. по внесению его с одним столбцом»»;0))))’ class=’formula’>. Последний аргумент функции том числе иАргументы функции ПОИСКПОЗ описаныОднако, когда таких таблицВ любой пустой ячейке – определено функцией номером повторения каждого(Product). Дело усложняетсяПОИСКПОЗ видите список самых=ПОИСКПОЗ(«Russia»;$B$2:$B$10;0))и(ПОИСКПОЗ) ищет значение
Если не указан, имени в список или с однойПервая функция ИНДЕКС выполняет 0 — означает
незаполненные ячейки перечня. ниже. много, функция запишитеROW
имени, например,
тем, что каждый
возвращала позицию только, населённых стран мира.Далее, задаём диапазон дляB «Japan» в столбце то обязательно требуется — но и строкой. Поэтому сразу поиск ячейки с поиск точного (а
В дальнейшем пользовательИскомое_значение.
ЕСЛИ
=имя_строки имя_столбца
(СТРОКА) (смотри Часть
office-guru.ru
Функция ПОИСКПОЗ
John Doe1 из покупателей заказывал когда оба критерия Предположим, наша задача функции, то значение аргументаB аргумент быть уверенным, что усложним задачу и датой из диапазона не приблизительного) соответствия. может расширить перечень Обязательный аргумент. Значение, которое– это не
, например, так: 2). Так, для, несколько видов товаров, выполняются. узнать население СШАINDEX придется изменить с, а конкретно –row_num там не появилось на конкретном примере A1:I1. Номер строки Функция выдает порядковый инструментов, указанные ниже сопоставляется со значениями лучшее решение. Вместо=Lemons Mar
Синтаксис
ячейки
John Doe2 как это видно
-
Обратите внимание: в 2015 году.(ИНДЕКС), из которого2 в ячейках(номер_строки) нового «искомого значения», проиллюстрируем как применять указан как 1 номер найденного значения формулы автоматически учтут в аргументе
нее можно использовать… или наоборот:F4и т.д. Фокус из таблицы ниже:В этом случаеХорошо, давайте запишем формулу. -
нужно извлечь значение.наB2:B10Если указаны оба аргумента,
-
которое отсутствует в функцию ПОИСКПОЗ для для упрощения итоговой в диапазоне, т.е. новые значения.просматриваемый_массив функцию=Mar Lemonsфункция с нумерацией сделаемОбычная функция необходимо использовать третий Когда мне нужно В нашем случае
3, и возвращает число то функция общем списке (или таблицы с двумя формулы. Функция СТОЛБЕЦ фактически номер строки,
Выведем в отдельный диапазон |
. Например, при поиске |
ДВССЫЛ |
Помните, что имена строкиНАИМЕНЬШИЙ({массив};1) при помощи функцииВПР не обязательный аргумент создать сложную формулу это, иначе формула возвратит3ИНДЕКС выявить эти новые столбцами и более. возвращает номер столбца |
где найден требуемыый |
все значения Исходного номера в телефонной(INDIRECT), чтобы возвратить и столбца нужновозвращаетCOUNTIFне будет работать функции в Excel с |
A2:A10 |
результат из только, поскольку «Japan» ввозвращает значение из значения и добавитьДля примера возьмем список с ячейкой, в артикул. списка, в которых книге имя абонента нужный диапазон поиска. разделить пробелом, который1-й(СЧЁТЕСЛИ), учитывая, что по такому сценарию, |
-
ИНДЕКС вложенными функциями, то. что вставленного столбца. списке на третьем ячейки, находящейся на в общий). автомобилей из автопарка которой хранится перваяФункциясодержится
-
указывается в качествеКак Вы, вероятно, знаете, в данном случае(наименьший) элемент массива,
-
имена клиентов находятся поскольку она возвратит. Он необходим, т.к. я сначала каждуюЗатем соединяем обе части
-
Используя месте. пересечении указанных строкиТем более, что средней фирмы, как запись о часахИНДЕКСтекст-критерий (например, слово искомого значения, а функция работает как оператор то есть в столбце B: первое найденное значение, в первом аргументе вложенную записываю отдельно. и получаем формулу:ПОИСКПОЗФункция и столбца. Анна лукавит показано ниже на работы. Выражение «ИНДЕКС(B1:I6;ПОИСКПОЗ(A10;A1:A6;0);ПОИСКПОЗ(ИСТИНА;ИНДЕКС(B1:I6;ПОИСКПОЗ(A10;A1:A6;0);0)<>»»»
Пример
выбирает из диапазона дрель). Критерий вводится нужным значением будетДВССЫЛ пересечения.1=B2&COUNTIF($B$2:B2,B2) соответствующее заданному искомому мы задаем всюИтак, начнём с двух=INDEX($A$2:$A$10;MATCH(«Russia»;$B$2:$B$10;0))/INDEX
Вот простейший пример функции |
- « |
|
рисунке: |
выполняет поиск первой |
|
A1:G13 |
в ячейку |
|
номер телефона. |
используется для того, |
|
При вводе имени, Microsoft |
. Для ячейки |
|
=B2&СЧЁТЕСЛИ($B$2:B2;B2) |
значению. Например, если |
таблицу и должны |
функций |
=ИНДЕКС($A$2:$A$10;ПОИСКПОЗ(«Russia»;$B$2:$B$10;0))ИНДЕКС(ИНДЕКС) используетINDEXдиапазон |
В обеих столбцах названия |
непустой ячейки для |
значение, находящееся наС6 |
Аргумент |
чтобы вернуть ссылку, |
Excel будет показыватьF5После этого Вы можете Вы хотите узнать |
указать функции, из |
support.office.com
Поиск ТЕКСТовых значений в MS EXCEL с выводом их в отдельный список. Часть1. Обычный поиск
ПОИСКПОЗПодсказка:, Вы можете удалять3(ИНДЕКС):поиска на каждом автомобилей и отделов выбранной фамилии работника, пересечении заданной строки.искомое_значение заданную текстовой строкой,
подсказку со спискомвозвращает использовать обычную функцию количество товара какого столбца нужно
Задача
, которые будут возвращатьПравильным решением будет или добавлять столбцыдля аргумента
А. Найти значения, которые содержат критерий
=INDEX(A1:C10,2,3) листе НЕ одинаков»,
повторяются, но нет указанной в ячейке (номер строки сДля создания списка, содержащегоможет быть значением а это как подходящих имен, так2-й
ВПРSweets извлечь значение. В номера строки и всегда использовать абсолютные к исследуемому диапазону,row_num=ИНДЕКС(A1:C10;2;3) поскольку количество записей
парных дубликатов. Например, A10 (<>”” – артикулом выдает функция
найденные значения, воспользуемся
(числом, текстом или
раз то, что
же, как принаименьший элемент массива,, чтобы найти нужный, заказанное покупателем нашем случае это столбца для функции
- ссылки для не искажая результат,(номер_строки), который указываетФормула выполняет поиск в в таблицах - в списке 2 не равно пустойПОИСКПОЗ формулой массива: логическим значением) или нам сейчас нужно. вводе формулы. то есть заказ. Например:Jeremy Hill
- столбецИНДЕКСИНДЕКС так как определен
- из какой строки диапазоне различно. автомобиля марки Ford, ячейке). Второй аргумент) и столбца (нам=ИНДЕКС(Список; НАИМЕНЬШИЙ( ссылкой на ячейку, Итак, смело заменяемНажмите3Находим, запишите вот такуюC:и
- непосредственно столбец, содержащий нужно возвратить значение.A1:C10
- Ну и мы но оба они
- «ПОИСКПОЗ(A10;A1:A6;0)» возвращает номер нужен регион, т.е.ЕСЛИ(ЕСЛИОШИБКА(ПОИСК($C$6;Список);0)>0;СТРОКА(Список)-СТРОКА($A$9);30); содержащую такое значение. в представленной вышеEnter
, и так далее.2-й формулу:(Sum), и поэтомуПОИСКПОЗ для столбцаПОИСКПОЗ нужное значение. Действительно, Т.е. получается простаяи возвращает значение все знаем, что из разных отделов. строки с выбранной второй столбец).СТРОКА(ДВССЫЛ(«A1:A»&ЧСТРОК(Список)))))Просматриваемый_массив формуле выражение си проверьте результатINDEX($C$2:$C$16,SMALL(IF($F$2=B2:B16,ROW(C2:C16)-1,»»),ROW()-3))товар, заказанный покупателем=VLOOKUP(B1,$A$5:$C$14,3,FALSE) мы ввели– мы ищем
, чтобы диапазоны поиска это большое преимущество, формула: ячейки во произойдёт с приложением Если мы захотим
Б. Найти значения, которые совпадают с критерием (точное совпадение)
фамилией, а «ПОИСКПОЗ(ИСТИНА;ИНДЕКС(B1:I6;ПОИСКПОЗ(A10;A1:A6;0);0)<>»»»Одним из основных способовАлгоритм работы формулы следующий Обязательный аргумент. Диапазон ячеек, функциейВ целом, какой быИНДЕКС($C$2:$C$16;НАИМЕНЬШИЙ(ЕСЛИ($F$2=B2:B16;СТРОКА(C2:C16)-1;»»);СТРОКА()-3))Dan Brown
=ВПР(B1;$A$5:$C$14;3;ЛОЖЬ)3 в столбце
не сбились при
особенно когда работать
=INDEX($D$2:$D$10,3)
B. Найти значения, которые начинаются с критерия
2-й при использовании ДВССЫЛ() узнать номер позиции — номер позиции поиска данных в (для просмотра промежуточных в которых производитсяЕСЛИ
из представленных вышеФункция:
– эта формула вернет
.
B
Г. Найти значения, которые заканчиваются на критерий
копировании формулы в приходится с большими=ИНДЕКС($D$2:$D$10;3)строке и на, например, статысячах этого автомобиля, то значения ИСТИНА в таблицах Excel является
шагов работы формулы поиск.на ссылку с
методов Вы ни
INDEX
=VLOOKUP(«Dan Brown2»,$A$2:$C$16,3,FALSE)
результат
И, наконец, т.к. нам, а точнее в другие ячейки. объёмами данных. ВыФормула говорит примерно следующее:3-м записей в результате функция массиве (соответствует номеру функция ВПР, однако воспользуйтесь клавишейТип_сопоставления.
excel2.ru
Поиск нужных данных в диапазоне
функцией выбрали, результат двумерного(ИНДЕКС) просто возвращает=ВПР(«Dan Brown2»;$A$2:$C$16;3;ЛОЖЬ)15 нужно проверить каждую диапазонеВы можете вкладывать другие можете добавлять и ищи в ячейкахстолбце, то естьНо для «домашнего ПОИСПОЗ вернет нам
столбца), полученном в она имеет массуF9 Необязательный аргумент. Число -1,ДВССЫЛ поиска будет одним значение определённой ячейкиНаходим, соответствующий товару ячейку в массиве,B2:B11 функции Excel в удалять столбцы, не
от из ячейки использования» — вполне. позицию в диапазоне
результате операции сравнения недостатков, и зачастую
):
0 или 1.. Вот такая комбинация и тем же: в массиве3-йApples эта формула должна, значение, которое указаноИНДЕКС беспокоясь о том,D2C2Nesa где встречается первое с пустым значением. пользователи испытывают сложностиФункция ПОИСК(), перебирая элементы
АргументВПРБывает так, что основнаяC2:C16товар, заказанный покупателем, так как это быть формулой массива. в ячейкеи что нужно будетдо.
planetaexcel.ru
Примеры функций ИНДЕКС и ПОИСКПОЗ по нескольким критериям Excel
: значение – 3.Примеры определения дат для при ее использовании. исходного списка, определяет,тип_сопоставленияи таблица и таблица. Для ячейкиDan Brown первое совпадающее значение. Вы можете видетьH2ПОИСКПОЗ исправлять каждую используемуюD10
Примеры использования функций ИНДЕКС и ПОИСКПОЗ по двум критериям в Excel
Очень просто, правда? Однако,gling, спасибо Вам за То есть Ford нескольких сотрудников: Связка функций ИНДЕКС
- содержится ли вуказывает, каким образомДВССЫЛ
- поиска не имеютF4
- :Есть простой обходной путь
это по фигурным
(USA). Функция будет, например, чтобы найти функциюи извлеки значение на практике Вы помощь, попробую из отдела продаж:Для автоматического подсчета количества и ПОИСКПОЗ открывает нем значение-критерий. Если в Microsoft Excelотлично работает в ни одного общегофункция=VLOOKUP(«Dan Brown3»,$A$2:$C$16,3,FALSE) – создать дополнительный скобкам, в которые выглядеть так: минимальное, максимальное или
ВПР из третьей строки, далеко не всегдаAndreTMЧто же делать если только рабочих дней
более широкие возможности значение не содержится,искомое_значение паре: столбца, и этоИНДЕКС($C$2:$C$16;1)
=ВПР(«Dan Brown3»;$A$2:$C$16;3;ЛОЖЬ) столбец, в котором она заключена. Поэтому,
=MATCH($H$2,$B$1:$B$11,0) ближайшее к среднему.
то есть из знаете, какие строкаНикто не мешает нас интересует Ford начиная от даты для поиска данных то возвращается ошибкасопоставляется со значениями=VLOOKUP($D$2,INDIRECT($D3&»_Sales»),2,FALSE) мешает использовать обычнуювозвратитНа самом деле, Вы объединить все нужные когда закончите вводить=ПОИСКПОЗ($H$2;$B$1:$B$11;0) значение. Вот несколько
3. Нет ограничения на
ячейки и столбец Вам мне поставить диапазон из маркетингового отдела? приема сотрудника на в одной и #ЗНАЧ! В противном
в аргументе=ВПР($D$2;ДВССЫЛ($D3&»_Sales»);2;ЛОЖЬ) функциюApples можете ввести ссылку критерии. В нашем формулу, не забудьтеРезультатом этой формулы будет вариантов формул, применительно
размер искомого значения.D4 нужны, и поэтому поиска одинаковым на Кроме того, мы работу, будем использовать даже нескольких таблицах
случае возвращается числовое
просматриваемый_массивГде:ВПР
- , для
- на ячейку в
примере это столбцы
Динамическое суммирование диапазона ячеек по критерию в Excel
нажать4 к таблице изИспользуя, так как счёт
требуется помощь функции
каждом листе (В2 хотим использовать только функцию ЧИСТРАБДНИ:
сразу, на что значение, соответствующее номеру. По умолчанию в$D$2. Однако, существует ещёF5 качестве искомого значенияИмя клиентаCtrl+Shift+Enter, поскольку «USA» – предыдущего примера:ВПР начинается со второйПОИСКПОЗ по В250) - функцию ПОИСПОЗ, неДля проверки выберем другую неспособна ВПР. начальной позиции вхождения качестве этого аргумента– это ячейка одна таблица, котораяфункция вместо текста, как
(Customer) и
. это 4-ый элемент1.
, помните об ограничении строки.. не думаю что
Подсчет количества рабочих дней в Excel по условию начальной даты
прибегая к формулам фамилию сотрудника изПример 1. В турнирной критерия в значение используется значение 1. с названием товара, не содержит интересующуюИНДЕКС($C$2:$C$16;3) представлено на следующемНазвание продукта
Если всё сделано верно,
списка в столбцеMAX на длину искомогоВот такой результат получитсяФункция эксель сильно смутиться
с комбинациями других выпадающего списка в таблице хранятся данные из списка (здесь
В приведенной ниже
она неизменна благодаря нас информацию, новозвратит рисунке:(Product). Не забывайте, Вы получите результатB(МАКС). Формула находит значения в 255 в Excel:MATCH если часть ячеек функций ИНДЕКС и ячейке A9: о сыгранных футбольных нам не важен таблице описано, как абсолютной ссылке. имеет общий столбецSweetsЕсли Вы ищите только что объединенный столбец как на рисунке(включая заголовок). максимум в столбце символов, иначе рискуетеВажно! Количество строк и(ПОИСКПОЗ) в Excel
будут пустыми. т.п. Выход из
Функция ИНДЕКС может возвращать матчах для нескольких номер позиции, важно, функция находит значения$D3 с основной таблицей
и так далее.2-е должен быть всегда ниже:
Особенности работы с формулами ИНДЕКС И ПОИСКПОЗ в Excel
ПОИСКПОЗ для строкиD получить ошибку столбцов в массиве, ищет указанное значениеЗа гуглояндекс спасибо этой ситуации находится ссылку или массив команд. Определить: что это число); в зависимости от– это ячейка, и таблицей поиска.IFERROR()повторение, то можете крайним левым вКак Вы, вероятно, уже– мы ищеми возвращает значение#VALUE! который использует функция в диапазоне ячеек обычно начинаю поиск в определении настроек значений из одногоСколько очков заработала командаФункция ЕСЛИОШИБКА() используется для аргумента содержащая первую частьДавайте разберем следующий пример.ЕСЛИОШИБКА() сделать это без диапазоне поиска, поскольку
заметили (и не значение ячейки из столбца(#ЗНАЧ!). Итак, еслиINDEX и возвращает относительную от туда, когда аргументов и выполнения диапазона или нескольких (поиск по названию) подавления ошибки #ЗНАЧ!
тип_сопоставления названия региона. В У нас естьВ завершение, мы помещаем вспомогательного столбца, создав именно левый столбец раз), если вводитьH3C таблица содержит длинные(ИНДЕКС), должно соответствовать позицию этого значения мы с ним функции в массиве. несмежных диапазонов, принимая
на данный момент. заменяя ее на. нашем примере это основная таблица (Main формулу внутрь функции более сложную формулу: функция некорректное значение, например,
(2015) в строке
той же строки: строки, единственное действующее значениям аргументов в диапазоне.
exceltable.com
Вывод всех значений удовлетворяющих условию (Формулы/Formulas)
друг друга начинаем Для этого:
на вход ссылкуСуммарное значение очков, заработанных число 0;Тип_сопоставленияFL table) со столбцомIFERROR=IFERROR(VLOOKUP($F$2,INDIRECT(«$B$»&(MATCH($F$2,Table4[Customer Name],0)+2)&»:$C16″),2,FALSE),»»)ВПР которого нет в
1=INDEX($C$2:$C$10,MATCH(MAX($D$2:I$10),$D$2:D$10,0))
решение – этоrow_num
Например, если в диапазоне не понимать, обращаюсьВ ячейку B16 введите на области ячеек
всеми командами.Функция ЕСЛИ() заменяет числовые
Поведение.
SKU (new)
(ЕСЛИОШИБКА), поскольку вряд
=ЕСЛИОШИБКА(ВПР($F$2;ДВССЫЛ(«$B$»&(ПОИСКПОЗ($F$2;Table4[Customer Name];0)+2)&»:$C16″);2;ИСТИНА);»»)просматривает при поиске
просматриваемом массиве, формула, то есть в=ИНДЕКС($C$2:$C$10;ПОИСКПОЗ(МАКС($D$2:I$10);$D$2:D$10;0))
использовать(номер_строки) иB1:B3 за помощью к
значение Ford, а или константу массива.Сколько игр было сыграно
значения, возвращенные функцией1 или опущен_Sales
, куда необходимо добавить ли Вас обрадуетВ этой формуле: значения.ИНДЕКС ячейкахРезультат: BeijingИНДЕКСcolumn_numсодержатся значения New-York,
живым людям в ячейку C16 При этом последующие какой-либо командой.
ПОИСК(), на номер
Функция
– общая часть столбец с соответствующими
сообщение об ошибке$F$2Итак, Вы добавляете вспомогательный
excelworld.ru
Пример функции ПОИСКПОЗ в Excel без функции ИНДЕКС
/A1:E12./(номер_столбца) функции Paris, London, тогдаспасибо за советы название интересующего нас аргументы позволяют указатьВид исходной таблицы данных: позиции значения вПОИСКПОЗ названия всех именованных ценами из другой#N/A– ячейка, содержащая столбец в таблицуПОИСКПОЗ:MINПОИСКПОЗMATCH следующая формула возвратитkondp2008 отдела – Маркетинговый. номера интересующих строкиДля удобства в ячейках списке. Если значениенаходит наибольшее значение, диапазонов или таблиц.
Пример работы ПОИСКПОЗ по двум столбцам Excel
таблицы. Кроме этого,(#Н/Д) в случае, имя покупателя (она и копируете посообщает об ошибке
=MATCH($H$3,$A$1:$E$1,0)(МИН). Формула находит.(ПОИСКПОЗ). Иначе результат цифру: Добрый деньВ ячейку C17 введите и столбца относительно A11, A13 и =0 (соответствует ошибке которое меньше или Соединенная со значением у нас есть если количество ячеек, неизменна, обратите внимание всем его ячейкам#N/A=ПОИСКПОЗ($H$3;$A$1:$E$1;0)
минимум в столбцеПредположим, Вы используете вот формулы будет ошибочным.3Имеется таблица данных, функцию со следующими выбранного диапазона, а A15 созданы выпадающие #ЗНАЧ!), то возвращается равно значению аргумента в ячейке D3, 2 таблицы поиска. в которые скопирована – ссылка абсолютная); формулу вида:
- (#Н/Д) илиРезультатом этой формулы будетD такую формулу сСтоп, стоп… почему мы
- , поскольку «London» – в порядке возрастания аргументами:
- также порядковый номер списки, элементы которых число 30. Вискомое_значение она образует полное Первая (Lookup table формула, будет меньше,$B$=B2&C2
#VALUE!5и возвращает значение
ВПР
Описание примера как работает функция ПОИСКПОЗ:
не можем просто это третий элемент только время, остальныеПосле ввода для подтверждения диапазона (если диапазоны выбраны из диапазонов принципе, вместо 30. имя требуемого диапазона. 1) содержит обновленные чем количество повторяющихся– столбец. Если хочется, чтобы(#ЗНАЧ!). Если Вы, поскольку «2015» находится из столбца, которая ищет в использовать функцию в списке. данные в произвольной функции нажмите комбинацию ячеек не являются ячеек B1:E1 (для можно указать любоеПросматриваемый_массив Ниже приведены некоторые номера значений в просматриваемомCustomer Name строка была более
хотите заменить такое в 5-ом столбце.C ячейках от
exceltable.com
Поиск по условию и суммирование значений по всем листам (Формулы/Formulas)
VLOOKUP=MATCH(«London»,B1:B3,0)
форме горячих клавиш CTRL+SHIFT+Enter, смежными, например, при A11) и A2:A9 число, которое больше
должен быть упорядочен
подробности для тех,SKU (new) диапазоне.
; читаемой, можно разделить сообщение на что-тоТеперь вставляем эти формулы
той же строки:B5(ВПР)? Есть ли=ПОИСКПОЗ(«London»;B1:B3;0)
Как по так как она поиске в различных (для A13 и номера последней заполненной
по возрастанию: …, кто не имеети названия товаров,Выполнение двумерного поиска вTable4 объединенные значения пробелом: более понятное, то в функцию=INDEX($C$2:$C$10,MATCH(MIN($D$2:I$10),$D$2:D$10,0))до смысл тратить время,Функциязаданному условию должна выполнятся в таблицах). В простейшем A15), содержащих названия позиции Исходного списка -2, -1, 0, опыта работы с
а вторая (Lookup Excel подразумевает поиск– Ваша таблица=B2&» «&C2 можете вставить формулуИНДЕКС=ИНДЕКС($C$2:$C$10;ПОИСКПОЗ(МИН($D$2:I$10);$D$2:D$10;0))
D10 пытаясь разобраться вMATCH
формулой вытянуть массиве. Если все случае функция ИНДЕКС команд. Для создания (это нужно для
1, 2, …, функцией table 2) –
значения по известному (на этом месте
. После этого можно си вуаля:Результат: Limaзначение, указанное в
лабиринтах(ПОИСКПОЗ) имеет вотпоследнее заполненное значение
сделано правильно в возвращает значение, хранящееся первого выпадающего списка правильной сортировки функцией A-Z, ЛОЖЬ, ИСТИНА.
ДВССЫЛ названия товаров и номеру строки и также может быть
использовать следующую формулу:ИНДЕКС
=INDEX($A$1:$E$11,MATCH($H$2,$B$1:$B$11,0),MATCH($H$3,$A$1:$E$1,0))3. ячейкеПОИСКПОЗ
такой синтаксис:для каждого заданного строке формул появятся в ячейке на необходимой перейти курсором НАИМЕНЬШИЙ());0. старые номера столбца. Другими словами, обычный диапазон);=VLOOKUP(«Jeremy Hill Sweets»,$A$7:$D$18,4,FALSE)и=ИНДЕКС($A$1:$E$11;ПОИСКПОЗ($H$2;$B$1:$B$11;0);ПОИСКПОЗ($H$3;$A$1:$E$1;0))AVERAGEA2иMATCH(lookup_value,lookup_array,[match_type]) значения фигурные скобки.
пересечении строки и на ячейку A11.Функция НАИМЕНЬШИЙ() сортирует массивФункцияВо-первых, позвольте напомнить синтаксисSKU (old) Вы извлекаете значение$C16=ВПР(«Jeremy Hill Sweets»;$A$7:$D$18;4;ЛОЖЬ)
ПОИСКПОЗЕсли заменить функции(СРЗНАЧ). Формула вычисляет:ИНДЕКСПОИСКПОЗ(искомое_значение;просматриваемый_массив;[тип_сопоставления])
_Boroda_Как видно функция самостоятельно
столбца. Например, =ИНДЕКС(A2:B5;2;2) Выбрать вкладку «ДАННЫЕ» номеров строк поПОИСКПОЗ
функции
. ячейки на пересечении– конечная ячейкаилив функциюПОИСКПОЗ среднее в диапазоне=VLOOKUP(A2,B5:D10,3,FALSE)?
lookup_value: Так нужно? справилась с решением вернет значение, которое ленты меню, найти возрастанию;находит первое значение,ДВССЫЛ
Чтобы добавить цены из
excelworld.ru
Поиск последнего значения по условию (Формулы/Formulas)
конкретной строки и Вашей таблицы или
=VLOOKUP(B1,$A$7:$D$18,4,FALSE)ЕСЛИОШИБКАна значения, которыеD2:D10=ВПР(A2;B5:D10;3;ЛОЖЬ)
=VLOOKUP(«Japan»,$B$2:$D$2,3)(искомое_значение) – это200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ПРОСМОТР(2;1/(J:J=»Ц-4″);K:K) поставленной задачи. хранится в ячейке секцию с инструментами
Функция ДВССЫЛ() возвращает массив равное аргументу
(INDIRECT):
excelworld.ru
второй таблицы поиска
Поиск значений в списке данных
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).
Предположим, вам нужно найти расширение телефона сотрудника с помощью его номера, а также правильно оценить коэффициент Комиссии для суммы продажи. Вы ищете данные, чтобы быстро и эффективно находить определенные данные в списке и автоматически проверять, правильно ли используются данные. После того как вы просмотрит данные, вы можете выполнить вычисления и отобразить результаты, указав возвращаемые значения. Есть несколько способов поиска значений в списке данных и отображения результатов.
В этой статье
Поиск значений в списке по вертикали по точному совпадению
Для выполнения этой задачи можно использовать функцию ВПР или сочетание функций индекс и ПОИСКПОЗ.
Примеры использования функции ВПР
Дополнительные сведения можно найти в разделе функция ВПР.
Примеры ИНДЕКСов и СОВПАДЕНИй
=ИНДЕКС(нужно вернуть значение из 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 и т.д.) Многим непривычны формулы массива в принципе (тогда вам сюда).
Колонки сравнивают для того, чтобы, например, в отчетах не было дубликатов. Или, наоборот, для проверки правильности заполнения — с поиском непохожих значений. И проще всего выполнять сравнение двух столбцов на совпадение в Excel — для этого есть 6 способов.
1 Сравнение с помощью простого поиска
При наличии небольшой по размеру таблицы заниматься сравнением можно практически вручную. Для этого достаточно выполнить несколько простых действий.
- Перейти на главную вкладку табличного процессора.
- В группе «Редактирование» выбрать пункт поиска.
- Выделить столбец, в котором будет выполняться поиск совпадений — например, второй.
- Вручную задавать значения из основного столбца (в данном случае — первого) и искать совпадения.
Если значение обнаружено, результатом станет выделение нужной ячейки. Однако с помощью такого способа можно работать только с небольшими столбцами. И, если это просто цифры, так можно сделать и без поиска — определяя совпадения визуально. Впрочем, если в колонках записаны большие объемы текста, даже такая простая методика позволит упростить поиск точного совпадения.
2 Операторы ЕСЛИ и СЧЕТЕСЛИ
Еще один способ сравнения значений в двух столбцах Excel подходит для таблиц практически неограниченного размера. Он основан на применении условного оператора ЕСЛИ и отличается от других методик тем, что для анализа совпадений берется только указанная в формуле часть, а не все значения массива. Порядок действий при использовании методики тоже не слишком сложный и подойдет даже для начинающего пользователя Excel.
- Сравниваемые столбцы размещаются на одном листе. Не обязательно, чтобы они находились рядом друг с другом.
- В третьем столбце, например, в ячейке J6, ввести формулу такого типа: =ЕСЛИ(ЕОШИБКА(ПОИСКПОЗ(H6;$I$6:$I$14;0));»;H6)
- Протянуть формулу до конца столбца.
Результатом станет появление в третьей колонке всех совпадающих значений. Причем H6 в примере — это первая ячейка одного из сравниваемых столбцов. А диапазон $I$6:$I$14 — все значения второй участвующей в сравнении колонки. Функция будет последовательно сравнивать данные и размещать только те из них, которые совпали. Однако выделения обнаруженных совпадений не происходит, поэтому методика подходит далеко не для всех ситуаций.
Еще один способ предполагает поиск не просто дубликатов в разных колонках, но и их расположения в пределах одной строки. Для этого можно применить все тот же оператор ЕСЛИ, добавив к нему еще одну функцию Excel — И. Формула поиска дубликатов для данного примера будет следующей: =ЕСЛИ(И(H6=I6); «Совпадают»; «») — ее точно так же размещают в ячейке J6 и протягивают до самого низа проверяемого диапазона. При наличии совпадений появится указанная надпись (можно выбрать «Совпадают» или «Совпадение»), при отсутствии — будет выдаваться пустота.
Тот же способ подойдет и для сравнения сразу большого количества колонок с данными на точное совпадение не только значения, но и строки. Для этого применяется уже не оператор ЕСЛИ, а функция СЧЕТЕСЛИ. Принцип написания и размещения формулы похожий.
Она имеет вид =ЕСЛИ(СЧЕТЕСЛИ($H6:$J6;$H6)=3; «Совпадают»;») и должна размещаться в верхней части следующего столбца с протягиванием вниз. Однако в формулу добавляется еще количество сравниваемых колонок — в данном случае, три.
Если поставить вместо тройки двойку, результатом будет поиск только тех совпадений с первой колонкой, которые присутствуют в одном из других столбцов. Причем, тройные дубликаты формула проигнорирует. Так же как и совпадения второй и третьей колонки.
3 Формула подстановки ВПР
Принцип действия еще одной функции для поиска дубликатов напоминает первый способ использованием оператора ЕСЛИ. Но вместо ПОИСКПОЗ применяется ВПР, которую можно расшифровать как «Вертикальный Просмотр». Для сравнения двух столбцов из похожего примера следует ввести в верхнюю ячейку (J6) третьей колонки формулу =ВПР(H6;$I$6:$I$15;1;0) и протянуть ее в самый низ, до J15.
С помощью этой функции не просто просматриваются и сравниваются повторяющиеся данные — результаты проверки устанавливаются четко напротив сравниваемого значения в первом столбце. Если программа не нашла совпадений, выдается #Н/Д.
4 Функция СОВПАД
Достаточно просто выполнить в Эксель сравнение двух столбцов с помощью еще двух полезных операторов — распространенного ИЛИ и встречающейся намного реже функции СОВПАД. Для ее использования выполняются такие действия:
- В третьем столбце, где будут размещаться результаты, вводится формула =ИЛИ(СОВПАД(I6;$H$6:$H$19))
- Вместо нажатия Enter нажимается комбинация клавиш Ctr + Shift + Enter. Результатом станет появление фигурных скобок слева и справа формулы.
- Формула протягивается вниз, до конца сравниваемой колонки — в данном случае проверяется наличие данных из второго столбца в первом. Это позволит изменяться сравниваемому показателю, тогда как знак $ закрепляет диапазон, с которым выполняется сравнение.
Результатом такого сравнения будет вывод уже не найденного совпадающего значения, а булевой переменной. В случае нахождения это будет «ИСТИНА». Если ни одного совпадения не было обнаружено — в ячейке появится надпись «ЛОЖЬ».
Стоит отметить, что функция СОВПАД сравнивает и числа, и другие виды данных с учетом верхнего регистра. А одним из самых распространенных способом использования такой формулы сравнения двух столбцов в Excel является поиска информации в базе данных. Например, отдельных видов мебели в каталоге.
5 Сравнение с выделением совпадений цветом
В поисках совпадений между данными в 2 столбцах пользователю Excel может понадобиться выделить найденные дубликаты, чтобы их было легко найти. Это позволит упростить поиск ячеек, в которых находятся совпадающие значения. Выделять совпадения и различия можно цветом — для этого понадобится применить условное форматирование.
Порядок действий для применения методики следующий:
- Перейти на главную вкладку табличного процессора.
- Выделить диапазон, в котором будут сравниваться столбцы.
- Выбрать пункт условного форматирования.
- Перейти к пункту «Правила выделения ячеек».
- Выбрать «Повторяющиеся значения».
- В открывшемся окне указать, как именно будут выделяться совпадения в первой и второй колонке. Например, красным текстом, если цвет остальных сообщений стандартный черный. Затем указать, что выделяться будут именно повторяющиеся ячейки.
Теперь можно снять выделение и сравнить совпадающие значения, которые будут заметно отличаться от остальной информации. Точно так же можно выделить, например, и уникальную информацию. Для этого следует выбрать вместо «повторяющихся» второй вариант — «уникальные».
6 Надстройка Inquire
Начиная с версий MS Excel 2013 табличный процессор позволяет воспользоваться еще одной методикой — специальной надстройкой Inquire. Она предназначена для того, чтобы сравнивать не колонки, а два файла .XLS или .XLSX в поисках не только совпадений, но и другой полезной информации.
Для использования способа придется расположить столбцы или целые блоки информации в разных книгах и удалить все остальные данные, кроме сравниваемой информации. Кроме того, для проверки необходимо, чтобы оба файла были одновременно открытыми.
Процесс использования надстройки включает такие действия:
- Перейти к параметрам электронной таблицы.
- Выбрать сначала надстройки, а затем управление надстройками COM.
- Отметить пункт Inquire и нажать «ОК».
- Перейти к вкладке Inquire.
- Нажать на кнопку Compare Files, указать, какие именно файлы будут сравниваться, и выбрать Compare.
- В открывшемся окне провести сравнения, используя показанные совпадения и различия между данными в столбцах.
У каждого варианта сравнения — свое цветовое решение. Так, зеленым цветом на примере выделены отличия. У совпадающих данных отсутствует выделение. А сравнение расчетных формул показало, что результаты отличаются все — и для выделения использован бирюзовый цвет.
Читайте также:
- 5 программ для совместной работы с документами
-
Как в Экселе протянуть формулу по строке или столбцу: 5 способов
Поиск нужных данных в диапазоне
Как использовать функцию ВПР (VLOOKUP) для поиска и выборки нужных значений из списка мы недавно разбирали. Если вы еще с ней не знакомы — загляните сюда, не пожалейте пяти минут, чтобы сэкономить себе потом несколько часов.
Если же вы знакомы с ВПР, то — вдогон — стоит разобраться с похожими функциями: ИНДЕКС (INDEX) и ПОИСКПОЗ (MATCH), владение которыми весьма облегчит жизнь любому опытному пользователю Excel. Гляньте на следующий пример:
Необходимо определить регион поставки по артикулу товара, набранному в ячейку C16.
Задача решается при помощи двух функций:
=ИНДЕКС(A1:G13;ПОИСКПОЗ(C16;D1:D13;0);2)
Функция ПОИСКПОЗ ищет в столбце D1:D13 значение артикула из ячейки C16. Последний аргумент функции 0 — означает поиск точного (а не приблизительного) соответствия. Функция выдает порядковый номер найденного значения в диапазоне, т.е. фактически номер строки, где найден требуемыый артикул.
Функция ИНДЕКС выбирает из диапазона A1:G13 значение, находящееся на пересечении заданной строки (номер строки с артикулом выдает функция ПОИСКПОЗ) и столбца (нам нужен регион, т.е. второй столбец).
Ссылки по теме
- Использование функции ВПР (VLOOKUP) для поиска и подстановки значений.
- Улучшенная версия функции ВПР (VLOOKUP)
- Многоразовый ВПР
Этот учебник рассказывает о главных преимуществах функций ИНДЕКС и ПОИСКПОЗ в 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);"")
Надеюсь, что хотя бы одна формула, описанная в этом учебнике, показалась Вам полезной. Если Вы сталкивались с другими задачами поиска, для которых не смогли найти подходящее решение среди информации в этом уроке, смело опишите свою проблему в комментариях, и мы все вместе постараемся решить её.
Оцените качество статьи. Нам важно ваше мнение:
Ссылка на это место страницы:
#title
- Получить первое не пустое значение в списке
- Получить первое текстовое значение в списке
- Получить первое текстовое значение с ГПР
- Получить позицию последнего совпадения
- Получить последнее совпадение содержимого ячейки
- Получить n-е совпадение
- Получить n-ое совпадение с ИНДЕКС/ПОИСКПОЗ
- Получить n-ое совпадение с ВПР
- Если ячейка содержит одну из многих вещей
- Поиск первой ошибки
- Поиск следующего наибольшего значения
- Несколько совпадений в списке, разделенных запятой
- Частичное совпадение чисел с шаблоном
- Частичное совпадение с ВПР
- Положение первого частичного совпадения
- Скачать файл
Ссылка на это место страницы:
#punk01
{ = ИНДЕКС( диапазон ; ПОИСКПОЗ( ЛОЖЬ; ЕПУСТО ( диапазон ); 0 )) }
{ = INDEX( диапазон ; MATCH( FALSE; ISBLANK ( диапазон ); 0 )) }
Если вам нужно получить первое не пустое значение (текст или число) в диапазоне в одной колонке вы можете использовать формулу массива на основе функций ИНДЕКС, ПОИСКПОЗ и ЕПУСТО.
В данном примере мы используем эту формулу:
{ = ИНДЕКС( B3: B11; ПОИСКПОЗ( ЛОЖЬ; ЕПУСТО ( B3: B11 ); 0 )) }
{ = INDEX( B3:B11; MATCH( FALSE; ISBLANK ( B3:B11 ); 0 )) }
Таким образом, суть проблемы заключается в следующем: мы хотим получить первую не пустую ячейку, но для этого нет конкретной формулы в Excel. Мы могли бы использовать ВПР с шаблоном *, но это будет работать только для текста, а не для чисел.
Таким образом, нам нужно строить функциональные возможности для нужных нам формул. Способ сделать это состоит в использовании функции массива, которая «тестирует» ячейки и возвращает массив истина/ложь значения, которые мы можем сопрягать с ПОИСКПОЗ.
Работая изнутри, ЕПУСТО оценивает ячейки в диапазоне В3: В11 и возвращает результат и массив, который выглядит следующим образом:
{ИСТИНА; ЛОЖЬ; ИСТИНА; ЛОЖЬ; ЛОЖЬ; ИСТИНА; ИСТИНА; ИСТИНА; ИСТИНА}
Каждая ЛОЖЬ представляет собой ячейку в диапазоне, который не является пустой.
Далее, ПОИСКПОЗ ищет ЛОЖЬ внутри массива и возвращает позицию первого наденного совпадения, в этом случае 2. На данный момент, формула в примере теперь выглядит следующим образом:
{ = ИНДЕКС( B3: B11; 2; 0 )) }
{ = INDEX( B3:B11; 2; 0 )) }
И, наконец, функция ИНДЕКС выводит значение в положении 2 в массиве, в этом случае число 10.
Ссылка на это место страницы:
#punk02
= ВПР ( «*»; диапазон; 1; ЛОЖЬ)
= VLOOKUP ( «*»; диапазон; 1; FALSE)
Если вам нужно получить первое текстовое значение в списке (диапазон один столбец), вы можете использовать функцию ВПР, чтобы установить точное соответствие, с шаблонным символом для поиска.
В данном примере формула в D7 является:
= ВПР ( «*» ; B5: B11 ; 1 ; ЛОЖЬ)
= VLOOKUP ( «*» ; B5:B11 ; 1 ; FALSE)
Групповой символ звездочка (*) соответствует любому текстовому значению.
Ссылка на это место страницы:
#punk03
= ГПР ( «*»; диапазон; 1; ЛОЖЬ)
= HLOOKUP ( «*»; диапазон; 1; FALSE)
Для поиска и получения первого текстового значения во всем диапазоне столбцов, вы можете использовать функцию ГПР с групповым символом. В примере формула в F5 является:
= ГПР ( «*»; диапазон; 1; ЛОЖЬ)
= HLOOKUP ( «*»; диапазон; 1; FALSE)
Значение поиска является «*», групповым символом, который соответствует одному или более текстовому значению.
Ссылка на это место страницы:
#punk04
= ГПР ( «*»; диапазон; 1; ЛОЖЬ)
= HLOOKUP ( «*»; диапазон; 1; FALSE)
Для того, чтобы получить позицию последнего совпадения (т.е. последнего вхождения) от значения поиска, вы можете использовать формулу, основанную на ЕСЛИ, СТРОКА, ИНДЕКС, ПОИСКПОЗ и MAКС функций.
=МАКС(ЕСЛИ(B4:B11=G5;СТРОКА(B4:B11)-СТРОКА(ИНДЕКС(B4:B11;1;1))+1))
=MAX(IF(B4:B11=G5;ROW(B4:B11)-ROW(INDEX(B4:B11;1;1))+1))
Суть этой формулы состоит в том, что мы строим список номеров строк для данного диапазона, соответствующие по значению, а затем используем функцию MAКС, чтобы получить наибольшее количество строк, что соответствует последнему значению соответствия.
Ссылка на это место страницы:
#punk05
=МАКС(ЕСЛИ(B4:B11=G5;СТРОКА(B4:B11)-СТРОКА(ИНДЕКС(B4:B11;1;1))+1))
=MAX(IF(B4:B11=G5;ROW(B4:B11)-ROW(INDEX(B4:B11;1;1))+1))
Чтобы проверить ячейку для одной из нескольких вещей, и вернуть последнее совпадение, найденное в списке, вы можете использовать формулу, основанную на ПРОСМОТР и ПОИСК функций. В случае нескольких найденных совпадений, формула вернет последнее совпадение из списка «вещей».
=ПРОСМОТР(2;1/ПОИСК($E$4:$E$7;B4);$E$4:$E$7)
=LOOKUP(2;1/SEARCH($E$4:$E$7;B4);$E$4:$E$7)
Ссылка на это место страницы:
#punk06
= НАИМЕНЬШИЙ( ЕСЛИ( логический тест; СТРОКА( список ) — МИН( СТРОКА( список )) + 1 ); n )
= SMALL( IF( логический тест; СТРОКА( список ) — MIN( ROW( список )) + 1 ); n )
Для того, чтобы получить позицию n-го совпадения (например, второе значение соответствия заданному, третье значение соответствия и т.д.), вы можете использовать формулу, основанную на функции НАИМЕНЬШИЙ.
= НАИМЕНЬШИЙ( ЕСЛИ( список = E5 ; СТРОКА( список ) — МИН( СТРОКА( список )) + 1 ); F5 )
= SMALL( IF( список = E5 ; ROW( список ) — MIN( ROW( список )) + 1 ); F5 )
Эта формула возвращает позицию второго появления «красных» в списке.
Сутью этой формулы является функция НАИМЕНЬШИЙ, которая просто возвращает n-е наименьшее значение в списке значений, которое соответствует номеру строки. Номера строк были «отфильтрованы» функцией ЕСЛИ, которая применяет логику для совпадения.
Ссылка на это место страницы:
#punk07
{ = ИНДЕКС( массив; НАИМЕНЬШИЙ( ЕСЛИ( величины = знач ; СТРОКА ( величины ) — СТРОКА ( ИНДЕКС( величины; 1 ; 1 )) + 1 ); n-й )) }
{ = INDEX( массив; SMALL( IF( величины = знач ; ROW ( величины ) — ROW ( INDEX( величины; 1 ; 1 )) + 1 ); n-й )) }
Эта формула возвращает позицию второго появления «красных» в списке.
Сутью этой формулы является функция НАИМЕНЬШИЙ, которая просто возвращает n-е наименьшее значение в списке значений, которое соответствует номеру строки. Номера строк были «отфильтрованы» функцией ЕСЛИ, которая применяет логику для совпадения.
Ссылка на это место страницы:
#punk08
= ВПР( id_формулы; стол; 4; 0 )
= VLOOKUP( id_формулы; стол; 4; 0 )
Чтобы получить n-ое совпадение с ВПР, вам необходимо добавить вспомогательный столбец в таблицу , которая строит уникальный идентификатор , который включает счетчик.
Эта формула зависит от вспомогательного столбца, который добавляется в качестве первого столбца таблицы исходных данных.
Вспомогательный столбец содержит формулу, которая строит уникальное значение взгляда вверх от существующего идентификатора и счетчика. Счетчик подсчитывает сколько раз уникальный идентификатор появился в таблице данных.
В примере, формула ячейки J6 вспомогательного столбца выглядит следующим образом:
=ВПР(J3&»-«&I6;B4:G11;4;0)
=VLOOKUP(J3&»-«&I6;B4:G11;4;0)
Ссылка на это место страницы:
#punk09
{ = ИНДЕКС( результаты ;ПОИСКПОЗ( ИСТИНА ; ЕЧИСЛО( ПОИСК( вещи ; A1 )); 0 )) }
{ = INDEX( результаты ;MATCH( TRUE ; ISNUMBER( SEARCH( вещи ; A1 )); 0 )) }
Чтобы проверить ячейку для одной из нескольких вещей, и вернуть пользовательский результат для первого найденного совпадения, вы можете использовать формулу ИНДЕКС/ПОИСКПОЗ, основанную на функции поиска.
{ = ИНДЕКС( результаты ; ПОИСКПОЗ( ИСТИНА ; ЕЧИСЛО( ПОИСК ( вещи ; B5 )); 0 )) }
= INDEX( результаты ; MATCH( TRUE ; ISNUMBER( SEARCH ( вещи ; B5 )); 0 ))
Эта формула использует два названных диапазона: E5: E8 называется «вещи» и F5: F8 называется «Результаты». Убедитесь, что вы используете диапазоны имен с одинаковыми именами (на основе ваших данных). Если вы не хотите использовать именованные диапазоны, используйте абсолютные ссылки вместо этого.
Ссылка на это место страницы:
#punk10
{ = ПОИСКПОЗ( ИСТИНА ; ЕОШИБКА(диап ); 0 ) }
{ = MATCH( TRUE ; ISERROR(диап ); 0 ) }
Если вам нужно найти первую ошибку в диапазоне ячеек, вы можете использовать формулу массива, основанную на ПОИСКПОЗ и ЕОШИБКА функциях.
В приведенном примере формула:
{ = ПОИСКПОЗ( ИСТИНА ; ЕОШИБКА( B4: B11 ); 0 ) }
{ = MATCH( TRUE ; ISERROR( B4:B11 ); 0 ) }
Работая изнутри, функция ЕОШИБКА возвращает значение ИСТИНА, если значение является признанной ошибкой, и ЛОЖЬ, если нет.
Когда дается диапазон ячеек (массив ячеек) функция ЕОШИБКА будет возвращать массив истина/ложь значений. В примере, это результирующий массив выглядит следующим образом:
{ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ИСТИНА; ЛОЖЬ; ЛОЖЬ}
Обратите внимание, что 6-е значение (что соответствует 6-й ячейке в диапазоне) истинно, так как ячейка В9 содержит #Н/A.
Ссылка на это место страницы:
#punk11
=ИНДЕКС ( данные; ПОИСКПОЗ( поиск ; значения ) + 1 )
=INDEX ( данные; MATCH( поиск ; значения ) + 1 )
Для того, чтобы найти «следующее наибольшее» значение в справочной таблице, можно использовать формулу, основанную на ИНДЕКС и ПОИСКПОЗ. В примере формула в F6 является:
=ИНДЕКС ( данные; ПОИСКПОЗ( поиск ; значения ) + 1 )
=INDEX ( данные; MATCH( поиск ; значения ) + 1 )
Ссылка на это место страницы:
#punk12
{ = ОБЪЕДИНИТЬ ( «;» ; ИСТИНА ; ЕСЛИ( диапазон1 = E5 ; диапазон2 ; «» )) }
{ = ОБЪЕДИНИТЬ ( «;» ; TRUE ; IF( диапазон1 = E5 ; диапазон2 ; «» )) }
Для поиска и извлечения нескольких совпадений, разделенных запятыми (в одной ячейке), вы можете использовать функцию ЕСЛИ с функцией ОБЪЕДИНИТЬ.
{ = ОБЪЕДИНИТЬ( «;» ; ИСТИНА ; ЕСЛИ( группа = E5 ; имя ; «» )) }
Эта формула использует «имя» — именованный диапазон (B5: B11) и «группа» — (C5: C11).
Ссылка на это место страницы:
#punk13
{ = ПОИСКПОЗ( «*» & номер & «*» ; ТЕКСТ( диапазон ; «0» ); 0 ) }
{ = MATCH( «*» & номер & «*» ; TEXT( диапазон ; «0» ); 0 ) }
Для того, чтобы выполнить частичное совпадение (подстроки) против чисел, вы можете использовать формулу массива, основанную на ПОИСКПОЗ и ТЕКСТ.
Excel поддерживает символы подстановки «*» и «?». Тем не менее, если вы используете специальные символы с номером, вы будете преобразовывать числовое значение в текстовое значение. Другими словами, «*» & 99 & «*» = «* 99 *» (текстовая строка).
Если попытаться найти текстовое значение в диапазоне чисел, совпадение завершится неудачно.
Одно из решений заключается в преобразовании чисел в диапазоне поиска для текстовых значений, а затем сделать нормальный поиск с ПОИСКПОЗ, ВПР и т.д.
Другой способ, чтобы преобразовать числа в текст, чтобы сцепить пустую строку. Эта формула работает так же, как выше формуле:
= ПОИСКПОЗ ( «*» & Е5 & «*» ; В5: В10 & «» ; 0 )
= MATCH ( «*» & Е5 & «*» ; В5: В10 & «» ; 0 )
Ссылка на это место страницы:
#punk14
Если вы хотите получить информацию из таблицы на основе частичного совпадения, вы можете сделать это с помощью ВПР в режиме точного соответствия, и групповые символы.
В примере формула ВПР выглядит следующим образом:
=ВПР($H$2&»*»;$B$3:$E$12;2;0)
=VLOOKUP($H$2&»*»;$B$3:$E$12;2;0)
В этой формуле, значение представляет собой именованный диапазон, который относится к Н2, а также данные , представляет собой именованный диапазон , который относится к B3: E102. Без названных диапазонов, формула может быть записана следующим образом:
Ссылка на это место страницы:
#punk15
= ПОИСКПОЗ ( «* текст *» ; диапазон; 0 )
= MATCH ( «* текст *» ; диапазон; 0 )
Для того, чтобы получить позицию первого частичного совпадения (то есть ячейку, которая содержит текст, который вы ищете), вы можете использовать функцию ПОИСКПОЗ со специальными символами.
=ПОИСКПОЗ(«*»&E6&»*»;B5:B10;0)
=MATCH(«*»&E6&»*»;B5:B10;0)
Функция ПОИСКПОЗ возвращает позицию или «индекс» в первом совпадении на основании значения поиска в диапазоне.
ПОИСКПОЗ поддерживает подстановочное согласование со звездочкой «*» (один или несколько символов) или знаком вопроса «?» (один символ), но только тогда, когда третий аргумент, тип_сопоставления, установлен в ЛОЖЬ или ноль.
Ссылка на это место страницы:
#punk16
Файлы статей доступны только зарегистрированным пользователям.
1. Введите свою почту
2. Нажмите Зарегистрироваться
3. Обновите страницу
Вместо этого блока появится ссылка для скачивания материалов.
Привет! Меня зовут Дмитрий. С 2014 года Microsoft Cretified Trainer. Вместе с командой управляем этим сайтом. Наша цель — помочь вам эффективнее работать в Excel.
Изучайте наши статьи с примерами формул, сводных таблиц, условного форматирования, диаграмм и макросов. Записывайтесь на наши курсы или заказывайте обучение в корпоративном формате.
Подписывайтесь на нас в соц.сетях: