поиск в одной таблице значений, которых нет в другой. |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Хитрости »
15 Май 2011 512024 просмотров
Как найти значение в другой таблице или сила ВПР
- Задача и её решение при помощи ВПР
- Описание аргументов ВПР
- Что важно всегда помнить при работе с ВПР
- Как избежать ошибки #Н/Д(#N/A) в ВПР?
- Как при помощи ВПР искать значение по строке, а не столбцу?
- Решение при помощи ПОИСКПОЗ
- Работа с критериями длиннее 255 символов
Если в двух словах, то ВПР позволяет сравнить данные двух таблиц на основании значений из одного столбца.
Чтобы чуть лучше понять принцип работы ВПР лучше начать с некоего практического примера. Возьмем две таблицы:
рис.1
На картинке выше для удобства они показаны рядом, но на самом деле могут быть расположены на разных листах и даже в разных книгах. Таблицы по сути одинаковые, но фамилии в них расположены в разном порядке, и к тому же в одной заполнены все столбцы, а во второй столбцы ФИО и Отдел. И из первой таблицы необходимо подставить во вторую дату для каждой фамилии. Для трех записей это не проблема и руками сделать — все очевидно. Но в жизни это таблицы на тысячи записей и поиск с подстановкой данных вручную может занять не один час. Вот где ВПР(VLOOKUP) будет весьма кстати. Все, что необходимо — записать в ячейку
C2
второй таблицы(туда, куда необходимо подставить даты из первой таблицы) такую формулу:
=ВПР($A2;Лист1!$A$1:$C$4;3;0)
=VLOOKUP($A2,Лист1!$A$1:$C$4,3,0)
Записать формулу можно либо непосредственно в ячейку, либо воспользовавшись диспетчером функций, выбрав в категории Ссылки и массивы(References & Arrays) функцию ВПР(VLOOKUP) и по отдельности указав нужные критерии. Теперь копируем(
Ctrl
+
C
) ячейку с формулой(С2), выделяем все ячейки столбца
С
до конца данных и вставляем(
Ctrl
+
V
).
Теперь разберем поподробнее саму функцию, её аргументы и некоторые особенности.
ВПР ищет заданное нами значение(аргумент искомое_значение) в первом столбце указанного диапазона(аргумент таблица). Поиск значения всегда происходит сверху вниз(собственно, поэтому функция и называется ВПР: Вертикальный ПРосмотр). Как только функция находит заданное значение — поиск прекращается, ВПР берет строку с найденным значением и смотрит на аргумент номер_столбца. Именно из этого столбца берётся значение, которое мы и видим как итог работы функции. Т.е. в нашем конкретном случае, для ячейки С2 второй таблицы, функция берет фамилию «Петров С.А.»(ячейка $A2 второй таблицы) и ищет её в первом столбце указанной таблицы(Лист1!$A$1:$C$4), т.е. в столбце А. Как только находит(это ячейка А3)
ВПР может вернуть только одно значений — первое, подходящее под критерий. Если искомое значение не найдено(отсутствует в таблице), то результатом функции будет ошибка #Н/Д(#N/A). Не надо этого бояться — это даже полезно. Вы точно будете знать, каких записей нет и таким образом можете сравнивать две таблицы друг с другом. Иногда получается так, что Вы видите: данные есть в обеих таблицах, но ВПР выдает #Н/Д. Значит данные в Ваших таблицах не идентичны. В какой-то из них есть лишние неприметные пробелы(обычно перед значением или после), либо знаки кириллицы перемешаны со знаками латиницы. Так же #Н/Д будет, если критерии числа и в искомой таблице они записаны как текст(как правило в левом верхнем углу такой ячейки появляется зеленый треугольничек), а в итоговой — как числа. Или наоборот.
Описание аргументов ВПР
- Искомое_значение($A2) — это то значение из одной таблицы, которые мы ищем в другой таблице. Т.е. для первой записи второй таблицы это будет Петров С.А.. Здесь можно указать либо непосредственно текст критерия(в этом случае он должен быть в кавычках — =ВПР(«Петров С.А»;Лист1!$A$1:$C$4;3;0), либо ссылку на ячейку, с данным текстом(как в примере функции). Есть небольшой нюанс: так же можно применять символы подстановки: «*» и «?». Это очень удобно, если необходимо найти значения лишь по части строки. Например, можно не вводить полностью «Петров С.А», а ввести лишь фамилию и знак звездочки — «Петров*». Тогда будет выведена любая запись, которая начинается на «Петров». Если же надо найти запись, в которой в любом месте строки встречается фамилия «Петров», то можно указать так: «*петров*». Если хотите найти фамилию Петров и неважно какие инициалы будут у имени-отчества(если ФИО записаны в виде Иванов И.И.), то здесь в самый раз такой вид: «Иванов ?.?.».
Часто необходимо для каждой строки указать свое значение(в столбце А Фамилии и надо их все найти). В таком случае всегда указываются ссылки на ячейки столбца А. Например, в ячейке A2 записано: Иванов. Так же известно, что Иванов есть в другой таблице, но после фамилии могут быть записаны и имя и отчество(или еще что-то). Но нам нужно найти только строку, которая начинается на фамилию. Тогда необходимо записать следующим образом: A2&»*». Эта запись будет равнозначна «Иванов*». В A2 записано Иванов, амперсанд(&) используется для объединения в одну строку двух текстовых значений. Звездочка в кавычках (как и положено быть тексту внутри формулы). Таким образом и получаем:
A2&»*» =>
«Иванов»&»*» =>
«Иванов*»
А полная формула в итоге будет выглядеть так: =ВПР(A2&»*»;Лист1!$A$1:$C$4;3;0)
Очень удобно, если значений для поиска много.
Если надо определить есть ли хоть где-то слово в строке, то звездочки ставим с обеих сторон: «*»&A1&»*» - Таблица(Лист1!$A$1:$C$4) — указывается диапазон ячеек, в первом столбце которых будет просматриваться аргумент Искомое_значение. Диапазон должен содержать данные от первой ячейки с данными до самой последней. Это не обязательно должен быть указанный в примере диапазон. Если строк 100, то Лист1!$A$2:$C$100. Диапазон в аргументе таблица всегда должен быть «закреплен», т.е. содержать знаки доллара($) перед названием столбцов и перед номерами строк(Лист1!$A$1:$C$4).
- Номер_столбца(3) — указывается номер столбца в аргументе Таблица, значения из которого нам необходимо записать в итоговую ячейку в качестве результата. В примере это Дата принятия — т.е. столбец №3. Если бы нужен был отдел, то необходимо было бы указать номер столбца 2, а если бы нам понадобилось просто сравнить есть ли фамилии одной таблицы в другой, то можно было бы указать и 1. Номер столбца всегда указывается числом и не должен быть больше числа столбцов в аргументе Таблица.
если аргумент Таблица имеет слишком большое кол-во столбцов и необходимо вернуть результат из последнего столбца, то совсем необязательно высчитывать их количество. Можно использовать формулу, которая подсчитывает количество столбцов в указанном диапазоне: =ВПР($A2;Лист1!$A$1:$C$4;ЧИСЛСТОЛБ(Лист1!$A$1:$C$4);0). К слову в данном случае Лист1! тоже можно убрать, т.к. функция ЧИСЛОСТОЛБ просто подсчитывает количество столбцов в переданном ей диапазоне и неважно на каком он листе: =ВПР($A2;Лист1!$A$1:$C$4;ЧИСЛСТОЛБ($A$1:$C$4);0).
- Интервальный_просмотр(0) — очень интересный аргумент. Может быть равен либо ИСТИНА либо ЛОЖЬ. Так же допускается указать 1 или 0. 1 = ИСТИНА, 0 = ЛОЖЬ. Если в ВПР указать данный параметр равный 0 или ЛОЖЬ, то будет происходить поиск точного соответствия заданному Искомому_значению. Это не имеет никакого отношения к знакам подстановки(«*» и «?»). Если же использовать 1 или ИСТИНА, то…Совсем в двух словах не объяснить. Если вкратце — ВПР будет искать наиболее похожее значение, подходящее под Искомомое_значение. Иногда очень полезно. Правда, если использовать данный параметр, то необходимо, чтобы список в аргументе Таблица был отсортирован по возрастанию. Обращаю внимание на то, что сортировка необходима только в том случае, если аргумент Интервальный_просмотр равен ИСТИНА или 1. Если же 0 или ЛОЖЬ — сортировка не нужна. Этот аргумент необходимо использовать осторожно — не стоит указывать 1 или ИСТИНА, если нужно найти точное соответствие и уж тем более не стоит использовать, если не понимаете принцип его работы.
Подробнее про работу ВПР с интервальным просмотром, равным 1 или ИСТИНА можно ознакомиться в статье ВПР и интервальный просмотр(range_lookup)
- Таблица всегда должна начинаться с того столбца, в котором ищем Искомое_значение. Т.е. ВПР не умеет искать значение во втором столбце таблицы, а значение возвращать из первого. В лучшем случае ничего найдено не будет и получим ошибку #Н/Д(#N/A), а в худшем результат будет совсем не тот, который должен быть
- аргумент Таблица должен быть «закреплен», т.е. содержать знаки доллара($) перед названием столбцов и перед номерами строк(Лист1!$A$1:$C$4). Это и есть закрепление(если точнее, то это называется абсолютной ссылкой на диапазон). Как это делается. Выделяете текст ссылки и жмете клавишу F4 до тех пор, пока не увидите, что и перед обозначением имени столбца и перед номером строки не появились доллары. Если этого не сделать, то при копировании формулы из одной ячейки в остальные аргумент Таблица будет «съезжать» и результат может быть совсем не таким, какой ожидался(в лучшем случае получите ошибку #Н/Д(#N/A)
- номер_столбца не должен превышать общее кол-во столбцов в аргументе таблица, а сама Таблица соответственно должна содержать столбцы от первого(в котором ищем) до последнего(из которого необходимо возвращать значения). В примере указана Лист1!$A$1:$C$4 — всего 3 столбца(A, B, C). Значит не получится вернуть значение из столбца D(4), т.к. в таблице только три столбца. Т.е. если мы запишем формулу так: =ВПР($A2;Лист1!$A$1:$C$4;4;0) — мы получим ошибку #ССЫЛКА!(#REF!).
Если аргументом Таблица указан диапазон $B$1:$C$4 и необходимо вернуть данные из столбца С, то правильно будет указать номер столбца 2. Т.к. аргумент Таблица($B$1:$C$4) содержит только два столбца — В и С. Если же попытаться указать номер столбца 3(каким по счету он является на листе), то получим ошибку #ССЫЛКА!(#REF!), т.к. третьего столбца в указанном диапазоне просто нет.
Многие наверняка заметили, что на картинке у меня попутаны отделы для ФИО(в обеих таблицах ФИО относятся к разным отделам). Это не ошибка записи. В прилагаемом к статье примере показано, как можно одной формулой подставить и отделы и даты, не меняя вручную аргумент Номер_столбца: =ВПР($A2;Лист1!$A$1:$C$4;СТОЛБЕЦ();0). Такой подход сработает, если в обеих таблицах одинаковый порядок столбцов.
Как избежать ошибки #Н/Д(#N/A) в ВПР?
Еще частая проблема — многие не хотят видеть #Н/Д результатом, если совпадение не найдено. Это можно обойти при помощи специальных функций.
Для пользователей Excel 2003 и старше:
=ЕСЛИ(ЕНД(ВПР($A2;Лист1!$A$1:$C$4;3;0));»»;ВПР($A2;Лист1!$A$1:$C$4;3;0))
=IF(ISNA(VLOOKUP($A2,Лист1!$A$1:$C$4,3,0)),»»,VLOOKUP($A2,Лист1!$A$1:$C$4,3,0))
Теперь если ВПР не найдет совпадения, то ячейка будет пустой.
А пользователям версий Excel 2007 и выше будет удобнее использовать функцию
ЕСЛИОШИБКА(IFERROR)
:
=ЕСЛИОШИБКА(ВПР($A2;Лист1!$A$1:$C$4;3;0);»»)
=IFERROR(VLOOKUP($A2,Лист1!$A$1:$C$4,3,0);»»)
Подробнее про различие между использованием ЕСЛИ(ЕНД и ЕСЛИОШИБКА я разбирал в статье: Как в ячейке с формулой вместо ошибки показать 0
Но я бы не рекомендовал использовать
ЕСЛИОШИБКА(IFERROR)
, не убедившись, что ошибки появляются только для реально отсутствующих значений. Иногда ВПР может вернуть #Н/Д и в других ситуациях:
- искомое значение состоит более чем из 255 символов(решение этой проблемы приведено ниже в этой статье: Работа с критериями длиннее 255 символов)
- искомое значение является числом с большим кол-вом знаков после запятой. Excel не может правильно воспринимать такие числа и в итоге ВПР может вернуть ошибку. Правильным решением здесь будет округлить искомое значение хотя бы до 4-х или 5-ти знаков после запятой(конечно, если это допустимо):
=ВПР(ОКРУГЛ($A2;5);Лист1!$A$1:$C$4;3;0)
=VLOOKUP(ROUND($A2,2),Лист1!$A$1:$C$4,3,0) - искомое значение содержит специальные или непечатаемые символы.
В этом случае придется либо избавиться от непечатаемых символов в искомом аргументе:
=ВПР(ПЕЧСИМВ($A2);Лист1!$A$1:$C$4;3;0)
=VLOOKUP(CLEAN($A2),Лист1!$A$1:$C$4,3,0)
либо добавить перед всеми специальными символами(такими как звездочка или вопр.знак) знак тильды(~), чтобы сделать эти знаки просто знаками, а не знаками специального значения(так же работа со специальными(служебными) символами описывалась в статье: Как заменить/удалить/найти звездочку). Добавить символ перед знаком той же тильды можно при помощи функции ПОДСТАВИТЬ(SUBSTITUTE):
=ВПР(ПОДСТАВИТЬ($A2;»~»;»~~»);Лист1!$A$1:$C$4;3;0)
=VLOOKUP(SUBSTITUTE(A2,»~»,»~~»),Лист1!$A$1:$C$4,3,0)
Если необходимо добавить тильду сразу перед несколькими знаками, то делает это обычно так(на примере подстановки одновременно для тильды и звездочки):
=ВПР(ПОДСТАВИТЬ(ПОДСТАВИТЬ($A2;»~»;»~~»);»*»;»~*»);Лист1!$A$1:$C$4;3;0)
=VLOOKUP(SUBSTITUTE(SUBSTITUTE(A2,»~»,»~~»),»*»,»~*»),Лист1!$A$1:$C$4,3,0)
На самом деле ответ будет коротким — ВПР всегда ищет сверху вниз. Слева направо она не умеет. Но зато слева направо умеет искать её сестра ГПР(HLookup) — Горизонтальный
ПР
осмотр.
ГПР ищет заданное значение(аргумент
искомое_значение
) в первой строке указанного диапазона(аргумент
таблица
) и возвращает для него значение из строки таблицы, указанной аргументом номер_строки. Поиск значения всегда происходит слева направо и заканчивается сразу, как только значение найдено. Если значение не найдено, функция возвращает значение ошибки
#Н/Д(#N/A)
.
Если надо найти значение «Иванов» в строке 2 и вернуть значение из строки 5 в таблице
A2:H10
, то формула будет выглядеть так:
=ГПР(«Иванов»;$A$2:$H$10;5;0)
=HLOOKUP(«Иванов»,$A$2:$H$10,5,0)
Все правила и синтаксис функции точно такие же, как у ВПР:
-в искомом значении можно применять символы астерикса(*) и вопр.знака(?) — «Иванов*»;
-таблица должна быть закреплена —
$A$2:$H$10
;
-интервальный просмотр работает по тому же принципу(0 или ЛОЖЬ точный просмотр слева-направо, 1 или ИСТИНА — интервальный).
Общий принцип работы
ПОИСКПОЗ(MATCH)
очень похож на ВПР — функция ищет заданное значение в массиве (в столбце или строке) и возвращает его позицию(порядковый номер в заданном массиве). Т.е. ищет
Искомое_значение
в аргументе
Просматриваемый_массив
и в качестве результата выдает номер позиции найденного значения в
Просматриваемом_массиве
. Именно номер позиции, а не само значение. Если бы мы хотели применить её для таблицы выше, то она была бы такой:
=ПОИСКПОЗ($A2;Лист1!$A$1:$A$4;0)
=MATCH($A2,Лист1!$A$1:$A$4,0)
- Искомое_значение($A2) — непосредственно значение или ссылка на ячейку с искомым значением. Если опираться на пример выше — то это ФИО. Здесь все ровно так же, как и с ВПР. Так же допустимы символы подстановки * и ? и ровно в таком же исполнении.
- Просматриваемый_массив(Лист1!$A$1:$A$4) — указывается ссылка на столбец, в котором необходимо найти искомое значение. В отличии от той же ВПР, где указывается целая таблица, это должен быть именно один столбец, в котором мы собираемся искать Искомое_значение. Если попытаться указать более одного столбца, то функция вернет ошибку.Справедливости ради надо отметить, что можно указать либо столбец, либо строку
- Тип_сопоставления(0) — то же самое, что и Интервальный_просмотр в ВПР. С теми же особенностями. Отличается разве что возможностью поиска наименьшего от искомого или наибольшего.
С основным разобрались. Но ведь нам надо вернуть не номер позиции, а само значение. Значит ПОИСКПОЗ в чистом виде нам не подходит. По крайней мере одна, сама по себе. Но если её использовать вместе с функцией ИНДЕКС(INDEX)(которая возвращает из указанного диапазона значение на пересечении заданных строки и столбца) — то это то, что нам нужно и даже больше.
=ИНДЕКС(Лист1!$A$1:$C$4;ПОИСКПОЗ($A2;Лист1!$A$1:$A$4;0);2)
Такая формула результатом вернет то же, что и ВПР.
Аргументы функции ИНДЕКС
Массив(Лист1!$A$2:$C$4). В качестве этого аргумента мы указываем диапазон, из которого хотим получить значения. Может быть как один столбец, так и несколько. В случае, если столбец один, то последний аргумент функции указывать не обязательно или он всегда будет равен 1(столбец-то всего один). К слову — данный аргумент может совершенно не совпадать с тем, который мы указываем в аргументе Просматриваемый_массив функции ПОИСКПОЗ.
Далее идут Номер_строки и Номер_столбца. Именно в качестве Номера_строки мы и подставляем ПОИСКПОЗ, которая возвращает нам номер позиции в массиве. На этом все и строится. ИНДЕКС возвращает значение из Массива, которое находится в указанной строке(Номер_строки) Массива и указанном столбце(Номер_столбца), если столбцов более одного. Важно знать, что в данной связке кол-во строк в аргументе Массив функции ИНДЕКС и кол-во строк в аргументе Просматриваемый_массив функции ПОИСКПОЗ должно совпадать. И начинаться с одной и той же строки. Это в обычных случаях, если не преследуются иные цели.
Так же как и в случае с ВПР, ИНДЕКС в случае не нахождения искомого значения возвращает #Н/Д. И обойти подобные ошибки можно так же:
Для всех версий Excel(включая 2003 и раньше):
=ЕСЛИ(ЕНД(ПОИСКПОЗ($A2;Лист1!$A$1:$A$4;0));»»;ИНДЕКС(Лист1!$A$1:$C$4;ПОИСКПОЗ($A2;Лист1!$A$2:$A$4;0);2))
Для версий 2007 и выше:
=ЕСЛИОШИБКА(ИНДЕКС(Лист1!$A$1:$C$4;ПОИСКПОЗ($A2;Лист1!$A$1:$A$4;0);2);»»)
Есть у ИНДЕКС-ПОИСКПОЗ и еще одно преимущество перед ВПР. Дело в том, что ВПР не может искать значения, длина строки которых содержит более 255 символов. Это случается редко, но случается. Можно, конечно, обмануть ВПР и урезать критерий:
=ВПР(ПСТР($A2;1;255);ПСТР(Лист1!$A$1:$C$4;1;255);3;0)
но это формула массива. Да и к тому же далеко не всегда такая формула вернет нужный результат. Если первые 255 символов идентичны первым 255 символам в таблице, а дальше знаки различаются — формула этого уже не увидит. Да и возвращает формула исключительно текстовые значения, что в случаях, когда возвращаться должны числа, не очень удобно.
Поэтому лучше использовать такую хитрую формулу:
=ИНДЕКС(Лист1!$A$1:$C$4;СУММПРОИЗВ(ПОИСКПОЗ(ИСТИНА;Лист1!$A$1:$A$4=$A2;0));2)
Здесь я в формулах использовал одинаковые диапазоны для удобочитаемости, но в примере для скачивания они различаются от указанных здесь.
Сама формула построена на возможности функции СУММПРОИЗВ преобразовывать в массивные вычисления некоторых функций внутри неё. В данном случае ПОИСКПОЗ ищет позицию строки, в которой критерий равен значению в строке. Подстановочные символы здесь применить уже не получится.
Ну и все же я рекомендовал бы Вам прочитать подробнее про данные функции в справке.
В прилагаемом к статье примере Вы найдете примеры использования всех описанных случаев и пример того, почему ИНДЕКС и ПОИСКПОЗ порой предпочтительнее ВПР.
Скачать пример
Tips_All_VLookUp.xls (26,0 KiB, 17 435 скачиваний)
Так же см.:
ВПР и интервальный просмотр(range_lookup)
ВПР по двум и более критериям
ВПР с возвратом всех значений
ВПР с поиском по нескольким листам
ВПР_МН
ВПР_ВСЕ_КНИГИ
Как заменить/удалить/найти звездочку?
Статья помогла? Поделись ссылкой с друзьями!
Видеоуроки
Поиск по меткам
Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).
Описание
В этой статье приведены пошаговые инструкции по поиску данных в таблице (или диапазоне ячеек) с помощью различных встроенных функций Microsoft Excel. Для получения одного и того же результата можно использовать разные формулы.
Создание образца листа
В этой статье используется образец листа для иллюстрации встроенных функций Excel. Рассматривайте пример ссылки на имя из столбца A и возвращает возраст этого человека из столбца C. Чтобы создать этот лист, введите указанные ниже данные в пустой лист Excel.
Введите значение, которое вы хотите найти, в ячейку E2. Вы можете ввести формулу в любую пустую ячейку на том же листе.
A |
B |
C |
D |
E |
||
1 |
Имя |
Правитель |
Возраст |
Поиск значения |
||
2 |
Анри |
501 |
Плот |
Иванов |
||
3 |
Стэн |
201 |
19 |
|||
4 |
Иванов |
101 |
максималь |
|||
5 |
Ларри |
301 |
составляет |
Определения терминов
В этой статье для описания встроенных функций Excel используются указанные ниже условия.
Термин |
Определение |
Пример |
Массив таблиц |
Вся таблица подстановки |
A2: C5 |
Превышающ |
Значение, которое будет найдено в первом столбце аргумента «инфо_таблица». |
E2 |
Просматриваемый_массив |
Диапазон ячеек, которые содержат возможные значения подстановки. |
A2: A5 |
Номер_столбца |
Номер столбца в аргументе инфо_таблица, для которого должно быть возвращено совпадающее значение. |
3 (третий столбец в инфо_таблица) |
Ресулт_аррай |
Диапазон, содержащий только одну строку или один столбец. Он должен быть такого же размера, что и просматриваемый_массив или Лукуп_вектор. |
C2: C5 |
Интервальный_просмотр |
Логическое значение (истина или ложь). Если указано значение истина или опущено, возвращается приближенное соответствие. Если задано значение FALSE, оно будет искать точное совпадение. |
ЛОЖЬ |
Топ_целл |
Это ссылка, на основе которой вы хотите основать смещение. Топ_целл должен ссылаться на ячейку или диапазон смежных ячеек. В противном случае функция СМЕЩ возвращает #VALUE! значение ошибки #ИМЯ?. |
|
Оффсет_кол |
Число столбцов, находящегося слева или справа от которых должна указываться верхняя левая ячейка результата. Например, значение «5» в качестве аргумента Оффсет_кол указывает на то, что верхняя левая ячейка ссылки состоит из пяти столбцов справа от ссылки. Оффсет_кол может быть положительным (то есть справа от начальной ссылки) или отрицательным (то есть слева от начальной ссылки). |
Функции
LOOKUP ()
Функция Просмотр находит значение в одной строке или столбце и сопоставляет его со значением в той же позицией в другой строке или столбце.
Ниже приведен пример синтаксиса формулы подСТАНОВКи.
= Просмотр (искомое_значение; Лукуп_вектор; Ресулт_вектор)
Следующая формула находит возраст Марии на листе «образец».
= ПРОСМОТР (E2; A2: A5; C2: C5)
Формула использует значение «Мария» в ячейке E2 и находит слово «Мария» в векторе подстановки (столбец A). Формула затем соответствует значению в той же строке в векторе результатов (столбец C). Так как «Мария» находится в строке 4, функция Просмотр возвращает значение из строки 4 в столбце C (22).
Примечание. Для функции Просмотр необходимо, чтобы таблица была отсортирована.
Чтобы получить дополнительные сведения о функции Просмотр , щелкните следующий номер статьи базы знаний Майкрософт:
Использование функции Просмотр в Excel
ВПР ()
Функция ВПР или вертикальный просмотр используется, если данные указаны в столбцах. Эта функция выполняет поиск значения в левом столбце и сопоставляет его с данными в указанном столбце в той же строке. Функцию ВПР можно использовать для поиска данных в отсортированных или несортированных таблицах. В следующем примере используется таблица с несортированными данными.
Ниже приведен пример синтаксиса формулы ВПР :
= ВПР (искомое_значение; инфо_таблица; номер_столбца; интервальный_просмотр)
Следующая формула находит возраст Марии на листе «образец».
= ВПР (E2; A2: C5; 3; ЛОЖЬ)
Формула использует значение «Мария» в ячейке E2 и находит слово «Мария» в левом столбце (столбец A). Формула затем совпадет со значением в той же строке в Колумн_индекс. В этом примере используется «3» в качестве Колумн_индекс (столбец C). Так как «Мария» находится в строке 4, функция ВПР возвращает значение из строки 4 В столбце C (22).
Чтобы получить дополнительные сведения о функции ВПР , щелкните следующий номер статьи базы знаний Майкрософт:
Как найти точное совпадение с помощью функций ВПР или ГПР
INDEX () и MATCH ()
Вы можете использовать функции индекс и ПОИСКПОЗ вместе, чтобы получить те же результаты, что и при использовании поиска или функции ВПР.
Ниже приведен пример синтаксиса, объединяющего индекс и Match для получения одинаковых результатов поиска и ВПР в предыдущих примерах:
= Индекс (инфо_таблица; MATCH (искомое_значение; просматриваемый_массив; 0); номер_столбца)
Следующая формула находит возраст Марии на листе «образец».
= ИНДЕКС (A2: C5; MATCH (E2; A2: A5; 0); 3)
Формула использует значение «Мария» в ячейке E2 и находит слово «Мария» в столбце A. Затем он будет соответствовать значению в той же строке в столбце C. Так как «Мария» находится в строке 4, формула возвращает значение из строки 4 в столбце C (22).
Обратите внимание Если ни одна из ячеек в аргументе «число» не соответствует искомому значению («Мария»), эта формула будет возвращать #N/А.
Чтобы получить дополнительные сведения о функции индекс , щелкните следующий номер статьи базы знаний Майкрософт:
Поиск данных в таблице с помощью функции индекс
СМЕЩ () и MATCH ()
Функции СМЕЩ и ПОИСКПОЗ можно использовать вместе, чтобы получить те же результаты, что и функции в предыдущем примере.
Ниже приведен пример синтаксиса, объединяющего смещение и сопоставление для достижения того же результата, что и функция Просмотр и ВПР.
= СМЕЩЕНИЕ (топ_целл, MATCH (искомое_значение; просматриваемый_массив; 0); Оффсет_кол)
Эта формула находит возраст Марии на листе «образец».
= СМЕЩЕНИЕ (A1; MATCH (E2; A2: A5; 0); 2)
Формула использует значение «Мария» в ячейке E2 и находит слово «Мария» в столбце A. Формула затем соответствует значению в той же строке, но двум столбцам справа (столбец C). Так как «Мария» находится в столбце A, формула возвращает значение в строке 4 в столбце C (22).
Чтобы получить дополнительные сведения о функции СМЕЩ , щелкните следующий номер статьи базы знаний Майкрософт:
Использование функции СМЕЩ
Нужна дополнительная помощь?
Найти недостающие значения
На чтение 2 мин. Просмотров 6.5k.
= ЕСЛИ( СЧЕТЕСЛИ ( список ; значение ); «OK» ; «Отсутствует» )
Если вы хотите выяснить, какие значения в одном списке отсутствуют из другого списка, вы можете использовать простую формулу, основанную на функции СЧЕТЕСЛИ.
Функция СЧЕТЕСЛИ подсчитывает ячейки, которые отвечают критериям, возвращая число найденных вхождений. Если такие ячейки не найдены, СЧЕТЕСЛИ возвращает ноль.
В показанном примере, формула в G5 является:
=ЕСЛИ(СЧЁТЕСЛИ($B$5:$B$10;F5);»ОК»; «Отсутствует»)
Где «список» является именованный диапазон, что соответствует диапазону B6: B11.
Функция ЕСЛИ требует логического теста, чтобы вернуть значение ИСТИНА или ЛОЖЬ. В этом случае, если значение найдено, положительное число возвращается СЧЕТЕСЛИ, который имеет значение ИСТИНА, в результате чего, если вернуть «ОК». Если значение не найдено, возвращается ноль, который имеет значение ЛОЖЬ, и ЕСЛИ возвращает «Отсутствует».
Количество пропущенных значений
=СУММПРОИЗВ(—(СЧЁТЕСЛИ(B5:B10;F5:F7)=0))
Для подсчета значений в одном списке, которые отсутствуют в другом списке, вы можете использовать формулу, основанную на функциях СЧЕТЕСЛИ и СУММПРОИЗВ.
Функции СЧЕТЕСЛИ проверяет значения в диапазоне от критериев. Часто, только один критерий подается, но в этом случае мы поставляем больше чем один критерий.
Для диапазона, мы даем СЧЕТЕСЛИ именованному диапазону лист1 (B6: B11) и критериям мы обеспечиваем именованный диапазон лист2 (F6: F8).
Потому что мы даем СЧЕТЕСЛИ более чем один критерий, мы получим более одного результата в массиве, который выглядит следующим образом: {2; 1; 0}
Мы хотим, чтобы рассчитывались только те значения, которые отсутствуют, которые по определению имеют счетчик, равный нулю, поэтому мы преобразуем эти значения ИСТИНА и ЛОЖЬ с «= 0» заявлением, что дает: {ЛОЖЬ; ЛОЖЬ; ИСТИНА}
Тогда мы изменим значения ИСТИНА/ЛОЖЬ в 1 и 0 с двойным отрицательным оператором (-), который производит: {0, 0, 1}
Наконец, мы используем СУММПРОИЗВ, чтобы сложить элементы в массиве и получить общее количество пропущенных значений.
Прочитав статью, вы не только узнаете, как найти данные в таблице Excel и извлечь их в другую, но и приёмы, которые можно применять вместе с функцией ВПР.
Батьянов Денис на правах гостевого автора рассказывает в этом посте о том, как найти данные в одной таблице Excel и извлечь их в другую, а также открывает все секреты функции вертикального просмотра.
При работе в Excel очень часто возникает потребность найти данные в одной таблице и извлечь их в другую. Если вы ещё не умеете это делать, то, прочитав статью, вы не только научитесь этому, но и узнаете, при каких условиях вы сможете выжать из системы максимум быстродействия. Рассмотрено большинство весьма эффективных приёмов, которые стоит применять совместно с функцией ВПР.
Даже если вы годами используете функцию ВПР, то с высокой долей вероятности эта статья будет вам полезна и не оставит равнодушным. Я, например, будучи IT-специалистом, а потом и руководителем в IT, пользовался VLOOKUP 15 лет, но разобраться со всеми нюансами довелось только сейчас, когда я на профессиональной основе стал обучать людей Excel.
ВПР — это аббревиатура от вертикального просмотра. Аналогично и VLOOKUP — Vertical LOOKUP. Уже само название функции намекает нам, что она производит поиск в строках таблицы (по вертикали — перебирая строки и фиксируя столбец), а не в столбцах (по горизонтали — перебирая столбцы и фиксируя строку). Надо заметить, что у ВПР есть сестра — гадкий утёнок, которая никогда не станет лебедем, — это функция ГПР (HLOOKUP). ГПР, в противоположность ВПР, производит горизонтальный поиск, однако концепция Excel (да и вообще концепция организации данных) подразумевает, что ваши таблицы имеют небольшое количество столбцов и гораздо большее количество строк. Именно поэтому поиск по строкам нам требуется во много раз чаще, чем по столбцам. Если вы в Excel слишком часто пользуетесь функцией ГПР, то, вполне вероятно, что вы чего-то не поняли в этой жизни.
Синтаксис
Функция ВПР имеет четыре параметра:
=ВПР( <ЧТО> ; <ГДЕ> ; <НОМЕР_СТОЛБЦА> [;<ОТСОРТИРОВАНО>] ), тут:
<ЧТО> — искомое значение (редко) или ссылка на ячейку, содержащую искомое значение (подавляющее большинство случаев);
<ГДЕ> — ссылка на диапазон ячеек (двумерный массив), в ПЕРВОМ (!) столбце которого будет осуществляться поиск значения параметра <ЧТО>;
<НОМЕР_СТОЛБЦА> — номер столбца в диапазоне, из которого будет возвращено значение;
<ОТСОРТИРОВАНО> — это очень важный параметр, который отвечает на вопрос, а отсортирован ли по возрастанию первый столбец диапазона <ГДЕ>. В случае, если массив отсортирован, мы указываем значение ИСТИНА (TRUE) или 1, в противном случае — ЛОЖЬ (FALSE) или 0. В случае, если данный параметр опущен, он по умолчанию становится равным 1.
Держу пари, что многие из тех, кто знает функцию ВПР как облупленную, прочитав описание четвёртого параметра, могут почувствовать себя неуютно, так как они привыкли видеть его в несколько ином виде: обычно там идёт речь о точном соответствии при поиске (ЛОЖЬ или 0) либо же о диапазонном просмотре (ИСТИНА или 1).
Вот сейчас надо напрячься и читать следующий абзац несколько раз, пока не прочувствуете смысл сказанного до конца. Там важно каждое слово. Примеры помогут разобраться.
Как же конкретно работает формула ВПР
- Вид формулы I. Если последний параметр опущен или указан равным 1, то ВПР предполагает, что первый столбец отсортирован по возрастанию, поэтому поиск останавливается на той строке, которая непосредственно предшествует строке, в которой находится значение, превышающее искомое. Если такой строки не найдено, то возвращается последняя строка диапазона.
- Вид формулы II. Если последний параметр указан равным 0, то ВПР последовательно просматривает первый столбец массива и сразу останавливает поиск, когда найдено первое точное соответствие с параметром <ЧТО>, в противном случае возвращается код ошибки #Н/Д (#N/A).
Схемы работы формул
ВПР тип I
ВПР тип II
Следствия для формул вида I
- Формулы можно использовать для распределения значений по диапазонам.
- Если первый столбец <ГДЕ> содержит повторяющиеся значения и правильно отсортирован, то будет возвращена последняя из строк с повторяющимися значениями.
- Если искать значение заведомо большее, чем может содержать первый столбец, то можно легко находить последнюю строку таблицы, что бывает довольно ценно.
- Данный вид вернёт ошибку #Н/Д, только если не найдёт значения меньше или равное искомому.
- Понять, что формула возвращает неправильные значения, в случае если ваш массив не отсортирован, довольно затруднительно.
Следствия для формул вида II
Если искомое значение встречается в первом столбце массива несколько раз, то формула выберет первую строку для последующего извлечения данных.
Производительность работы функции ВПР
Вы добрались до кульминационного места статьи. Казалось бы, ну какая разница, укажу ли я в качестве последнего параметра ноль или единицу? В основном все указывают, конечно же, ноль, так как это довольно практично: не надо заботиться о сортировке первого столбца массива, сразу видно, найдено значение или нет. Но если у вас на листе несколько тысяч формул ВПР (VLOOKUP), то вы заметите, что ВПР вида II работает медленно. При этом обычно все начинают думать:
- мне нужен более мощный компьютер;
- мне нужна более быстрая формула, например, многие знают про ИНДЕКС+ПОИСКПОЗ (INDEX+MATCH), которая якобы быстрее на жалкие 5–10%.
И мало кто думает, что стоит только начать использовать ВПР вида I и обеспечить любыми способами сортировку первого столбца, как скорость работы ВПР возрастёт в 57 раз. Пишу прописью — В ПЯТЬДЕСЯТ СЕМЬ РАЗ! Не на 57%, а на 5 700%. Данный факт я проверил вполне надёжно.
Секрет такой быстрой работы кроется в том, что на отсортированном массиве можно применять чрезвычайно эффективный алгоритм поиска, который носит название бинарного поиска (метод деления пополам, метод дихотомии). Так вот ВПР вида I его применяет, а ВПР вида II ищет без какой-либо оптимизации вообще. То же самое относится и к функции ПОИСКПОЗ (MATCH), которая включает в себя аналогичный параметр, а также и к функции ПРОСМОТР (LOOKUP), которая работает только на отсортированных массивах и включена в Excel ради совместимости с Lotus 1-2-3.
Недостатки формулы
Недостатки ВПР очевидны: во-первых, она ищет только в первом столбце указанного массива, а во-вторых, только справа от данного столбца. А как вы понимаете, вполне может случиться так, что столбец, содержащий необходимую информацию, окажется слева от столбца, в котором мы будем искать. Этого недостатка лишена уже упомянутая связка формул ИНДЕКС+ПОИСКПОЗ (INDEX+MATCH), что делает её наиболее гибким решением по извлечению данных из таблиц в сравнении с ВПР (VLOOKUP).
Некоторые аспекты применения формулы в реальной жизни
Диапазонный поиск
Классическая иллюстрация к диапазонному поиску — задача определения скидки по размеру заказа.
Поиск текстовых строк
Безусловно, ВПР ищет не только числа, но и текст. При этом надо принимать во внимание, что регистр символов формула не различает. Если использовать символы подстановки, то можно организовать нечёткий поиск. Есть два символа подстановки: «?» — заменяет один любой символ в текстовой строке, «*» — заменяет любое количество любых символов.
Борьба с пробелами
Часто поднимается вопрос, как решить проблему лишних пробелов при поиске. Если справочную таблицу ещё можно вычистить от них, то первый параметр формулы ВПР не всегда зависит от вас. Поэтому если риск засорения ячеек лишними пробелами присутствует, то можно применять для очистки функции СЖПРОБЕЛЫ (TRIM).
Разный формат данных
Если первый параметр функции ВПР ссылается на ячейку, которая содержит число, но которое хранится в ячейке в текстовом виде, а первый столбец массива содержит числа в правильном формате, то поиск будет неудачным. Возможна и обратная ситуация. Проблема легко решается переводом параметра 1 в необходимый формат:
=ВПР(−−D7; Продукты!$A$2:$C$5; 3; 0) — если D7 содержит текст, а таблица — числа;
=ВПР(D7 & «»); Продукты!$A$2:$C$5; 3; 0) — и наоборот.
Кстати, перевести текст в число можно сразу несколькими способами, выбирайте:
- Двойное отрицание —D7.
- Умножение на единицу D7*1.
- Сложение с нулём D7+0.
- Возведение в первую степень D7^1.
Перевод числа в текст производится через сцепку с пустой строкой, которая заставляет Excel преобразовать тип данных.
Как подавить выдачу #Н/Д
Это очень удобно делать при помощи функции ЕСЛИОШИБКА (IFERROR).
Например: =ЕСЛИОШИБКА( ВПР(D7; Продукты!$A$2:$C$5; 3; 0); «»).
Если ВПР вернёт код ошибки #Н/Д, то ЕСЛИОШИБКА его перехватит и подставит параметр 2 (в данном случае пустая строка), а если ошибки не произошло, то эта функция сделает вид, что её вообще нет, а есть только ВПР, вернувший нормальный результат.
Массив <ГДЕ>
Часто забывают ссылку массива сделать абсолютной, и при протягивании массив «плывёт». Помните, что вместо A2:C5 следует использовать $A$2:$C$5.
Хорошей идеей является размещение справочного массива на отдельном листе рабочей книги. Не путается под ногами, да и сохраннее будет.
Ещё более хорошей идеей будет объявление этого массива в виде именованного диапазона.
Многие пользователи при указании массива используют конструкцию вида A:C, указывая столбцы целиком. Этот подход имеет право на существование, так как вы избавлены от необходимости отслеживать тот факт, что ваш массив включает все необходимые строки. Если вы добавите строки на лист с первоначальным массивом, то диапазон, указанный как A:C, не придётся корректировать. Безусловно, эта синтаксическая конструкция заставляет Excel проводить несколько большую работу, чем при точном указании диапазона, но данными накладными расходами можно пренебречь. Речь идёт о сотых долях секунды.
Ну и на грани гениальности — оформить массив в виде умной таблицы.
Использование функции СТОЛБЕЦ для указания колонки извлечения
Если таблица, в которую вы извлекаете данные при помощи ВПР, имеет ту же самую структуру, что и справочная таблица, но просто содержит меньшее количество строк, то в ВПР можно использовать функцию СТОЛБЕЦ() для автоматического расчёта номеров извлекаемых столбцов. При этом все ВПР-формулы будут одинаковыми (с поправкой на первый параметр, который меняется автоматически)! Обратите внимание, что у первого параметра координата столбца абсолютная.
Создание составного ключа через &»|»&
Если возникает необходимость искать по нескольким столбцам одновременно, то необходимо делать составной ключ для поиска. Если бы возвращаемое значение было не текстовым (как тут в случае с полем «Код»), а числовым, то для этого подошла бы более удобная формула СУММЕСЛИМН (SUMIFS) и составной ключ столбца не потребовался бы вовсе.
Это моя первая статья для Лайфхакера. Если вам понравилось, то приглашаю вас посетить мой сайт, а также с удовольствием прочту в комментариях о ваших секретах использования функции ВПР и ей подобных. Спасибо.
Skip to content
В этом руководстве показано, как использовать ИНДЕКС и ПОИСКПОЗ в Excel и чем они лучше ВПР.
В нескольких недавних статьях мы приложили немало усилий, чтобы объяснить основы функции ВПР новичкам и предоставить более сложные примеры формул ВПР опытным пользователям. А теперь я постараюсь если не отговорить вас от использования ВПР, то хотя бы показать вам альтернативный способ поиска нужных значений в Excel.
- Краткий обзор функций ИНДЕКС и ПОИСКПОЗ
- Как использовать формулу ИНДЕКС ПОИСКПОЗ
- ИНДЕКС+ПОИСКПОЗ вместо ВПР?
- Поиск справа налево
- Двусторонний поиск в строках и столбцах
- ИНДЕКС ПОИСКПОЗ для поиска по нескольким условиям
- Как найти среднее, максимальное и минимальное значение
- Что делать с ошибками поиска?
Для чего это нужно? Потому что функция ВПР имеет множество ограничений, которые могут помешать вам получить желаемый результат во многих ситуациях. С другой стороны, комбинация ПОИСКПОЗ ИНДЕКС более гибкая и имеет много замечательных возможностей, которые во многих отношениях превосходят ВПР.
Функции Excel ИНДЕКС и ПОИСКПОЗ — основы
Поскольку целью этого руководства является демонстрация альтернативного способа выполнения поиска в Excel с использованием комбинации функций ИНДЕКС и ПОИСКПОЗ, мы не будем подробно останавливаться на их синтаксисе и использовании. Тем более, что это подробно рассмотрено в других статьях, ссылки на которые вы можете найти в конце этого руководства. Мы рассмотрим лишь минимум, необходимый для понимания общей идеи, а затем подробно рассмотрим примеры формул, раскрывающие все преимущества использования ПОИСКПОЗ и ИНДЕКС вместо ВПР.
Функция ИНДЕКС
Функция ИНДЕКС (в английском варианте – INDEX) возвращает значение в массиве на основе указанных вами номеров строк и столбцов. Синтаксис функции ИНДЕКС прост:
ИНДЕКС(массив,номер_строки,[номер_столбца])
Вот простое объяснение каждого параметра:
- массив — это диапазон ячеек, именованный диапазон или таблица.
- номер_строки — это номер строки в массиве, из которого нужно вернуть значение. Если этот аргумент опущен, требуется следующий – номер_столбца.
- номер_столбца — это номер столбца, из которого нужно вернуть значение. Если он опущен, требуется номер_строки.
Дополнительные сведения см. в статье Функция ИНДЕКС в Excel .
А вот пример формулы ИНДЕКС в самом простом виде:
=ИНДЕКС(A1:C10;2;3)
Формула выполняет поиск в ячейках с A1 по C10 и возвращает значение ячейки во 2-й строке и 3-м столбце, т. е. в ячейке C2.
Очень легко, правда? Однако при работе с реальными данными вы вряд ли когда-нибудь будете заранее знать, какие строки и столбцы вам нужны. Здесь вам пригодится ПОИСКПОЗ.
Функция ПОИСКПОЗ
Она ищет нужное значение в диапазоне ячеек и возвращает относительное положение этого значения в диапазоне.
Синтаксис функции ПОИСКПОЗ следующий:
ПОИСКПОЗ(искомое_значение, искомый_массив, [тип_совпадения])
- искомое_значение — числовое или текстовое значение, которое вы ищете.
- диапазон_поиска — диапазон ячеек, в которых будем искать.
- тип_совпадения — указывает, следует ли искать точное соответствие или наиболее близкое совпадение:
- 1 или опущено — находит наибольшее значение, которое меньше или равно искомому значению. Требуется сортировка массива поиска в порядке возрастания.
- 0 — находит первое значение, точно равное искомому значению. В комбинации ИНДЕКС/ПОИСКПОЗ вам почти всегда нужно точное совпадение, поэтому вы чаще всего устанавливаете третий аргумент вашей функции в 0.
- -1 — находит наименьшее значение, которое больше или равно искомому значению. Требуется сортировка массива поиска в порядке убывания.
Например, если диапазон B1:B3 содержит значения «яблоки», «апельсины», «лимоны», приведенная ниже формула возвращает число 3, поскольку «лимоны» — это третья по счету запись в этом диапазоне:
=ПОИСКПОЗ(«лимоны»;B1:B3;0)
Дополнительные сведения см . в статье Функция ПОИСКПОЗ в Excel .
На первый взгляд полезность функции ПОИСКПОЗ может показаться сомнительной. Кого волнует положение значения в диапазоне? Что мы действительно хотим определить, так это само значение.
Однако, относительная позиция искомого значения (т. е. номера строки и столбца, в которых оно находится) — это именно то, что нам нужно указать для аргументов номер_строки и номер_столбца функции ИНДЕКС. Как вы помните, ИНДЕКС может найти значение на пересечении заданной строки и столбца, но сама не может определить, какую именно строку и столбец ей нужно выбрать.
Вот поэтому совместное использование ИНДЕКС и ПОИСКПОЗ открывает перед нами массу возможностей для поиска в Excel.
Как использовать формулу ИНДЕКС ПОИСКПОЗ в Excel
Теперь, когда вы знаете основы, я считаю, что вы уже начали понимать, как ПОИСКПОЗ и ИНДЕКС работают вместе. Короче говоря, ИНДЕКС извлекает нужное значение по номерам столбцов и строк, а ПОИСКПОЗ предоставляет ей эти номера. Вот и все!
Для вертикального поиска вы используете функцию ПОИСКПОЗ только для определения номера строки, указывая диапазон столбцов непосредственно в самой формуле:
ИНДЕКС ( столбец для возврата значения ; ПОИСКПОЗ ( искомое значение ; столбец для поиска ; 0))
Все еще не совсем понимаете эту логику? Возможно, будет проще разобрать на примере. Предположим, у вас есть список национальных столиц и их население:
Чтобы найти население определенной столицы, скажем, Индии, используйте следующую формулу ПОИСКПОЗ ИНДЕКС:
=ИНДЕКС(C2:C10; ПОИСКПОЗ(“Индия”;A2:A10;0))
Теперь давайте проанализируем, что на самом деле делает каждый компонент этой формулы:
- Функция ПОИСКПОЗ ищет искомое значение «Индия» в диапазоне A2:A10 и возвращает число 2, поскольку это слово занимает второе место в массиве поиска.
- Этот номер поступает непосредственно в аргумент номер_строки функции ИНДЕКС, предписывая вернуть значение из этой строки.
Таким образом, приведенная выше формула превращается в ИНДЕКС(C2:C10;2), которая означает, что нужно искать в ячейках от C2 до C10 и извлекать значение из второй ячейки в этом диапазоне, то есть из C3, потому что мы начинаем отсчет со второй строки.
Но указывать название города в формуле не совсем правильно, так как для каждого нового поиска придется корректировать эту формулу. Введите его в какую-нибудь отдельную ячейку, скажем, F1, укажите ссылку на ячейку для ПОИСКПОЗ, и вы получите формулу динамического поиска:
=ИНДЕКС(C2:C10;ПОИСКПОЗ(F1;A2:A10;0))
Важное замечание! Количество строк в аргументе массив функции ИНДЕКС должно совпадать с количеством строк в аргументе просматриваемый_массив в ПОИСКПОЗ, иначе формула выдаст неверный результат.
Вы спросите: «А почему бы нам просто не использовать обычную формулу ВПР? Какой смысл тратить время на то, чтобы разобраться в хитросплетениях ИНДЕКС ПОИСКПОЗ в Excel?»
Вот как это будет выглядеть:
=ВПР(F1; A2:C10; 3; 0)
Конечно, так проще. Но этот наш элементарный пример предназначен только для демонстрационных целей, чтобы вы поняли, как именно функции ИНДЕКС и ПОИСКПОЗ работают вместе. Действительно, ВПР была бы здесь более уместна. Другие примеры, которые вы найдёте ниже, покажут вам реальную силу этой комбинации, которая легко справляется со многими сложными задачами, когда ВПР будет бессильна.
ИНДЕКС+ПОИСКПОЗ вместо ВПР?
Решая, какую функцию использовать для вертикального поиска, большинство знатоков Excel сходятся во мнении, что ПОИСКПОЗ+ИНДЕКС намного лучше, чем ВПР. Однако многие до сих пор остаются с ВПР, во-первых, потому что это проще, а, во-вторых, потому что они не до конца понимают все преимущества использования формулы ПОИСКПОЗ ИНДЕКС в Excel. Без такого понимания никто не захочет тратить свое время на изучение более сложного синтаксиса.
Ниже я укажу на ключевые преимущества ИНДЕКС ПОИСКПОЗ перед ВПР, а уж вам решать, является ли это достойным дополнением к вашему арсеналу знаний в Excel.
4 основные причины использовать ИНДЕКС ПОИСКПОЗ вместо ВПР
- Поиск справа налево. Как известно любому образованному пользователю, ВПР не может искать влево. Это означает, что искомое значение всегда должно находиться в крайнем левом столбце таблицы. А извлекать нужное значение мы будем из столбца, который находится правее. ИНДЕКС+ПОИСКПОЗ может легко выполнять поиск влево! Здесь это показано в действии: Как выполнить поиск значения слева в Excel .
- Можно безопасно вставлять или удалять столбцы. Формулы ВПР не работают или выдают неверные результаты, когда новый столбец удаляется из таблицы поиска или добавляется в нее, поскольку синтаксис ВПР требует указания порядкового номера столбца, из которого вы хотите извлечь данные. Естественно, когда вы добавляете или удаляете столбцы, этот номер в формуле автоматически не меняется, а нужный столбец уже оказывается на новом месте.
С функциями ИНДЕКС и ПОИСКПОЗ вы указываете диапазон возвращаемых столбцов, а не номер одного из них. В результате вы можете вставлять и удалять столько столбцов, сколько хотите, не беспокоясь об обновлении каждой связанной с ними формулы.
- Нет ограничений на размер искомого значения. При использовании функции ВПР общая длина ваших критериев поиска не может превышать 255 символов, иначе вы получите ошибку #ЗНАЧ!. Таким образом, если ваш набор данных содержит длинные строки, ИНДЕКС ПОИСКПОЗ — единственное работающее решение.
- Более высокая скорость обработки. Если ваши таблицы относительно небольшие, вряд ли будет какая-то существенная разница в производительности Excel. Но если ваши рабочие листы содержат сотни или тысячи строк и, следовательно, сотни или тысячи формул, ИНДЕКС ПОИСКПОЗ будет работать намного быстрее, чем ВПР. Причина в том, что Excel будет обрабатывать только столбцы поиска и возврата, а не весь массив таблицы.
Влияние ВПР на производительность Excel может быть особенно заметным, если ваша книга содержит сложные формулы массива. Чем больше значений содержит ваш массив и чем больше формул массива содержится в книге, тем медленнее работает Excel.
ИНДЕКС ПОИСКПОЗ в Excel – примеры формул
Уяснив, почему все же стоит изучать ИНДЕКС ПОИСКПОЗ, давайте перейдем к самому интересному и посмотрим, как можно применить теоретические знания на практике.
Формула для поиска справа налево
Как уже упоминалось, ВПР не может получать значения слева от столбца поиска. Таким образом, если ваши значения поиска не находятся в самом левом столбце, нет никаких шансов, что формула ВПР принесет вам желаемый результат. Функция ПОИСКПОЗ ИНДЕКС в Excel более универсальна и не имеет особого значения, где расположены столбцы поиска и возврата.
Для этого примера мы добавим столбец «Ранг» слева от нашей основной таблицы и попытаемся выяснить, какое место занимает столица России по численности населения среди других перечисленных столиц.
Записав искомое значение в G1, используйте следующую формулу для поиска в C2:C10 и возврата соответствующего значения из A2:A10:
=ИНДЕКС(A2:A10; ПОИСКПОЗ(G1;C2:C10;0))
Совет. Если вы планируете использовать формулу ПОИСКПОЗ ИНДЕКС более чем для одной ячейки, обязательно зафиксируйте оба диапазона абсолютными ссылками (например, $A$2:$A$10 и $C$2:$C$10), чтобы они не изменялись при копировании формулы.
Двусторонний поиск в строках и столбцах
В приведенных выше примерах мы использовали ИНДЕКС ПОИСКПОЗ вместо классической функции ВПР, чтобы вернуть значение из точно указанного столбца. Но что, если вам нужно искать в нескольких строках и столбцах? То есть, сначала нужно найти подходящий столбец, а уж потом извлечь из него значение? Другими словами, что, если вы хотите выполнить так называемый матричный или двусторонний поиск?
Это может показаться сложным, но формула очень похожа на базовую функцию ПОИСКПОЗ ИНДЕКС в Excel, но с одним отличием.
Просто используйте две функции ПОИСКПОЗ, вложенных друг в друга: одну – для получения номера строки, а другую – для получения номера столбца.
ИНДЕКС(массив; ПОИСКПОЗ(значение_поиска1 ; столбец_поиска ; 0); ПОИСКПОЗ(значение_поиска2 ; столбец_поиска ; 0))
А теперь, пожалуйста, взгляните на приведенную ниже таблицу и давайте составим формулу двумерного поиска, чтобы найти население (в миллионах) в данной стране за данный год.
С целевой страной в G1 (значение_поиска1) и целевым годом в G2 (значение_поиска2) формула принимает следующий вид:
=ИНДЕКС(B2:D11; ПОИСКПОЗ(G1;A2:A11;0); ПОИСКПОЗ(G2;B1:D1;0))
Как работает эта формула?
Всякий раз, когда вам нужно понять сложную формулу Excel, разделите ее на более мелкие части и посмотрите, что делает каждая отдельная функция:
ПОИСКПОЗ(G1;A2:A11;0); – ищет в A2:A11 значение из ячейки G1 («США») и возвращает его позицию, которая равна 3.
ПОИСКПОЗ(G2;B1:D1;0) – просматривает диапазон B1:D1, чтобы получить позицию значения из ячейки G2 («2015»), которая равна 3.
Найденные выше номера строк и столбцов становятся соответствующими аргументами функции ИНДЕКС:
ИНДЕКС(B2:D11, 3, 3)
В результате вы получите значение на пересечении 3-й строки и 3-го столбца в диапазоне B2:D11, то есть из D4. Несложно?
ИНДЕКС ПОИСКПОЗ для поиска по нескольким условиям
Если у вас была возможность прочитать наши материалы по ВПР в Excel, вы, вероятно, уже протестировали формулу для ВПР с несколькими условиями . Однако существенным недостатком этого подхода является необходимость добавления вспомогательного столбца. Хорошей новостью является то, что функция ПОИСКПОЗ ИНДЕКС в Excel также может выполнять поиск по нескольким условиям без изменения или реструктуризации исходных данных!
Вот общая формула ИНДЕКС ПОИСКПОЗ с несколькими критериями:
{=ИНДЕКС( диапазон_возврата; ПОИСКПОЗ (1; ( критерий1 = диапазон1 ) * ( критерий2 = диапазон2 ); 0))}
Примечание. Это формула массива , которую необходимо вводить с помощью сочетания клавиш Ctrl + Shift + Enter
.
Предположим, что в таблице ниже вы хотите найти значение на основе двух критериев: Покупатель и Товар.
Следующая формула ИНДЕКС ПОИСКПОЗ отлично работает:
=ИНДЕКС(C2:C10; ПОИСКПОЗ(1; (F1=A2:A10) * (F2=B2:B10); 0))
Где C2:C10 — это диапазон, из которого возвращается значение, F1 — это критерий1, A2:A10 — это диапазон для сравнения с критерием 1, F2 — это критерий 2, а B2:B10 — это диапазон для сравнения с критерием 2.
Не забудьте правильно ввести формулу, нажав Ctrl + Shift + Enter, и Excel автоматически заключит ее в фигурные скобки, как показано на скриншоте ниже:
Рис5
Если вы не хотите использовать формулы массива, добавьте в формулу в F4 еще одну функцию ИНДЕКС и завершите ее ввод обычным нажатием Enter:
=ИНДЕКС(C2:C10; ПОИСКПОЗ(1; ИНДЕКС((F1=A2:A10) * (F2=B2:B10); 0; 1); 0))
Разберем пошагово, как это работает.
Здесь используется тот же подход, что и в обычном сочетании ИНДЕКС ПОИСКПОЗ, где просматривается один столбец. Чтобы оценить несколько критериев, вы создаете два или более массива значений ИСТИНА и ЛОЖЬ, которые представляют совпадения и несовпадения для каждого отдельного критерия, а затем перемножаете соответствующие элементы этих массивов. Операция умножения преобразует ИСТИНА и ЛОЖЬ в 1 и 0 соответственно и создает массив, в котором единицы соответствуют строкам, которые удовлетворяют всем условиям. Функция ПОИСКПОЗ со значением поиска 1 находит первую «1» в массиве и передает ее позицию в ИНДЕКС, которая возвращает значение в этой позиции из указанного столбца.
Вторая формула без массива основана на способности функции ИНДЕКС работать с массивами. Второй вложенный ИНДЕКС имеет 0 в номер_строки , так что он будет передавать весь массив столбцов в ПОИСКПОЗ.
Среднее, максимальное и минимальное значение при помощи ИНДЕКС ПОИСКПОЗ
Microsoft Excel имеет специальные функции для поиска минимального, максимального и среднего значения в диапазоне. Но что, если вам нужно получить значение из другой ячейки, связанной с этими значениями? Например, получить название города с максимальным населением или узнать товар с минимальными продажами? В этом случае используйте функцию МАКС , МИН или СРЗНАЧ вместе с ИНДЕКС ПОИСКПОЗ.
Максимальное значение.
Предположим, нам нужно в списке городов найти столицу с самым большим населением. Чтобы найти наибольшее значение в столбце С и вернуть соответствующее ему значение из столбца В, находящееся в той же строке, используйте эту формулу:
=ИНДЕКС(B2:B10; ПОИСКПОЗ(МАКС(C2:C10); C2:C10; 0))
Скриншот с примером находится чуть ниже.
Минимальное значение
Теперь найдём город с самым маленьким населением в списке. Чтобы найти наименьшее число в столбце С и получить соответствующее ему значение из столбца В:
=ИНДЕКС(B2:B10; ПОИСКПОЗ(МИН(C2:C10); C2:C10; 0))
Ближайшее к среднему
Теперь мы находим город, население которого наиболее близко к среднему значению. Чтобы вычислить позицию, наиболее близкую к среднему значению показателя, рассчитанному из D2:D10, и получить соответствующее значение из столбца C, используйте следующую формулу:
=ИНДЕКС(B2:B10; ПОИСКПОЗ(СРЗНАЧ(C2:C10); C2:C10; -1 ))
В зависимости от того, как организованы ваши данные, укажите 1 или -1 для третьего аргумента (тип_совпадения) функции ПОИСКПОЗ:
- Если ваш столбец поиска (столбец D в нашем случае) отсортирован по возрастанию , поставьте 1. Формула вычислит наибольшее значение, которое меньше или равно среднему значению.
- Если ваш столбец поиска отсортирован по убыванию , введите -1. Формула вычислит наименьшее значение, которое больше или равно среднему значению.
- Если ваш массив поиска содержит значение , точно равное среднему, вы можете ввести 0 для точного совпадения. Никакой сортировки не требуется.
В нашем примере данные в столбце D отсортированы в порядке убывания, поэтому мы используем -1 для типа соответствия. В результате мы получаем «Токио», так как его население (13 189 000) является ближайшим, превышающим среднее значение (12 269 006).
Что делать с ошибками поиска?
Как вы, наверное, заметили, если формула ИНДЕКС ПОИСКПОЗ в Excel не может найти искомое значение, она выдает ошибку #Н/Д. Если вы хотите заменить это стандартное сообщение чем-то более информативным, оберните формулу ПОИСКПОЗ ИНДЕКС в функцию ЕСНД . Например:
=ЕСНД(ИНДЕКС(C2:C10; ПОИСКПОЗ(F1;A2:A10;0)); «Не найдено»)
И теперь, если кто-то вводит значение, которое не существует в диапазоне поиска, формула явно сообщит пользователю, что совпадений не найдено:
Если вы хотите перехватывать все ошибки, а не только #Н/Д, используйте функцию ЕСЛИОШИБКА вместо ЕСНД:
=ЕСЛИОШИБКА(ИНДЕКС(C2:C10; ПОИСКПОЗ(F1;A2:A10;0)); «Что-то пошло не так!»)
Пожалуйста, имейте в виду, что во многих ситуациях было бы не совсем правильно скрывать все такие ошибки, потому что они предупреждают вас о возможных проблемах в вашей формуле.
Итак, еще раз об основных преимуществах формулы ИНДЕКС ПОИСКПОЗ.
-
Возможен ли «левый» поиск?
-
Повлияет ли на результат вставка и удаление столбцов?
Вы можете вставлять и удалять столько столбцов, сколько хотите. На результат ИНДЕКС ПОИСКПОЗ это не повлияет.
-
Возможен ли поиск по строкам и столбцам?
Можно сначала найти подходящий столбец, а уж потом извлечь из него значение. Общий вид формулы:
ИНДЕКС(массив; ПОИСКПОЗ(значение_поиска1 ; столбец_поиска ; 0); ПОИСКПОЗ(значение_поиска2 ; столбец_поиска ; 0))
Подробную инструкцию смотрите здесь. -
Как сделать поиск ИНДЕКС ПОИСКПОЗ по нескольким условиям?
Можно выполнять поиск по двум или более условиям без добавления дополнительных столбцов. Вот формула массива, которая решит проблему:
{=ИНДЕКС( диапазон_возврата; ПОИСКПОЗ (1; ( критерий1 = диапазон1 ) * ( критерий2 = диапазон2 ); 0))}
Вот как можно использовать ИНДЕКС и ПОИСКПОЗ в Excel. Я надеюсь, что наши примеры формул окажутся полезными для вас.
Вот еще несколько статей по этой теме:
Batherd Пользователь Сообщений: 5 |
Есть два столбца http://c2n.me/3frzj6S 1 Столбик — 2514 строк Изменено: Batherd — 03.04.2015 16:02:53 |
ВПР? Зайти по ссылке не могу…навскидку написал. Изменено: alexthegreat — 03.04.2015 15:40:19 |
|
Batherd Пользователь Сообщений: 5 |
#3 03.04.2015 15:45:12 Там скриншот
Изменено: Batherd — 03.04.2015 15:51:12 |
|
vikttur Пользователь Сообщений: 47199 |
Форум по Excel, а Вы гоняете людей картинки смотреть! |
Batherd Пользователь Сообщений: 5 |
|
vikttur Пользователь Сообщений: 47199 |
Представьте. |
Batherd Пользователь Сообщений: 5 |
#7 03.04.2015 16:00:34
Представил Изменено: Batherd — 03.04.2015 16:01:05 |
||
vikttur Пользователь Сообщений: 47199 |
Хорошо. Теперь зайдите в правила и почитайте. |
Batherd Пользователь Сообщений: 5 |
#9 03.04.2015 16:02:51
я понял тут также напряжнокак и в самом екселе … |
||
арех Пользователь Сообщений: 324 |
Знаки препинания. п.с. Вам уже советовали ВПР — Кажется все забыли про сводные |
МВТ Пользователь Сообщений: 1198 |
Попробуйте так: =ЕСЛИОШИБКА(ПОИСКПОЗ(B1;Столбец2);»Отсутствует») и протяните вдоль Столбца1. Потом отфильтруйте по «Отсутствует» |
Юрий М Модератор Сообщений: 60570 Контакты см. в профиле |
Batherd
, Вам же сделали уже замечание — не цитируйте без необходимости. |
Hugo Пользователь Сообщений: 23249 |
#13 04.04.2015 00:51:43
ещё вариант — COUNTIF()/СЧЁТЕСЛИ() — у каких будет 0, те отсутсвуют. |
||
TheBestOfTheBest Пользователь Сообщений: 2366 Excel 2010 +PLEX +SaveToDB +PowerQuery |
Решение на SQL запросе к листу Sheet1. На листе «Нет справа» перечень артикулов, которых нет в правой колонке Неизлечимых болезней нет, есть неизлечимые люди. |
JeyCi Пользователь Сообщений: 3357 |
#15 05.04.2015 15:36:29 все варианты не пробовала, но по файлу (пост#14) — есть расхождения по сравнению с таким макросом:
может ТС внесёт ясность по своим данным (проверив их самостоятельно и опубликовав верный ответ) Изменено: JeyCi — 05.04.2015 18:07:14 чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок — обратитесь к собеседнику на ВЫ — ответ на ваш вопрос получите — а остальное вас не касается (п.п.п. на форумах) |
||
The_Prist Пользователь Сообщений: 14181 Профессиональная разработка приложений для MS Office |
Тут макросы лишние. Просто человеку лень выложить нормально файл и прочесть справку Плюс слова «не работает» никак не описывают проблему. Что именно не работает? С чего решили, что не работает? Ошибка появляется или все подтягивается или еще что… Если опираться на то, что есть: Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
JeyCi Пользователь Сообщений: 3357 |
#17 05.04.2015 15:58:06
согласна, просто SQL-подход понравился — захотелось проверить — пока в задумчивости… Изменено: JeyCi — 05.04.2015 15:59:44 чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок — обратитесь к собеседнику на ВЫ — ответ на ваш вопрос получите — а остальное вас не касается (п.п.п. на форумах) |
||
TheBestOfTheBest Пользователь Сообщений: 2366 Excel 2010 +PLEX +SaveToDB +PowerQuery |
#18 05.04.2015 16:11:41
Вопрос философский и одновременно личного характера. Кто-то ловит рыбу сам, кто-то покупает в магазине… Неизлечимых болезней нет, есть неизлечимые люди. |
||
JeyCi Пользователь Сообщений: 3357 |
нашла ошибку в макросе, адаптированном, — исправила свой пост выше Изменено: JeyCi — 05.04.2015 17:32:47 чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок — обратитесь к собеседнику на ВЫ — ответ на ваш вопрос получите — а остальное вас не касается (п.п.п. на форумах) |
TheBestOfTheBest Пользователь Сообщений: 2366 Excel 2010 +PLEX +SaveToDB +PowerQuery |
#20 05.04.2015 17:44:48
Почему вы решили, что AT- X 610-24-BDL-NCBP1 и AT- x 610-24-BDL-NCBP1 — одно и тоже? Менеджер старался, вбивал дважды, а вы говорите «одно и тоже»! ) Неизлечимых болезней нет, есть неизлечимые люди. |
||
JeyCi Пользователь Сообщений: 3357 |
#21 05.04.2015 18:12:44
потому что
p.s. да, если поставить .CompareMode = 0 — отрабатывает как sql Изменено: JeyCi — 05.04.2015 18:17:22 чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок — обратитесь к собеседнику на ВЫ — ответ на ваш вопрос получите — а остальное вас не касается (п.п.п. на форумах) |
||||
У меня есть два столбца в Excel, и я хочу найти (желательно выделить) элементы, которые находятся в столбце B, но не в столбце A.
Какой самый быстрый способ сделать это?
- Выберите список в столбце A
- Щелкните правой кнопкой мыши и выберите Name a Range …
- Введите «ColumnToSearch»
- Нажмите ячейку C1
- Введите эту формулу:
=MATCH(B1,ColumnToSearch,0)
- Перетащите формулу вниз для всех элементов в B
Если формуле не удается найти совпадение, она будет помечена # N/A, в противном случае это будет число.
Если вы хотите, чтобы оно было ИСТИНА для совпадения и ЛОЖЬ для отсутствия совпадения, используйте эту формулу:
=ISNUMBER(MATCH(B1,ColumnToSearch,0))
Если вы хотите вернуть необнаруженное значение и вернуть пустую строку для найденных значений
=IF(ISNUMBER(MATCH(B1,ColumnToSearch,0)),"",B1)
Вот быстрый и грязный метод.
Выделите столбец B и откройте условное форматирование.
Выбор Используйте формулу, чтобы определить, какие ячейки выделить.
Введите следующую формулу, а затем установите предпочитаемый формат.
=countif(A:A,B1)=0
Выберите два столбца. Перейдите к условному форматированию и выберите «Выделить правила ячеек». Выберите Дублировать значения. Когда вы переходите к следующему шагу, вы можете изменить его на уникальные значения. Я просто сделал это, и это сработало для меня.
Взял меня навсегда, чтобы понять это, но это очень просто. Предполагая, что данные начинаются с A2 и B2 (для заголовков), введите эту формулу в C2:
=MATCH(B2,$A$2:$A$287,0)
Затем нажмите и перетащите вниз.
Ячейка с #N/A
означает, что значение непосредственно рядом с ней в столбце B не отображается нигде во всем столбце A.
Обратите внимание, что вам нужно изменить 287 долларов США, чтобы соответствовать всему поисковому массиву в столбце А. Например, если ваши данные в столбце А уменьшаются на 1000 записей, это должно быть 1000 долларов США.
Смотрите мой ответ по формуле массива на листинг A, который не найден в B здесь:
= ЕСЛИОШИБКА (ИНДЕКС ($ A $ 2:$ A $ 1999, MATCH (0, ЕСЛИОШИБКА (ПОИСКПОЗ ($ A $ 2:$ A $ 1999, $ B $ 2:$ B $ 399,0), СЧЕТЕСЛИ ($ C $ 1:$ С1, $ A $ 2:$ A $ 1999)), 0)), «»)
Сравнение двух столбцов имен и возвращение пропущенных имен
Мои требования состояли не в том, чтобы выделить, а в том, чтобы показать все значения, кроме дубликатов в двух столбцах. Я воспользовался решением @ brenton и улучшил его, чтобы показать значения, чтобы я мог использовать данные напрямую:
=IF(ISNA(MATCH(B2,$A$2:$A$2642,0)), A2, "")
Скопируйте его в первую ячейку 3-го столбца и примените формулу по всему столбцу, чтобы в нем были перечислены все элементы из столбца B, которые не перечислены в столбце A.
Спасибо тем, кто поделился своими ответами. Благодаря вашим решениям я смог сделать свой собственный путь.
В моей версии этого вопроса у меня было две колонки для сравнения — полный выпускной класс (Col A) и подмножество этого выпускного класса (Col B). Я хотел быть в состоянии выделить в полном выпускном классе тех студентов, которые были членами подмножества.
Я поместил следующую формулу в третий столбец:
=if(A2=LOOKUP(A2,$B$2:$B$91),1100,0)
Это закодировало большинство моих учеников, хотя и привело к некоторым ошибкам в первых нескольких строках данных.
ответ дан Drew McAllister11
в C1
напишите =if(A1=B1 , 0, 1)
. Затем в Conditional formatting
выберите Data bars
или Color scales
. Это самый простой способ.
ответ дан A.Ramin walyar1
Всё ещё ищете ответ? Посмотрите другие вопросы с метками microsoft-excel microsoft-excel-2007 conditional-formatting.
Самый быстрый ВПР
Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.
В этом случае, правильный выбор функции, применяемой для связывания таблиц, играет решающую роль — разница в производительности между ними, как мы увидим далее, может составлять более 20 раз!
Когда я писал свою первую книжку пять лет назад, то уже делал сравнительный скоростной тест различных способов поиска и подстановки данных функциями ВПР, ИНДЕКС+ПОИСКПОЗ, СУММЕСЛИ и др. С тех пор сменилось три версии Office, появились надстройки Power Query и Power Pivot, кардинально изменившие весь процесс работы с данными. А в прошлом году ещё и обновился вычислительный движок Excel, получив поддержку динамических массивов и новые функции ПРОСМОТРХ, ФИЛЬТР и т.п.
Так что пришла пора снова взяться за секундомер и выяснить — кто же самый быстрый. Ну и, заодно, проверить — какие способы поиска и подстановки данных в Excel вы знаете 🙂
Подопытный кролик
Тест будем проводить на следующем примере:
Это книга Excel с одним листом, где расположены две таблицы: отгрузки (500 000 строк) и прайс-лист (600 строк). Наша задача — подставить цены из прайс-листа в таблицу отгрузок. Для каждого способа будем вводить формулу в ячейку С2 и копировать вниз на весь столбец, замеряя время, которое потребуется Excel, чтобы просчитать весь столбец из полумиллиона ячеек. Полученные значения, безусловно, зависят от множества факторов (поколение процессора, объем оперативной памяти, текущая загрузка системы, версия Office и т.д.), но нам важны не конкретные цифры, а, скорее, их сравнение друг с другом. Важно понимать прожорливость каждого способа и их ограничения.
Способ 1. ВПР
Сначала — классика 🙂 Легендарная функция вертикального просмотра — ВПР (VLOOKUP) , которая приходит в голову первой в подобных ситуациях:
- B2 — искомое значение, т.е. название товара, который мы хотим найти в прайс-листе
- $G$2:$H$600 — закреплённая знаками доллара (чтобы не сползала при копировании формулы вниз) абсолютная ссылка на прайс
- 2 — номер столбца в прайс-листе, откуда мы хотим взять цену
- 0 или ЛОЖЬ — переключение в режим поиска точного соответствия, когда любое некорректное название товара (например, ФОНЕРА) в столбце B в таблице отгрузок приведёт к появлению ошибки #Н/Д как результата работы функции.
Время вычисления = 4,3 сек.
Способ 2. ВПР с выделением столбцов целиком
Многие пользователи, применяя ВПР, во втором аргументе этой функции, где нужно задать поисковую таблицу (прайс), выделяют не ограниченный диапазон ( $G$2:$H$600 ), а сразу столбцы G:H целиком. Это проще, быстрее, позволяет не думать про F4 и то, что завтра прайс-лист может быть на несколько строк больше. Формула в этом случае выглядит тоже компактнее:
В старых версиях Excel такое выделение не сильно влияло на скорость вычислений, но сейчас (неожиданно для меня, признаюсь) результат получился в разы хуже предыдущего.
Время вычисления = 14,5 сек.
Способ 3. ИНДЕКС и ПОИСКПОЗ
Следующей после ВПР ступенью эволюции для многих пользователей Microsoft Excel обычно является переход на использование связки функций ИНДЕКС (INDEX) и ПОИСКПОЗ (MATCH) . Выглядит эта формула так:
Функция ИНДЕКС извлекает из заданного в первом аргументе диапазона (столбца $H$2:$H$600 с ценами в прайс-листе) содержимое ячейки с заданным номером. А номер этот, в свою очередь, определяется функцией ПОИСКПОЗ, у которой три аргумента:
- Что нужно найти — название товара из B2
- Где мы это ищем — столбец с названиями товаров в прайсе ( $G$2:$G$600 )
- Режим поиска: 0 — точный, 1 или -1 — приблизительный с округлением в меньшую или большую сторону, соответственно.
Формула выходит чуть сложнее, но, при этом имеет несколько ощутимых преимуществ перед классической ВПР, а именно:
- Не нужно отсчитывать номер столбца (как в третьем аргументе ВПР).
- Можно извлекать данные, которые находятся левее столбца, где просходит поиск.
По скорости, однако же, этот способ проигрывает ВПР почти в два раза:
Время вычисления = 7,8 сек.
Если же, вдобавок, полениться и выделять не ограниченные диапазоны, а столбцы целиком:
. то результат получается совсем печальный:
Время вычисления = 28,5 сек.
28 секунд, Карл! В 6 раз медленнее ВПР!
Способ 4. СУММЕСЛИ
Если нужно найти не текстовые, а именно числовые данные (как в нашем случае — цену), то вместо ВПР вполне можно использовать функцию СУММЕСЛИ (SUMIF) . Изначально она задумывалась как инструмент для выборочного суммирования данных по условию (найди и сложи мне все продажи кабелей, например), но можно заставить её искать нужный нам товар и в прайс-листе. Если грузы в нём не повторяются, то суммировать будет не с чем и эта функция просто выведет искомое значение:
- Первый аргумент СУММЕСЛИ — это диапазон проверяемых ячеек, т.е. названия товаров в прайсе ( $G$2:$G$600 ).
- Второй аргумент ( B2 ) — что мы ищем.
- Третий аргумент — диапазон ячеек с ценами $H$2:$H$600 , числа из которых мы хотим просуммировать, если в соседних ячейках проверяемого диапазона есть искомое значение.
Очевидным минусом такого подхода является то, что он работает только с числами. Также этот способ не удобен, если прайс-лист находится в отдельном файле — придется всё время держать его открытым, т.к. функция СУММЕСЛИ не умеет брать данные из закрытых книг, в отличие от ВПР, для которой это не проблема.
В плюсы же можно записать удобство при поиске сразу по нескольким столбцам — для этого идеально подходит более продвинутая версия этой функции — СУММЕСЛИМН (SUMIFS) . Скорость вычислений же, при этом, весьма посредственная:
Время вычисления = 12,8 сек.
При выделении столбцов целиком, т.е. использовании формулы вида =СУММЕСЛИ( G:G ; B2 ; H:H ) всё ещё хуже:
Время вычисления = 41,7 сек.
Это самый плохой результат в нашем тесте.
Способ 5. СУММПРОИЗВ
Этот подход сейчас встречается не часто, но всё ещё достаточно регулярно. Обычно так любят извращаться пользователи старой школы, ещё хорошо помнящие те времена, когда в Excel было всего 255 столбцов и 56 цветов 🙂
Суть этого метода заключается в использовании функции СУММПРОИЗВ (SUMPRODUCT) , изначально предназначенной для поэлементного перемножения нескольких диапазонов с последующим суммированием полученных произведений. В нашем случае, вместо одного из массивов будет выступать условие, а вторым будут цены:
Выражение ($G$2:$G$600=B2) , по сути, проверяет каждое название груза в прайс-листе на предмет соответствия искомому значению (ФАНЕРА ПР). Результатом каждого сравнения будет логическое значение ИСТИНА (TRUE ) или ЛОЖЬ (FALSE) , что в Excel интерпретируется как 1 и 0, соответственно. Последующее умножение этих нулей и единиц на цены оставит в живых цену только того товара, который нам, в данном случае, и нужен.
Эта формула является, по сути, формулой массива, но не требует нажатия обычного для них сочетания клавиш Ctrl + Shift + Enter , т.к. функция СУММПРОИЗВ поддерживает массивы уже сама по себе. Возможно, по этой же причине (формулы массива всегда медленнее, чем обычные) такой скорость пересчёта такой формулы — не очень:
Время вычисления = 11,8 сек.
- Совместимость с любыми, самыми древними версиями Excel.
- Возможность задавать сложные условия (и несколько)
- Способность этой формулы работать с данными из закрытых файлов, если добавить перед ней двойное бинарное отрицание (два подряд знака «минус»). СУММЕСЛИМН таким похвастаться не может.
Способ 6. ПРОСМОТР
Ещё один относительно экзотический способ поиска и подстановки данных, наравне с ВПР — это использование функции ПРОСМОТР (LOOKUP) . Только не перепутайте её с новой, буквально, на днях появившейся функцией ПРОСМОТРХ (XLOOKUP) — про неё мы поговорим дальше особо. Функция ПРОСМОТР существовала в Excel начиная с самых ранних версий и тоже вполне может решить нашу задачу:
- B2 — название груза, которое мы ищем
- $G$2:$G$600 — одномерный диапазон-вектор (столбец или строка), где мы ищем совпадение
- $H$2:$H$600 — такого же размера диапазон, откуда нужно вернуть найденный результат (цену)
На первый взгляд всё выглядит очень удобно и логично, но всю картину портят два неочевидных момента:
- Эта функция требует обязательной сортировки прайс-листа по возрастанию (алфавиту) и без этого не работает.
- Если в таблице отгрузок искомое значение будет написано с опечаткой (например, АГ Е ДОЛ вместо АГИДОЛ), то функция ПРОСМОТР выдаст не ошибку #Н/Д, а цену для ближайшего предыдущего товара:
При работе с неидеальными данными в реальном мире это гарантированно создаст проблемы, как вы понимаете.
Скорость же вычислений у функции ПРОСМОТР (LOOKUP) весьма приличная:
Время вычисления = 7,6 сек.
Способ 7. Новая функция ПРОСМОТРХ
Эта функция пришла с одним из недавних обновлений пока только пользователям Office 365 и пока отсутствует во всех остальных версиях (Excel 2010, 2013, 2016, 2019). По сравнению с классической ВПР у этой функции есть масса преимуществ (упрощенный синтаксис, возможность искать не только сверху-вниз, возможность сразу задать значение вместо #Н/Д и т.д.) Формула для решения нашей задачи будет выглядеть в этом случае так:
Если не брать в расчёт необязательные 4,5,6 аргументы, то синтаксис этой функции полностью совпадает с её предшественником — функцией ПРОСМОТР (LOOKUP) . Скорость вычислений при тестировании на наши 500000 строк тоже оказалась аналогичной:
Время вычисления = 7,6 сек.
Почти в два раза медленнее, чем у ВПР, вместо которой Microsoft предлагает теперь использовать ПРОСМОТРХ. Жаль.
И, опять же, если полениться и выделить диапазоны в прайс-листе целыми столбцами:
. то скорость падает до совершенно неприличных уже значений:
Время вычисления = 28,3 сек.
А если на динамических массивах?
Прошлогоднее (осень 2019) обновление вычислительного движка Microsoft Excel добавило ему поддержку динамических массивов (Dynamic Arrays), о которых я уже писал. Это принципиально новый подход к работе с данными, который можно использовать почти с любыми классическими функциями Excel. На примере ВПР это будет выглядеть так:
Разница с классическим вариантом в том, что первым аргументом ВПР здесь выступает не одно искомое значение (а формулу потом нужно копировать вниз на остальные строки), а сразу весь массив из полумиллиона грузов B2:B500000, цены для которых мы хотим найти. Формула при этом сама распространяется вниз, занимая требуемое количество ячеек.
Скорость пересчета в таком варианте меня, откровенно говоря, ошеломила — пауза между нажатием на Enter после ввода формулы и получением результатов почти отсутствовала.
Время вычисления = 1 сек.
Что интересно, и новая ПРОСМОТРХ, и старая ПРОСМОТР, и связка ИНДЕКС+ПОИСКПОЗ в таком режиме тоже были очень быстрыми — время вычислений не больше 1 секунды! Фантастика.
А вот олдскульные подходы на основе СУММПРОИЗВ и СУММЕСЛИ(МН) с динамическими массивами работать отказались 🙁
Что с умными таблицами?
Обрадовавшись фантастическим результатам, полученным на динамических массивах, я решил вдогон попробовать протестировать разницу в скорости при работе с обычными и «умными» таблицами. Я имею ввиду те самые «красивые таблицы», в которые вы можете преобразовать ваш диапазон с помощью команды Форматировать как таблицу на вкладке Главная (Home — Format as Table) или с помощью сочетания клавиш Ctrl + T .
Если предварительно превратить наши отгрузки и прайс в «умные» (по умолчанию они получат имена Таблица1 и Таблица2, соответственно), то формула с той же ВПР будет выглядеть как:
- [@Груз] — ссылка на ячейку B2, означающая, в данном случае, что нужно взять значение из той же строки из столбца Груз текущей умной таблицы.
- Таблица2 — ссылка на прайс-лист
Жирным плюсом такого подхода будет возможность легко добавлять данные в наши таблицы в будущем. При дописывании новых строк в отгрузки или к прайс-листу, наши «умные» таблицы будут растягиваться автоматически.
Скорость же, как выяснилось, тоже вырастает очень значительно и примерно равна скорости работы на динамических массивах:
Время вычисления = 1 сек.
У меня есть подозрение, что дело тут не в самих «умных» таблицах, а всё в том же обновлении вычислительного движка, т.к. на старых версиях Excel такого прироста в скорости на умных таблицах я не помню.
Бонус. Запрос Power Query
Замерять, так замерять! Давайте, для полноты картины, сравним наши перечисленные способы еще и с запросом Power Query, который тоже может решить нашу задачу. Кто-то скажет, что некорректно сравнивать пересчёт формул с механизмом обновления запроса, но мне, откровенно говоря, просто самому было интересно — кто быстрее?
- Превращаем обе наши таблицы в «умные» с помощью команды Форматировать как таблицу на вкладке Главная (Home — Format as Table) или с помощью сочетания клавиш Ctrl + T .
- По очереди загружаем таблицы в Power Query с помощью команды Данные — Из таблицы / диапазона (Data — From Table/Range) .
- После загрузки в Power Query возвращаемся обратно в Excel, оставляя загруженные данные как подключение. Для этого в окне Power Query выбираем Главная — Закрыть и загрузить — Закрыть и загрузить в. — Только создать подключение (Home — Close&Load — Close&Load to. — Only create connection) .
- После того, как обе исходные таблицы будут загружены как подключения, создадим ещё один, третий запрос, который будет объединять их между собой, подставляя цены из прайса в отгрузки. Для этого на вкладке Данные выберем Получить данные / Создать запрос — Объединить запросы — Объединить (Get Data / New Query — Merge queries — Merge) :
В отличие от формул, запросы Power Query не обновляются автоматически «на лету», а требуют щелчка правой кнопкой мыши по таблице (или запросу в правой панели) и выбору команды Обновить (Refresh) . Также можно воспользоваться командой Обновить все (Refresh All) на вкладке Данные (Data) .
Время обновления = 8,2 сек.
Итоговая таблица и выводы
Если вы честно дочитали до этого места, то какие-то выводы, наверное, уже сделали самостоятельно. Если же пропустили все детали и сразу перешли к итогам, то вот вам общая результирующая таблица по скорости всех методов:
Само-собой, у каждого из нас свои предпочтения, задачи и тараканы, но для себя я сформулировал выводы после этого тестирования так:
ВПР с несколькими условиями: 5 примеров.
Очень часто наши требования к поиску данных не ограничиваются одним условием. К примеру, нам нужна выручка по магазину за определенный месяц, количество конкретного товара, проданного определенному покупателю и т.д. Обычными средствами функции ВПР эту задачу решить сложно и даже не всегда возможно. Ведь там предусмотрено использование только одного критерия поиска.
Мы предложим вам несколько вариантов решения проблемы поиска по нескольким условиям.
ВПР по нескольким условиям с использованием дополнительного столбца.
Задачу, рассмотренную в предыдущем примере, можно решить и другим способом – без использования формулы массива. Ведь работа с массивами многим представляется сложной и недоступной для понимания. Дополнительный столбец для поиска по нескольким условиям будет в определенном отношении более простым вариантом.
Итак, необходимо выбрать значение выручки за определенный месяц, год и по нужному магазину. В итоге имеем 3 условия отбора.
Сразу по трем столбцам функция ВПР искать не может. Поэтому нам нужно объединить их в один. И, поскольку поиск производится всегда в крайнем левом (первом) столбце, то нужно добавить его в нашу таблицу тоже слева.
Вставляем перед таблицей с данными дополнительный столбец A. Затем при помощи оператора & объединяем в нем содержимое B,C и D. Записываем в А7
и копируем в находящиеся ниже ячейки.
Формула поиска в D4 будет выглядеть:
В диапазон поиска включаем и наш дополнительный столбец. Критерий поиска – также объединение 3 значений. И извлекаем результат из 5 колонки.
Все работает, однако вид несколько портит дополнительный столбец. В крайнем случае, его можно скрыть, используя контекстное меню по нажатию правой кнопки мыши.
Вид станет приятнее, а на результаты это никак не повлияет.
ВПР по двум условиям при помощи формулы массива.
У нас есть таблица, в которой записана выручка по каждому магазину за день. Мы хотим быстро найти сумму продаж по конкретному магазину за определенный день.
Для этого в верхней части нашего листа запишем критерии поиска: дата и магазин. В ячейке B3 будем выводить сумму выручки.
Формула в B3 выглядит следующим образом:
Обратите внимание на фигурные скобки, которые означают, что это формула массива. То есть наша функция ВПР работает не с отдельными значениями, а разу с массивами данных.
Разберем процесс подробно.
Мы ищем дату, записанную в ячейке B1. Но вот только разыскивать мы ее будем не в нашем исходном диапазоне данных, а в немного видоизмененном. Для этого используем условие
То есть, в том случае, если наименование магазина совпадает с критерием в ячейке B2, мы оставляем исходные значения из нашего диапазона. А если нет – заменяем их на пробелы. И так по каждой строке.
В результате получим вот такой виртуальный массив данных на основе нашей исходной таблицы:
Как видите, строки, в которых ранее был «Магазин 1», заменены на пустые. И теперь искать нужную дату мы будем только среди информации по «Магазин 2». И извлекать значения выручки из третьей колонки.
С такой работой функция ВПР вполне справится.
Такой ход стал возможен путем применения формулы массива. Поэтому обратите особое внимание: круглые скобки в формуле писать руками не нужно! В ячейке B3 вы записываете формулу
И затем нажимаете комбинацию клавиш CTRL+Shift+Enter. При этом Excel поймет, что вы хотите ввести формулу массива и сам подставит скобки.
Таким образом, функция ВПР поиск по двум столбцам производит в 2 этапа: сначала мы очищаем диапазон данных от строк, не соответствующих одному из условий, при помощи функции ЕСЛИ и формулы массива. А затем уже в этой откорректированной информации производим обычный поиск по одному только второму критерию при помощи ВПР.
Чтобы упростить работу в будущем и застраховать себя от возможных ошибок при добавлении новой информации о продажах, мы рекомендуем использовать «умную» таблицу. Она автоматически подстроит свой размер с учетом добавленных строк, и никакие ссылки в формулах не нужно будет менять.
Вот как это будет выглядеть.
ВПР по нескольким критериям с применением массивов — способ 2.
Выше мы уже рассматривали, как при помощи формулы массива можно организовать поиск ВПР с несколькими условиями. Предлагаем еще один способ.
Условия возьмем те же, что и в предыдущем примере.
Формулу в С4 введем такую:
Естественно, не забываем нажать CTRL+Shift+Enter.
Теперь давайте пошагово разберем, как это работает.
Наше задача здесь – также создать дополнительный столбец для работы функции ВПР. Только теперь мы создаем его не на листе рабочей книги Excel, а виртуально.
Как и в предыдущем примере, мы ищем текст из объединенных в одно целое условий поиска.
Далее определяем данные, среди которых будем искать.
Конструкция вида A7:A20&B7:B20&C7:C20;D7:D20 создает 2 элемента. Первый – это объединение колонок A, B и C из исходных данных. Если помните, то же самое мы делали в нашем дополнительном столбце. Второй D7:D20 – это значения, одно из которых нужно в итоге выбрать.
Функция ВЫБОР позволяет из этих элементов создать массив. как раз и означает, что нужно взять сначала первый элемент, затем второй, и объединить их в виртуальную таблицу – массив.
В первой колонке этой виртуальной таблицы мы будем искать, а из второй – извлекать результат.
Таким образом, для работы функции ВПР с несколькими условиями мы вновь используем дополнительный столбец. Только создаем его не реально, а виртуально.
Двойной ВПР при помощи ИНДЕКС + ПОИСКПОЗ
Далее речь у нас пойдет уже не о функции ВПР, но задачу мы будем решать ту же самую. В качестве критерия поиска нам опять нужно использовать несколько условий.
Формула в С4 теперь выглядит так:
И не забываем при вводе нажать CTRL+Shift+Enter! Это формула массива.
Теперь давайте разбираться, как это работает.
Функция ИНДЕКС в нашем случае позволяет извлечь элемент из списка по его порядковому номеру. Список – это диапазон D7:D20, где записаны суммы выручки. А вот порядковый номер, который нужно извлечь, мы определяем при помощи ПОИСКПОЗ.
Синтаксис здесь следующий:
ПОИСКПОЗ(что_ищем; где_ищем; тип_поиска)
Тип поиска ставим 0, то есть точное совпадение. В нашем случае мы будем искать 1. Далее мы определим массив, в котором будем работать.
Выражение (A7:A20=C1)*(B7:B20=C2)*(C7:C20=C3) позволит создать виртуальную таблицу примерно такого вида:
Как видите, первоначально мы последовательно сравниваем каждое значение с нашим критерием отбора. В столбце А у нас записаны месяцы – сравниваем их с месяцем-критерием из ячейки C1. В случае совпадения получаем ИСТИНА, иначе – ЛОЖЬ. Аналогично последовательно проверяем год и название магазина. А затем просто перемножаем значения. Поскольку логические переменные для Excel – это либо 0, либо 1, то произведение их может быть равно 1 только в том случае, если мы имеем по каждой колонке ИСТИНА (то есть,1). Во всех остальных случаях получаем 0.
Убеждаемся, что цифра 1 встречается только единожды.
При помощи ПОИСКПОЗ определяем, на какой позиции она находится. На какой позиции находится 1, на той же позиции находится в массиве и искомая сумма выручки. В нашем случае это 10-я.
Далее при помощи ИНДЕКС извлекаем 10-ю по счету выручку.
Таким образом мы выбрали значение по нескольким условиям без использования функции ВПР.
Достойная замена – функция СУММПРОИЗВ.
У нас есть данные о продажах нескольких менеджеров в различных регионах. Нужно сделать выборку по дате, менеджеру и региону.
Работает как формула массива, хотя по факту таковой не является. В этом заключается замечательное свойство функции СУММПРОИЗВ, о которой мы еще много будем говорить в других статьях.
Последовательно по каждой строке диапазона от 2-й до 27-й она проверяет совпадение каждого соответствующего значения с критерием поиска. Эти результаты перемножаются между собой и в итоге еще умножаются на сумму выручки. Если среди трех условий будет хотя бы одно несовпадение, то итогом будет 0. В случае совпадения сумма выручки трижды умножится на 1.
Затем все эти 27 произведений складываются, и результатом будет выручка нужного менеджера в каком-то регионе за определенную дату.
В качестве бонуса можно продолжить этот пример и рассчитать общую сумму продаж менеджера в определенном регионе.
Для этого из формулы просто уберем сравнение по дате.
Кстати, возможен и другой вариант расчета с этой же функцией:
Итак, мы рассмотрели примеры использования функции ВПР с двумя и с несколькими условиями. А также обнаружили, что этой ценной функции есть замечательная альтернатива.
Примеры использования функции ВПР:
Как объединить две или несколько таблиц в Excel — В этом руководстве вы найдете некоторые приемы объединения таблиц Excel путем сопоставления данных в одном или нескольких столбцах. Как часто при анализе в Excel вся необходимая информация собирается на одном…
2 способа извлечь данные из разных таблиц при помощи ВПР. — Задача: Данные, которые нужно найти и извлечь при помощи функции ВПР, находятся в нескольких таблицах. Эти таблицы имеют одинаковую структуру (то есть, одни и те же столбцы, расположенные в одном…
/> Вычисление номера столбца для извлечения данных в ВПР — Задача: Наиболее простым способом научиться указывать тот столбец, из которого функция ВПР будет извлекать данные. При этом мы не будем изменять саму формулу, поскольку это может привести в случайным ошибкам.…
4 способа, как сделать левый ВПР в Excel. — Функция ВПР – одна из самых популярных, когда нужно найти и извлечь из таблицы какие-либо данные. Но при этом она имеет один существенный недостаток. Поиск она производит в крайнем левом…
Формула ВПР в Excel для сравнения двух таблиц — 4 способа — Сравнение таблиц – это задача, которую в Excel приходится довольно часто решать. Например, у нас есть старый прайс-лист и его новая версия. Нужно просмотреть, цены на какие товары изменились и…
Почему не работает ВПР в Excel? — Функция ВПР – это очень мощный инструмент поиска. Но если он по каким-то причинам завершился неудачно, то вы получите сообщение об ошибке #Н/Д (#N/A в английском варианте). Давайте постараемся вместе…
Функция ВПР в Excel: пошаговая инструкция с 5 примерами — ВПР — это функция Excel для поиска и извлечения данных из определенного столбца в таблице. Она поддерживает приблизительное и точное сопоставление, а также подстановочные знаки (* и ?). Значения поиска…
Формула ВПР в Excel — 22 факта, которые нужно знать. — В процессе работы в Excel часто возникает задача извлечения нужных данных из рабочих таблиц. Для этой цели в Excel предусмотрена формула ВПР (VLOOKUP в английском варианте). И хотя ВПР относительно…
Суть запроса на выборку – выбрать из исходной таблицы строки, удовлетворяющие определенным критериям (подобно применению стандартного Фильтра ). Произведем отбор значений из исходной таблицы с помощью формул массива . В отличие от применения Фильтра ( CTRL+SHIFT+L или Данные/ Сортировка и фильтр/ Фильтр ) отобранные строки будут помещены в отдельную таблицу.
В этой статье рассмотрим наиболее часто встречающиеся запросы, например: отбор строк таблицы, у которых значение из числового столбца попадает в заданный диапазон (интервал); отбор строк, у которых дата принаждежит определенному периоду; задачи с 2-мя текстовыми критериями и другие. Начнем с простых запросов.
1. Один числовой критерий (Выбрать те Товары, у которых цена выше минимальной)
Пусть имеется Исходная таблица с перечнем Товаров и Ценами (см. файл примера, лист Один критерий — число ).
Необходимо отобразить в отдельной таблице только те записи (строки) из Исходной таблицы, у которых цена выше 25.
Решить эту и последующие задачи можно легко с помощью стандартного фильтра . Для этого выделите заголовки Исходной таблицы и нажмите CTRL+SHIFT+L . Через выпадающий список у заголовка Цены выберите Числовые фильтры. , затем задайте необходимые условия фильтрации и нажмите ОК.
Будут отображены записи удовлетворяющие условиям отбора.
Другим подходом является использование формул массива . В отличие от фильтра отобранные строки будут помещены в отдельную таблицу — своеобразный Отчет , который, например, можно отформатировать в стиль отличный от Исходной таблицы или производить другие ее модификации.
Критерий (минимальную цену) разместим в ячейке Е6 , таблицу для отфильтрованных данных — в диапазоне D10:E19 .
Теперь выделим диапазон D11:D19 (столбец Товар) и в Строке формул введем формулу массива :
Вместо ENTER нажмите сочетание клавиш CTRL+SHIFT+ENTER .
Те же манипуляции произведем с диапазоном E11:E19 куда и введем аналогичную формулу массива :
В результате получим новую таблицу, которая будет содержать только товары, у которых цены попадают в интервал, указанный в ячейках Е5 и Е6 .
Чтобы показать динамизм полученного Отчета (Запроса на выборку) введем в Е6 значение 65. В новую таблицу будет добавлена еще одна запись из Исходной таблицы, удовлетворяющая новому критерию.
Если в Исходную таблицу добавить новый товар с Ценой в диапазоне от 25 до 65, то в новую таблицу будет добавлена новая запись.
В файле примера также содержатся формулы массива с обработкой ошибок, когда в столбце Цена содержится значение ошибки, например #ДЕЛ/0! (см. лист Обработка ошибок ).
Следующие задачи решаются аналогичным образом, поэтому не будем их рассматривать так детально.
3. Один критерий Дата (Выбрать те Товары, у которых Дата поставки совпадает заданной)
Пусть имеется Исходная таблица с перечнем Товаров и Датами поставки (см. файл примера, лист Один критерий — Дата ).
Для отбора строк используются формулы массива, аналогичные Задаче1 (вместо критерия =$B$12:$B$20)*(СТРОКА($B$12:$B$20)-СТРОКА($B$11));$J$12-СТРОКА(A12)+СТРОКА($B$11)+1))
Примечание : После ввода формулы вместо клавиши ENTER (ВВОД) нужно нажать сочетание клавиш CTRL+SHIFT+ENTER. Это сочетание клавиш используется для ввода формул массива.
Скопируйте формулу массива вниз на нужное количество ячеек. Формула вернет только те значения Товаров, которые были поставлены в диапазоне указанных дат. В остальных ячейках будут содержаться ошибки #ЧИСЛО! Ошибки в файле примера (Лист 4.Диапазон Дат) скрыты с помощью Условного форматирования .
Аналогичную формулу нужно ввести и для дат в столбец E.
В ячейке J12 вычислено количество строк исходной таблицы, удовлетворяющих критериям:
Решение2 : Для отбора строк можно использовать формулы массива, аналогичные Задаче2 (т.е. формулы массива, возвращающие несколько значений ):
Для ввода первой формулы выделите диапазон ячеек G12:G20 . После ввода формулы вместо клавиши ENTER (ВВОД) нужно нажать сочетание клавиш CTRL+SHIFT+ENTER.
Решение3 : Если столбец Дат СОРТИРОВАН, то можно не использовать формулы массива.
Сначала необходимо вычислить первую и последнюю позиции строк, которые удовлетворяют критериям. Затем вывести строки с помощью функции СМЕЩ() .
Этот пример еще раз наглядно демонстрирует насколько предварительная сортировка данных облегчает написание формул.
5. Один критерий Дата (Выбрать те Товары, у которых Дата поставки не раньше/ не позже заданной)
Пусть имеется Исходная таблица с перечнем Товаров и Датами поставки (см. файл примера, лист Один критерий — Дата (не позже) ).
Для отбора строк, дата которых не раньше (включая саму дату), используется формула массива:
= ИНДЕКС(A12:A20;НАИМЕНЬШИЙ(ЕСЛИ($E$7 C15;И($B$7>=B15;$B$7 =$B$13:$B$21)*($B$13:$B$21>0);СТРОКА($B$13:$B$21);»»);СТРОКА($B$13:$B$21)-СТРОКА($B$12)) -СТРОКА($B$12))
Условие $E$7=$A$13:$A$21 гарантирует, что будут отобраны товары только определенного типа. Условие $E$8>=$B$13:$B$21 гарантирует, что будут отобраны даты не позже заданной (включая). Условие $B$13:$B$21>0 необходимо, если в диапазоне дат имеются пустые ячейки. Знак * (умножение) используется для задания Условия И (все 3 критерия должны выполняться для строки одновременно).
Примечание . Случай, когда список несортирован, рассмотрен в статье Поиск ДАТЫ (ЧИСЛА) ближайшей к заданной, с условием в MS EXCEL. Несортированный список .
7. Один Текстовый критерий (Выбрать Товары определенного вида)
Пусть имеется Исходная таблица с перечнем Товаров и Ценами (см. файл примера, лист Один критерий — Текст ).
Задача решается аналогично Задачам 1 и 3. Более подробное решение см. в статье Поиск ТЕКСТовых значений в MS EXCEL с выводом их в отдельный список. Часть1. Обычный поиск .
8. Два Текстовых критерия (Выбрать Товары определенного вида, поставленные в заданный месяц)
Пусть имеется Исходная таблица с перечнем Товаров и Ценами (см. файл примера, лист 2 критерия — текст (И) ).
Для отбора строк используется формула массива:
Выражение ($F$6=$A$11:$A$19)*($F$7=$B$11:$B$19) задает оба условия (Товар и Месяц).
Выражение СТРОКА(ДВССЫЛ(«A1:A»&ЧСТРОК($A$11:$A$19))) формирует массив последовательных чисел , т.е. номера строк в таблице.
9. Два Текстовых критерия (Выбрать Товары определенных видов)
Пусть имеется Исходная таблица с перечнем Товаров и Ценами (см. файл примера, лист 2 критерия — текст (ИЛИ) ).
В отличие от Задачи 7 отберем строки с товарами 2-х видов ( Условие ИЛИ ).
Для отбора строк используется формула массива:
= ИНДЕКС(A$11:A$19; НАИБОЛЬШИЙ((($E$6=$A$11:$A$19)+($E$7=$A$11:$A$19))*(СТРОКА($A$11:$A$19)-СТРОКА($A$10)); СЧЁТЕСЛИ($A$11:$A$19;$E$6)+СЧЁТЕСЛИ($A$11:$A$19;$E$7)-ЧСТРОК($A$11:A11)+1))
Условие ($E$6=$A$11:$A$19)+($E$7=$A$11:$A$19) гарантирует, что будут отобраны товары только заданных видов из желтых ячеек (Товар2 и Товар3). Знак + (сложение) используется для задания Условие ИЛИ (должен быть выполнен хотя бы 1 критерий).
Вышеуказанное выражение вернет массив . Умножив его на выражение СТРОКА($A$11:$A$19)-СТРОКА($A$10) , т.е. на массив последовательных чисел , получим массив позиций (номеров строк таблицы), удовлетворяющих критериям. В нашем случае это будет массив .
С помощью функции НАИБОЛЬШИЙ() выведем 3 значения из позиции 5 (строка 15 листа), 6 (16) и 7 (17), т.е. значения Товар2, Товар2 и Товар3. Для этого используем выражение СЧЁТЕСЛИ($A$11:$A$19;$E$6)+СЧЁТЕСЛИ($A$11:$A$19;$E$7)-ЧСТРОК($A$11:A11)+1 , которое последовательно (начиная со строки 11) будет возвращать числа 3; 2; 1; 0; -1; -2; . Формула НАИБОЛЬШИЙ(. ;3) вернет число 5, НАИБОЛЬШИЙ(. ;2) вернет число 6, НАИБОЛЬШИЙ(. ;1) вернет число 7, а НАИБОЛЬШИЙ(. ;0) и далее вернет ошибку, которую мы скроем условным форматированием .
И наконец, с помощью функции ИНДЕКС() последовательно выведем наши значения из соответствующих позиций: = ИНДЕКС(A$11:A$19;5) вернет Товар2, = ИНДЕКС(A$11:A$19;6) вернет Товар2, = ИНДЕКС(A$11:A$19;7) вернет Товар3.
10. Отбор значений с учетом повторов
В разделе Отбор на основании повторяемости собраны статьи о запросах с группировкой данных. Из повторяющихся данных сначала отбираются уникальные значения, а соответствующие им значения в других столбцах — группируются (складываются, усредняются и пр.).
Наиболее популярные статьи из этого раздела:
В качестве примера приведем решения следующей задачи: Выбрать Товары, цена которых лежит в определенном диапазоне и повторяется заданное количество раз или более.
В качестве исходной возьмем таблицу партий товаров.
Предположим, что нас интересует сколько и каких партий товаров поставлялось по цене от 1000р. до 2000р. (критерий 1). Причем, партий с одинаковой ценой должно быть минимум 3 (критерий 2).
Решением является формула массива:
Эта формула возвращает номера строк, которые удовлетворяют обоим критериям.
Формула =СУММПРОИЗВ(($C$14:$C$27>=$B$7)*($C$14:$C$27 =$B$10)) подсчитывает количество строк, которые удовлетворяют критериям.
В файле примера на листе «10.Критерий — колич-во повторов» настроено Условное форматирование , которое позволяет визуально определить строки удовлетворяющие критериям, а также скрыть ячейки, в которых формула массива возвращает ошибку #ЧИСЛО!
11. Используем значение критерия (Любой) или (Все)
В фильтре Сводных таблиц MS EXCEL используется значение (Все), чтобы вывести все значения столбца. Другими словами, в выпадающем списке значений критерия содержится особое значение, которое отменяет сам критерий (см. статью Отчеты в MS EXCEL , Отчет №3).
В файле примера на листе «11. Критерий Любой или (Все)» реализован данный вариант критерия.
Формула в этом случае должна содержать функцию ЕСЛИ() . Если выбрано значение (Все), то используется формула для вывода значений без учета данного критерия. Если выбрано любое другое значение, то критерий работает обычным образом.
Остальная часть формулы аналогична рассмотренным выше.
12. Актуальная цена
Пусть для товара ежедневно заполняется таблица цен (цена может меняться, но не каждый день). Нужно найти актуальнуй цену, т.е. цену на последнюю дату. Если товар всего один, то можно отсортировать по дате и в последней строке будет нужная актуальная цена. Если товаров много, то нужно сначала выбрать Автофильтром нужный товар, затем опять отсортировать по цене.
Чтобы иметь перечень товаров с актуальными ценами придется использовать формулы:
2) определяем последнюю (максимальную) дату для каждого товара с помощью формулы массива =МАКС((Таблица1[товар]=E8)*Таблица1[дата])
3) наконец, выводим актуальную цену =СУММЕСЛИМН(Таблица1[цена];Таблица1[товар];E8;Таблица1[дата];F8)
Для товара не должно быть повторов дат, иначе цены будут суммироваться (если повторяется последняя дата).
Поиск в программе Microsoft Excel
Смотрите также=ПСТР(A3;1;НАЙТИ(» №»;A3;1)-1)К языкам, поддерживающим БДЦС,/ на листе искать,0))Результат: BeijingВПР+СУММA1:C10(номер_строки) и быть упорядочен по(массив) – это «объем.», с которого следует будут отображены все написание этого слова виде списка в
В документах Microsoft Excel,Выделяет текст от позиции
Поисковая функция в Excel
относятся японский, китайскийПОИСКПОЗLookup table=ИНДЕКС(Ваша таблица,(MATCH(значение для вертикального2.. Дело в том,, и требуется извлечьcolumn_num убыванию, то есть
Способ 1: простой поиск
диапазон ячеек, изДоход: объем начать поиск. ячейки, в которых с большой буквы, нижней части поискового которые состоят из 1 до знака (упрощенное письмо), китайский
- сообщает об ошибкерасположены в произвольном поиска,столбец, в которомMIN что проверка каждого данные из столбца(номер_столбца) функции от большего к которого необходимо извлечь=ПСТР(A3;ПОИСК(» «;A3)+1,4)Функции находятся данные слова как это было окна. В этом большого количества полей, «№» в ячейке (традиционное письмо) и
- #N/A порядке. искать,0)),(MATCH(значение для горизонтального(МИН). Формула находит значения в массивеBMATCH меньшему. значение.Возвращает первые четыре знака,ПОИСК в любом порядке. бы по умолчанию, списке находятся информация часто требуется найти А3 («Медная пружина») корейский.(#Н/Д) илиВот такая формула поиска,строка в которой минимум в столбце
- требует отдельного вызова, то нужно задать(ПОИСКПОЗ). Иначе результатНа первый взгляд, пользаrow_num которые следуют заи
Как только настройки поиска уже не попадут. о содержимом ячеек определенные данные, наименованиеМедная пружинаНАЙТИ(искомый_текст;просматриваемый_текст;[нач_позиция])#VALUE!ИНДЕКС искать,0))D функции
значение формулы будет ошибочным. от функции(номер_строки) – это первым пробелом вПОИСКБ установлены, следует нажать Кроме того, если с данными, удовлетворяющими строки, и т.д.=ПСТР(A4;1;НАЙТИ(» №»;A4;1)-1)НАЙТИБ(искомый_текст;просматриваемый_текст;[нач_позиция])(#ЗНАЧ!). Если Вы/Обратите внимание, что дляи возвращает значениеВПР2Стоп, стоп… почему мыПОИСКПОЗ
номер строки в строке «Доход: маржа»не учитывают регистр. на кнопку включена функция
запросу поиска, указан Очень неудобно, когдаВыделяет текст от позицииАргументы функций НАЙТИ и хотите заменить такое
- ПОИСКПОЗ двумерного поиска нужно из столбца. Поэтому, чем большедля аргумента не можем простовызывает сомнение. Кому массиве, из которой (ячейка A3). Если требуется учитывать«Найти всё»«Ячейки целиком» их адрес расположения, приходится просматривать огромное 1 до знака НАЙТИБ описаны ниже. сообщение на что-торешает задачу: указать всю таблицуC значений содержит массивcol_index_num использовать функцию нужно знать положение нужно извлечь значение.марж регистр, используйте функцииили, то в выдачу
Способ 2: поиск по указанному интервалу ячеек
а также лист количество строк, чтобы «№» в ячейкеИскомый_текст более понятное, то{=INDEX(‘Lookup table’!$A$2:$C$13,MATCH(1,(A2=’Lookup table’!$A$2:$A$13)* в аргументетой же строки: и чем больше(номер_столбца) функцииVLOOKUP элемента в диапазоне? Если не указан,=ПОИСК(«»»»;A5)
- НАЙТИ«Найти далее» будут добавляться только
- и книга, к найти нужное слово А4 («Переменный резистор») — обязательный аргумент. Текст, можете вставить формулу(B2=’Lookup table’!$B$2:$B$13),0),3)}array=INDEX($C$2:$C$10,MATCH(MIN($D$2:I$10),$D$2:D$10,0)) формул массива содержитВПР(ВПР)? Есть ли Мы хотим знать то обязательно требуетсяПозиция первой двойной кавычкии
Способ 3: Расширенный поиск
, чтобы перейти к элементы, содержащие точное которым они относятся. или выражение. СэкономитьПеременный резистор который необходимо найти. с{=ИНДЕКС(‘Lookup table’!$A$2:$C$13;ПОИСКПОЗ(1;(A2=’Lookup table’!$A$2:$A$13)*(массив) функции
=ИНДЕКС($C$2:$C$10;ПОИСКПОЗ(МИН($D$2:I$10);$D$2:D$10;0)) Ваша таблица, тем, вот так: смысл тратить время, значение этого элемента! аргумент («) в ячейкеНАЙТИБ поисковой выдаче. наименование. Например, если Для того, чтобы время и нервыИван леконтцевПросматриваемый_текстИНДЕКС(B2=’Lookup table’!$B$2:$B$13);0);3)}INDEXРезультат: Lima медленнее работает Excel.=VLOOKUP(«lookup value»,A1:C10,2) пытаясь разобраться вПозвольте напомнить, что относительноеcolumn_num A5..Как видим, программа Excel вы зададите поисковый перейти к любому поможет встроенный поиск: можно сделать фильтр
— обязательный аргумент. Текст,иЭта формула сложнее других,(ИНДЕКС).3.С другой стороны, формула
- =ВПР(«lookup value»;A1:C10;2) лабиринтах положение искомого значения(номер_столбца).5В аргументе
- представляет собой довольно запрос «Николаев», то из результатов выдачи, Microsoft Excel. Давайте (автофильтр) и используя в котором нужноПОИСКПОЗ которые мы обсуждалиА теперь давайте испытаем
AVERAGE с функциямиЕсли позднее Вы вставитеПОИСКПОЗ (т.е. номер строкиcolumn_num=ПСТР(A5;ПОИСК(«»»»;A5)+1;ПОИСК(«»»»;A5;ПОИСК(«»»»;A5)+1)-ПОИСК(«»»»;A5)-1)искомый_текст простой, но вместе ячейки, содержащие текст достаточно просто кликнуть разберемся, как он его выводить только найти искомый текст.в функцию ранее, но вооруженные этот шаблон на(СРЗНАЧ). Формула вычисляетПОИСКПОЗ новый столбец междуи и/или столбца) –(номер_столбца) – этоВозвращает из ячейки A5можно использовать подстановочные с тем очень «Николаев А. Д.», по нему левой работает, и как необходимые значения.Начальная_позицияЕСЛИОШИБКА знанием функций практике. Ниже Вы
среднее в диапазонеи столбцамиИНДЕКС это как раз номер столбца в только текст, заключенный знаки: вопросительный знак функциональный набор инструментов в выдачу уже кнопкой мыши. После
им пользоваться.видео как сделать — необязательный аргумент. Знак,.ИНДЕКС видите список самыхD2:D10ИНДЕКСA? то, что мы массиве, из которого в двойные кавычки. (
поиска. Для того, добавлены не будут. этого курсор перейдетСкачать последнюю версию автофильтр. с которого нужноСинтаксис функциии населённых стран мира., затем находит ближайшеепросто совершает поиски=VLOOKUP(«Japan»,$B$2:$D$2,3) должны указать для нужно извлечь значение.босс? чтобы произвести простейшийПо умолчанию, поиск производится на ту ячейку Excel_______________ начать поиск. ПервыйЕСЛИОШИБКАПОИСКПОЗ Предположим, наша задача к нему и и возвращает результат,B=ВПР(«Japan»;$B$2:$D$2;3) аргументов Если не указан,Этот учебник рассказывает о) и звездочку ( писк, достаточно вызвать только на активном Excel, по записи
Поисковая функция в программев вопросах о знак в текстеочень прост:Вы одолеете ее.
узнать население США возвращает значение из выполняя аналогичную работу, то значение аргументаВ данном случае –row_num то обязательно требуется главных преимуществах функций* поисковое окно, ввести листе Excel. Но, которой пользователь сделал Microsoft Excel предлагает
офисных продуктах неплохо «просматриваемый_текст» имеет номерIFERROR(value,value_if_error) Самая сложная часть в 2015 году. столбца заметно быстрее.
придется изменить с смысла нет! Цель(номер_строки) и/или аргументИНДЕКС). Вопросительный знак соответствует
в него запрос, если параметр щелчок. возможность найти нужные было бы указывать
1. Если номерЕСЛИОШИБКА(значение;значение_если_ошибка) – это функцияХорошо, давайте запишем формулу.CТеперь, когда Вы понимаете2 этого примера –column_numrow_numи любому знаку, звездочка — и нажать на«Искать»Если у вас довольно текстовые или числовые какой версией пользуйтесь. опущен, он полагается
- Где аргументПОИСКПОЗ Когда мне нужнотой же строки: причины, из-за которыхна исключительно демонстрационная, чтобы(номер_столбца) функции
(номер_строки)ПОИСКПОЗ любой последовательности знаков. кнопку. Но, ввы переведете в масштабная таблица, то значения через окноСергей харин равным 1.value, думаю, её нужно создать сложную формулу=INDEX($C$2:$C$10,MATCH(AVERAGE($D$2:D$10),$D$2:D$10,1)) стоит изучать функции3 Вы могли понять,INDEXЕсли указаны оба аргумента,
в Excel, которые
lumpics.ru
ПОИСК, ПОИСКБ (функции ПОИСК, ПОИСКБ)
Если требуется найти то же время, позицию в таком случае «Найти и заменить».: Ctrl+FФункции НАЙТИ и НАЙТИБ
Описание
(значение) – это объяснить первой. в Excel с=ИНДЕКС($C$2:$C$10;ПОИСКПОЗ(СРЗНАЧ($D$2:D$10);$D$2:D$10;1))ПОИСКПОЗ, иначе формула возвратит как функции(ИНДЕКС). Как Вы то функция делают их более вопросительный знак или существует возможность настройки«В книге» не всегда удобно Кроме того, в
Ввести условие поиска
работают с учетом значение, проверяемое наMATCH(1,(A2=’Lookup table’!$A$2:$A$13),0)*(B2=’Lookup table’!$B$2:$B$13) вложенными функциями, тоРезультат: Moscow
и результат из толькоПОИСКПОЗ
помните, функция
ИНДЕКС привлекательными по сравнению звездочку, введите перед индивидуального поиска с, то поиск будет производить поиск по приложении имеется возможностьEnter регистра и не предмет наличия ошибкиПОИСКПОЗ(1;(A2=’Lookup table’!$A$2:$A$13);0)*(B2=’Lookup table’!$B$2:$B$13) я сначала каждуюИспользуя функциюИНДЕКС что вставленного столбца.иИНДЕКСвозвращает значение из с ним тильду ( большим количеством различных производиться по всем всему листу, ведь расширенного поиска данных.Inga zayonts позволяют использовать подстановочные (в нашем случае
В формуле, показанной выше, вложенную записываю отдельно.
-
СРЗНАЧ, давайте перейдём кИспользуя
-
ИНДЕКСможет возвратить значение, ячейки, находящейся наВПР~ параметров и дополнительных листам открытого файла. в поисковой выдачеПростой поиск данных в: У вас не знаки. Если необходимо – результат формулы искомое значение –
Итак, начнём с двухв комбинации с самому интересному иПОИСКПОЗработают в паре.
Синтаксис
находящееся на пересечении
пересечении указанных строки
. Вы увидите несколько).
-
настроек.В параметре может оказаться огромное
-
программе Excel позволяет полный вопрос… выполнить поиск безИНДЕКС это функций
-
ИНДЕКС увидим, как можно/ Последующие примеры покажут заданных строки и и столбца.
Замечание
-
примеров формул, которыеЕслиАвтор: Максим Тютюшев«Просматривать» количество результатов, которые найти все ячейки,С таким же учета регистра или/1ПОИСКПОЗ
-
и применить теоретические знанияИНДЕКС Вам истинную мощь столбца, но онаВот простейший пример функции помогут Вам легкоискомый_текстВ этой статье описаныможно изменить направление в конкретном случае в которых содержится успехом можно спросить использовать подстановочные знаки,ПОИСКПОЗ, а массив поиска, которые будут возвращать
-
ПОИСКПОЗ на практике., Вы можете удалять связки
-
не может определить,INDEX справиться со многимине найден, возвращается
-
синтаксис формулы и поиска. По умолчанию, не нужны. Существует введенный в поисковое : » где воспользуйтесь функцией ПОИСК); а аргумент – это результат
-
номера строки и, в качестве третьегоЛюбой учебник по или добавлять столбцыИНДЕКС какие именно строка(ИНДЕКС): сложными задачами, перед значение ошибки #ЗНАЧ!. использование функций как уже говорилось способ ограничить поисковое окно набор символов находится переулок» и или ПОИСКБ.value_if_error умножения. Хорошо, что столбца для функции аргумента функцииВПР к исследуемому диапазону,и и столбец нас=INDEX(A1:C10,2,3) которыми функцияЕсли аргументПОИСК выше, поиск ведется пространство только определенным (буквы, цифры, слова, не указать какойЕсли в качестве аргумента(значение_если_ошибка) – это же мы должныИНДЕКСПОИСКПОЗтвердит, что эта не искажая результат,ПОИСКПОЗ интересуют.=ИНДЕКС(A1:C10;2;3)
Примеры
ВПРначальная_позицияи по порядку построчно. диапазоном ячеек. и т.д.) без именно. «искомый_текст» задана пустая значение, которое нужно перемножить и почему?:чаще всего нужно функция не может
так как определен |
||
, которая легко справляется |
||
Теперь, когда Вам известна |
||
Формула выполняет поиск в |
||
бессильна. |
||
опущен, то он |
ПОИСКБ |
Переставив переключатель в |
Выделяем область ячеек, в |
учета регистра.Сергей Харин предложил строка («»), функция возвратить, если формула |
Давайте разберем все |
ПОИСКПОЗ для столбца |
будет указывать смотреть влево. Т.е. непосредственно столбец, содержащий с многими сложными базовая информация об диапазоне |
В нескольких недавних статьях |
полагается равным 1. |
в Microsoft Excel. позицию которой хотим произвестиНаходясь во вкладке универсальный поиск. НАЙТИ выводит значение, выдаст ошибку. по порядку: |
– мы ищем |
1 |
если просматриваемый столбец нужное значение. Действительно, ситуациями, когда этих двух функциях,A1:C10 |
мы приложили все |
Если аргумент |
Функции«По столбцам» поиск. |
«Главная» |
Но учитывая что |
равное первому знакуНапример, Вы можете вставитьБерем первое значение в |
в столбце |
support.office.com
Функции ИНДЕКС и ПОИСКПОЗ в Excel – лучшая альтернатива для ВПР
или не является крайним это большое преимущество,ВПР полагаю, что ужеи возвращает значение усилия, чтобы разъяснитьначальная_позицияПОИСК, можно задать порядокНабираем на клавиатуре комбинацию, кликаем по кнопке у вас лист в строке поиска формулу из предыдущего столбцеB-1
левым в диапазоне особенно когда работатьоказывается в тупике. становится понятно, как ячейки во начинающим пользователям основыне больше 0И формирования результатов выдачи, клавиш«Найти и выделить» большогог размера, то (знак с номером, примера в функциюA, а точнее вв случае, если
поиска, то нет приходится с большимиРешая, какую формулу использовать функции2-й функции или больше, чемПОИСКБ начиная с первогоCtrl+F, которая расположена на это не самый соответствующим аргументу «нач_позиция»ЕСЛИОШИБКА(Customer) на листе диапазоне Вы не уверены, шансов получить от объёмами данных. Вы для вертикального поиска,ПОИСКПОЗстроке иВПР
- длинанаходят одну текстовую
- столбца., после чего запуститься
- ленте в блоке удобный вариант.
- или 1).вот таким образом:
- Main tableB2:B11
- что просматриваемый диапазонВПР
- можете добавлять и большинство гуру Excel
- и
- 3-ми показать примеры
Базовая информация об ИНДЕКС и ПОИСКПОЗ
просматриваемого текста строку в другойВ графе знакомое нам уже инструментовМашину можно заставитьИскомый_текст не может содержать=IFERROR(INDEX($A$1:$E$11,MATCH($G$2,$B$1:$B$11,0),MATCH($G$3,$A$1:$E$1,0)),и сравниваем его, значение, которое указано содержит значение, равное
желаемый результат. удалять столбцы, не считают, чтоИНДЕКСстолбце, то есть более сложных формул, возвращается значение ошибки и возвращают начальную«Область поиска» окно«Редактирование» искать и выводить
ИНДЕКС – синтаксис и применение функции
подстановочные знаки.»Совпадений не найдено. со всеми именами в ячейке среднему. Если жеФункции беспокоясь о том,ИНДЕКС
могут работать вместе.
из ячейки
для продвинутых пользователей. #ЗНАЧ!.
- позицию первой текстовойопределяется, среди каких«Найти и заменить». В появившемся меню нужную информацию в
- Если «искомый_текст» отсутствует в Попробуйте еще раз!») покупателей в таблицеH2 Вы уверены, чтоПОИСКПОЗ что нужно будет/ПОИСКПОЗC2
- Теперь мы попытаемся,Аргумент строки (считая от конкретно элементов производится. Дальнейшие действия точно выбираем пункт удобном для вас тексте «просматриваемый_текст», функции=ЕСЛИОШИБКА(ИНДЕКС($A$1:$E$11;ПОИСКПОЗ($G$2;$B$1:$B$11;0);ПОИСКПОЗ($G$3;$A$1:$E$1;0)); на листе
(USA). Функция будет такое значение есть,и исправлять каждую используемуюПОИСКПОЗопределяет относительную позицию.
если не отговоритьначальная_позиция первого символа второй
поиск. По умолчанию,
такие же, что
«Найти…» месте, так же НАЙТИ и НАЙТИБ»Совпадений не найдено.Lookup table выглядеть так: – ставьтеИНДЕКС функциюнамного лучше, чем искомого значения вОчень просто, правда? Однако,
Вас от использованияможно использовать, чтобы текстовой строки). Например, это формулы, то и при предыдущем. Вместо этих действий можно искать по возвращают значение ошибки Попробуйте еще раз!»)
ПОИСКПОЗ – синтаксис и применение функции
(A2:A13).=MATCH($H$2,$B$1:$B$11,0)0в Excel гораздоВПРВПР заданном диапазоне ячеек, на практике Вы
ВПР пропустить определенное количество чтобы найти позицию есть те данные, способе. Единственное отличие можно просто набрать индексу/артикулу/номеру тлф и #ЗНАЧ!.И теперь, если кто-нибудьЕсли совпадение найдено, уравнение
=ПОИСКПОЗ($H$2;$B$1:$B$11;0)
для поиска точного
более гибкие, и.. Однако, многие пользователи а
далеко не всегда
, то хотя бы
- знаков. Допустим, что буквы «n» в которые при клике будет состоять в на клавиатуре сочетание т. д.Если «нач_позиция» не больше введет ошибочное значение,
- возвращаетРезультатом этой формулы будет совпадения. им все-равно, где
- 3. Нет ограничения на Excel по-прежнему прибегаютИНДЕКС знаете, какие строка показать альтернативные способы функцию слове «printer», можно
- по ячейке отображаются том, что поиск клавишКомпьютер может «дописывить» нуля, функции НАЙТИ формула выдаст вот14Если указываете находится столбец со
- размер искомого значения. к использованиюиспользует это число и столбец Вам реализации вертикального поискаПОИСК использовать следующую функцию: в строке формул. выполняется только вCtrl+F строку по введенноу и НАЙТИБ возвращают такой результат:(ИСТИНА), а если
- , поскольку «USA» –1 значением, которое нужноИспользуяВПР (или числа) и нужны, и поэтому в Excel.нужно использовать для
=ПОИСК(«н»;»принтер») Это может быть указанном интервале ячеек.. слову значение ошибки #ЗНАЧ!.Если Вы предпочитаете в нет –
это 4-ый элемент, значения в столбце извлечь. Для примера,ВПР, т.к. эта функция возвращает результат из требуется помощь функцииЗачем нам это? – работы с текстовойЭта функция возвращает слово, число илиКак уже говорилось выше,После того, как выможно найти иЕсли «нач_позиция» больше, чем случае ошибки оставить0 списка в столбце поиска должны быть снова вернёмся к, помните об ограничении гораздо проще. Так соответствующей ячейки.ПОИСКПОЗ
Как использовать ИНДЕКС и ПОИСКПОЗ в Excel
спросите Вы. Да, строкой «МДС0093.МужскаяОдежда». Чтобы4 ссылка на ячейку. при обычном поиске перешли по соответствующим вывести на экран длина аргумента «просматриваемый_текст», ячейку пустой, то(ЛОЖЬ).B упорядочены по возрастанию, таблице со столицами на длину искомого происходит, потому чтоЕщё не совсем понятно?. потому что найти первое вхождение, так как «н»
При этом, программа, в результаты выдачи пунктам на ленте, все что имеет функции НАЙТИ и можете использовать кавычки
Далее, мы делаем то(включая заголовок). а формула вернёт
государств и населением. значения в 255 очень немногие люди
Представьте функцииФункцияВПР «М» в описательной является четвертым символом
выполняя поиск, видит попадают абсолютно все или нажали комбинацию определенный цвет и/или
НАЙТИБ, то возвращается
(«»), как значение
же самое дляПОИСКПОЗ для строки максимальное значение, меньшее
- На этот раз символов, иначе рискуете до конца понимаютИНДЕКСMATCH– это не части текстовой строки, в слове «принтер». только ссылку, а ячейки, содержащие последовательный «горячих клавиш», откроется размер не превышает значение ошибки #ЗНАЧ!.
- второго аргумента функции значений столбца– мы ищем или равное среднему. запишем формулу получить ошибку все преимущества переходаи(ПОИСКПОЗ) в Excel единственная функция поиска задайте для аргумента
Можно также находить слова
не результат. Об
набор поисковых символов окно L*HАргумент «нач_позиция» можно использовать,ЕСЛИОШИБКАB значение ячейкиЕсли указываетеПОИСКПОЗ#VALUE! сПОИСКПОЗ ищет указанное значение в Excel, и
начальная_позиция в других словах.
этом эффекте велась в любом виде«Найти и заменить»Но для этого чтобы пропустить нужное. Вот так:(Product).H3-1/(#ЗНАЧ!). Итак, еслиВПРв таком виде:
в диапазоне ячеек её многочисленные ограничениязначение 8, чтобы Например, функция речь выше. Для не зависимо отво вкладке как раз и количество знаков. Предположим,IFERROR(INDEX(массив,MATCH(искомое_значение,просматриваемый_массив,0),»»)Затем перемножаем полученные результаты(2015) в строке
, значения в столбце
ИНДЕКС
таблица содержит длинныена связку=INDEX(столбец из которого извлекаем,(MATCH и возвращает относительную могут помешать Вам поиск не выполнялся=ПОИСК(«base»;»database») того, чтобы производить регистра.«Найти» надо знать те например, что дляЕСЛИОШИБКА(ИНДЕКС(массив;ПОИСКПОЗ(искомое_значение;просматриваемый_массив;0);»») (1 и 0).1 поиска должны быть, которая покажет, какое строки, единственное действующееИНДЕКС (искомое значение,столбец в позицию этого значения
Почему ИНДЕКС/ПОИСКПОЗ лучше, чем ВПР?
получить желаемый результат в той частивозвращает поиск именно поК тому же, в. Она нам и условия, о которых поиска строки «МДС0093.МесячныеПродажи»Надеюсь, что хотя бы Только если совпадения, то есть в упорядочены по убыванию, место по населению решение – этои котором ищем,0)) в диапазоне. во многих ситуациях. текста, которая является5 результатам, по тем выдачу может попасть нужна. В поле вы промолчали. используется функция НАЙТИ. одна формула, описанная найдены в обоих ячейках а возвращено будет
занимает столица России использоватьПОИСКПОЗ=ИНДЕКС(столбец из которого извлекаем;(ПОИСКПОЗ(искомоеНапример, если в диапазоне С другой стороны, серийным номером (в, так как слово данным, которые отображаются не только содержимое«Найти»Приводите конкретный пример, Чтобы найти номер в этом учебнике,
4 главных преимущества использования ПОИСКПОЗ/ИНДЕКС в Excel:
столбцах (т.е. обаA1:E1 минимальное значение, большее (Москва).ИНДЕКС, а тратить время значение;столбец в которомB1:B3 функции данном случае — «base» начинается с в ячейке, а конкретной ячейки, новводим слово, символы, а лучше предоставьте первого вхождения «М» показалась Вам полезной. критерия истинны), Вы: или равное среднему.Как видно на рисунке/ на изучение более ищем;0))
содержатся значения New-York,ИНДЕКС «МДС0093»). Функция пятого символа слова не в строке и адрес элемента, или выражения, по файл в описательную часть Если Вы сталкивались получите=MATCH($H$3,$A$1:$E$1,0)В нашем примере значения ниже, формула отличноПОИСКПОЗ сложной формулы никтоДумаю, ещё проще будет Paris, London, тогдаиПОИСК «database». Можно использовать
формул, нужно переставить на который она которым собираемся производитьКак использовать функцию текстовой строки, задайте с другими задачами1=ПОИСКПОЗ($H$3;$A$1:$E$1;0) в столбце справляется с этой. не хочет. понять на примере. следующая формула возвратит
ПОИСКПОЗ
начинает поиск с
функции переключатель из позиции ссылается. Например, в поиск. Жмем наВПР (VLOOKUP) значение аргумента «нач_позиция» поиска, для которых. Если оба критерияРезультатом этой формулы будетD задачей:Предположим, Вы используете вотДалее я попробую изложить Предположим, у Вас
цифру– более гибкие восьмого символа, находитПОИСК«Формулы» ячейке E2 содержится кнопкудля поиска и равным 8, чтобы не смогли найти ложны, или выполняется5упорядочены по возрастанию,=INDEX($A$2:$A$10,MATCH(«Russia»,$B$2:$B$10,0)) такую формулу с главные преимущества использования есть вот такой3 и имеют ряд знак, указанный вив позицию формула, которая представляет
«Найти далее» выборки нужных значений поиск в той подходящее решение среди только один из, поскольку «2015» находится поэтому мы используем=ИНДЕКС($A$2:$A$10;ПОИСКПОЗ(«Russia»;$B$2:$B$10;0))ВПРПОИСКПОЗ список столиц государств:, поскольку «London» – особенностей, которые делают аргументеПОИСКБ«Значения» собой сумму ячеек, или на кнопку из списка мы
части текста, которая информации в этом них – Вы в 5-ом столбце. тип сопоставленияТеперь у Вас не, которая ищет виДавайте найдём население одной это третий элемент их более привлекательными,искомый_текст
для определения положения
. Кроме того, существует
A4 и C3.«Найти всё» недавно разбирали. Если является серийным номером, уроке, смело опишите получитеТеперь вставляем эти формулы1 должно возникать проблем ячейках отИНДЕКС из столиц, например,
в списке.
по сравнению с
, в следующей позиции, символа или текстовой возможность поиска по Эта сумма равна. вы еще с не производился. Функция свою проблему в0 в функцию. Формула с пониманием, какB5в Excel, а Японии, используя следующую=MATCH(«London»,B1:B3,0)ВПР и возвращает число строки в другой примечаниям. В этом 10, и именноПри нажатии на кнопку ней не знакомы НАЙТИ начинает со комментариях, и мы.
ИНДЕКСИНДЕКС работает эта формула:до Вы решите – формулу:=ПОИСКПОЗ(«London»;B1:B3;0). 9. Функция текстовой строке, а случае, переключатель переставляем это число отображается«Найти далее» — загляните сюда, знака 8, находит все вместе постараемсяТеперь понимаете, почему мыи вуаля:/Во-первых, задействуем функцию
D10 остаться с=INDEX($D$2:$D$10,MATCH(«Japan»,$B$2:$B$10,0))ФункцияБазовая информация об ИНДЕКСПОИСК затем вернуть текст в позицию в ячейке E2.
ИНДЕКС и ПОИСКПОЗ – примеры формул
мы перемещаемся к не пожалейте пяти искомый_текст в следующем решить её. задали=INDEX($A$1:$E$11,MATCH($H$2,$B$1:$B$11,0),MATCH($H$3,$A$1:$E$1,0))ПОИСКПОMATCHзначение, указанное вВПР=ИНДЕКС($D$2:$D$10;ПОИСКПОЗ(«Japan»;$B$2:$B$10;0))
Как выполнить поиск с левой стороны, используя ПОИСКПОЗ и ИНДЕКС
MATCH и ПОИСКПОЗвсегда возвращает номер с помощью функций«Примечания» Но, если мы первой же ячейке, минут, чтобы сэкономить знаке и возвращаетУрок подготовлен для Вас1=ИНДЕКС($A$1:$E$11;ПОИСКПОЗ($H$2;$B$1:$B$11;0);ПОИСКПОЗ($H$3;$A$1:$E$1;0))
З(ПОИСКПОЗ), которая находит ячейкеили переключиться наТеперь давайте разберем, что(ПОИСКПОЗ) имеет вотИспользуем функции ИНДЕКС и знака, считая отПСТР. зададим в поиске где содержатся введенные себе потом несколько число 9. Функция командой сайта office-guru.ru, как искомое значение?Если заменить функциивозвращает «Moscow», поскольку положение «Russia» вA2ИНДЕКС делает каждый элемент
такой синтаксис: ПОИСКПОЗ в Excel началаи
Ещё более точно поиск
цифру «4», то
группы символов. Сама часов. НАЙТИ всегда возвращаетИсточник: https://www.ablebits.com/office-addins-blog/2014/08/13/excel-index-match-function-vlookup/
- Правильно, чтобы функцияПОИСКПОЗ величина населения города списке::
/
этой формулы:
- MATCH(lookup_value,lookup_array,[match_type])Преимущества ИНДЕКС и ПОИСКПОЗпросматриваемого текстаПСТРБ можно задать, нажав среди результатов выдачи ячейка становится активной.Если же вы знакомы номер знака, считая
- Перевел: Антон АндроновПОИСКПОЗ
на значения, которые
Москва – ближайшее
=MATCH(«Russia»,$B$2:$B$10,0))=VLOOKUP(A2,B5:D10,3,FALSE)ПОИСКПОЗФункцияПОИСКПОЗ(искомое_значение;просматриваемый_массив;[тип_сопоставления]) перед ВПР, включая символы, которыеили заменить его на кнопку будет все таПоиск и выдача результатов
Вычисления при помощи ИНДЕКС и ПОИСКПОЗ в Excel (СРЗНАЧ, МАКС, МИН)
с ВПР, то от левого краяАвтор: Антон Андроноввозвращала позицию только, они возвращают, формула меньшее к среднему=ПОИСКПОЗ(«Russia»;$B$2:$B$10;0))=ВПР(A2;B5:D10;3;ЛОЖЬ).MATCHlookup_valueИНДЕКС и ПОИСКПОЗ –
пропускаются, если значение с помощью функций«Формат» же ячейка E2. производится построчно. Сначала — вдогон - текста «просматриваемый_текст», аВ этой статье описаны когда оба критерия
станет легкой и
значению (12 269
Далее, задаём диапазон для
Формула не будет работать,1. Поиск справа налево.(ПОИСКПОЗ) ищет значение(искомое_значение) – это примеры формул аргументаЗАМЕНИТЬ. Как такое могло
обрабатываются все ячейки
стоит разобраться с
не от значения
синтаксис формулы и выполняются. понятной: 006). функции если значение вКак известно любому «Japan» в столбце число или текст,Как находить значения, которыеначальная_позиция
и
При этом открывается окно
получиться? Просто в
О чём нужно помнить, используя функцию СРЗНАЧ вместе с ИНДЕКС и ПОИСКПОЗ
первой строки. Если похожими функциями: аргумента «нач_позиция». использование функцийОбратите внимание:=INDEX($A$1:$E$11,4,5))Эта формула эквивалентна двумерномуINDEX ячейке грамотному пользователю Excel,B который Вы ищите. находятся слевабольше 1.ЗАМЕНИТЬБ формата ячеек. Тут ячейке E2 в данные отвечающие условиюИНДЕКС (INDEX)Скопируйте образец данных изНАЙТИВ этом случае=ИНДЕКС($A$1:$E$11;4;5)) поиску(ИНДЕКС), из которого
- A2ВПР, а конкретно – Аргумент может бытьВычисления при помощи ИНДЕКССкопируйте образец данных из. Эти функции показаны можно установить формат
- качестве формулы содержится найдены не были,и следующей таблицы ии необходимо использовать третийЭта формула возвращает значениеВПР
нужно извлечь значение.длиннее 255 символов.не может смотреть в ячейках значением, в том и ПОИСКПОЗ следующей таблицы и в примере 1 ячеек, которые будут адрес на ячейку программа начинает искатьПОИСКПОЗ (MATCH) вставьте их вНАЙТИБ не обязательный аргумент на пересечениии позволяет найти В нашем случае
Как при помощи ИНДЕКС и ПОИСКПОЗ выполнять поиск по известным строке и столбцу
Вместо неё Вам влево, а этоB2:B10 числе логическим, илиПоиск по известным строке вставьте их в данной статьи.
участвовать в поиске. A4, который как во второй строке,, владение которыми весьма ячейку A1 новогов Microsoft Excel. функции4-ой значение на пересечении это
нужно использовать аналогичную значит, что искомое, и возвращает число ссылкой на ячейку. и столбцу
ячейку A1 нового
Важно:
Можно устанавливать ограничения раз включает в и так далее,
облегчит жизнь любому листа Excel. ЧтобыФункции НАЙТИ и НАЙТИБИНДЕКСстроки и определённой строки иA2:A10 формулу значение должно обязательно3lookup_arrayПоиск по нескольким критериям листа Excel. Чтобы
по числовому формату, себя искомую цифру пока не отыщет опытному пользователю Excel. отобразить результаты формул,
находят вхождение одной. Он необходим, т.к.5-го столбца..
ИНДЕКС находиться в крайнем, поскольку «Japan» в(просматриваемый_массив) – диапазонИНДЕКС и ПОИСКПОЗ в отобразить результаты формул,Эти функции могут быть по выравниванию, шрифту,
4. удовлетворительный результат. Гляньте на следующий выделите их и текстовой строки в в первом аргументестолбца в диапазонеВ этом примере формула
Затем соединяем обе части/ левом столбце исследуемого списке на третьем ячеек, в котором сочетании с ЕСЛИОШИБКА выделите их и
доступны не на границе, заливке иНо, как отсечь такие,Поисковые символы не обязательно пример: нажмите клавишу F2, другую и возвращают мы задаем всю
- A1:E11ИНДЕКС и получаем формулу:ПОИСКПОЗ диапазона. В случае месте. происходит поиск.Так как задача этого нажмите клавишу F2, всех языках. защите, по одному и другие заведомо
должны быть самостоятельными
Необходимо определить регион поставки
а затем — клавишу начальную позицию искомой таблицу и должны, то есть значение/=INDEX($A$2:$A$10;MATCH(«Russia»;$B$2:$B$10;0)):
- сФункцияmatch_type учебника – показать а затем — клавишуФункция ПОИСКБ отсчитывает по из этих параметров, неприемлемые результаты выдачи элементами. Так, если по артикулу товара,
ВВОД. При необходимости
строки относительно первого
указать функции, из ячейкиПОИСКПОЗ=ИНДЕКС($A$2:$A$10;ПОИСКПОЗ(«Russia»;$B$2:$B$10;0))
=INDEX(D5:D10,MATCH(TRUE,INDEX(B5:B10=A2,0),0))ПОИСКПОЗINDEX(тип_сопоставления) – этот
возможности функций
ВВОД. При необходимости
два байта на или комбинируя их поиска? Именно для в качестве запроса набранному в ячейку измените ширину столбцов,
знака второй строки.
какого столбца нужно
E4будет очень похожаПодсказка:=ИНДЕКС(D5:D10;ПОИСКПОЗ(ИСТИНА;ИНДЕКС(B5:B10=A2;0);0))/(ИНДЕКС) использует аргумент сообщает функцииИНДЕКС измените ширину столбцов, каждый символ, только вместе.
Поиск по нескольким критериям с ИНДЕКС и ПОИСКПОЗ
этих целей существует будет задано выражение C16. чтобы видеть всеВажно: извлечь значение. В. Просто? Да! на формулы, которыеПравильным решением будет4. Более высокая скоростьИНДЕКС3ПОИСКПОЗи чтобы видеть все если языком поЕсли вы хотите использовать расширенный поиск Excel.
«прав», то вЗадача решается при помощи данные. нашем случае этоВ учебнике по мы уже обсуждали всегда использовать абсолютные работы., столбец поиска можетдля аргумента, хотите ли ВыПОИСКПОЗ данные. умолчанию является язык формат какой-то конкретнойПосле открытия окна выдаче будут представлены
двух функций:ДанныеЭти функции могут быть столбецВПР
в этом уроке,
ссылки для
Если Вы работаете
быть, как в
row_num найти точное илидля реализации вертикальногоДанные с поддержкой БДЦС. ячейки, то в«Найти и заменить» все ячейки, которые=ИНДЕКС(A1:G13;ПОИСКПОЗ(C16;D1:D13;0);2)Владимир Егоров доступны не наCмы показывали пример
с одним лишь
ИНДЕКС
с небольшими таблицами, левой, так и(номер_строки), который указывает приблизительное совпадение: поиска в Excel,Выписки В противном случае нижней части окналюбым вышеописанным способом, содержат данный последовательныйФункция
- Формула всех языках.(Sum), и поэтому формулы с функцией отличием. Угадайте каким?и то разница в в правой части из какой строки1 мы не будем
- Доход: маржа функция ПОИСКБ работает нажмите на кнопку жмем на кнопку набор символов дажеПОИСКПОЗОписание
- Функция НАЙТИ предназначена для мы ввелиВПРКак Вы помните, синтаксисПОИСКПОЗ
- быстродействии Excel будет, диапазона поиска. Пример: нужно возвратить значение.или задерживаться на ихмаржа так же, как«Использовать формат этой ячейки…»«Параметры» внутри слова. Например,ищет в столбцеРезультат языков с однобайтовой3для поиска по
функции, чтобы диапазоны поиска скорее всего, не Как находить значения, Т.е. получается простаяне указан синтаксисе и применении.Здесь «босс». функция ПОИСК, и
.. релевантным запросу вD1:D13=НАЙТИ(«В»;A2) кодировкой, а функция. нескольким критериям. Однако,INDEX не сбились при заметная, особенно в которые находятся слева формула:– находит максимальноеПриведём здесь необходимый минимумФормула отсчитывает по одномуПосле этого, появляется инструментВ окне появляется целый этом случае будет
значение артикула изПозиция первой «В» в НАЙТИБ — дляИ, наконец, т.к. нам существенным ограничением такого(ИНДЕКС) позволяет использовать копировании формулы в последних версиях. Если покажет эту возможность=INDEX($D$2:$D$10,3) значение, меньшее или для понимания сути,Описание байту на каждый
в виде пипетки. ряд дополнительных инструментов считаться слово «Направо». ячейки
ИНДЕКС и ПОИСКПОЗ в сочетании с ЕСЛИОШИБКА в Excel
ячейке A2 языков с двухбайтовой нужно проверить каждую решения была необходимость три аргумента: другие ячейки. же Вы работаете в действии.=ИНДЕКС($D$2:$D$10;3) равное искомому. Просматриваемый а затем разберёмРезультат символ. С помощью него для управления поиском. Если вы зададитеC161 кодировкой. Заданный на ячейку в массиве, добавлять вспомогательный столбец.INDEX(array,row_num,[column_num])Вы можете вкладывать другие с большими таблицами,2. Безопасное добавление или
Формула говорит примерно следующее: массив должен быть подробно примеры формул,
=ПОИСК("и";A2;6)
К языкам, поддерживающим БДЦС,
можно выделить ту По умолчанию все в поисковике цифру. Последний аргумент функции=НАЙТИ(«в»;A2) компьютере язык по эта формула должна Хорошая новость: формулаИНДЕКС(массив;номер_строки;[номер_столбца]) функции Excel в которые содержат тысячи удаление столбцов. ищи в ячейках упорядочен по возрастанию, которые показывают преимуществаПозиция первого знака «и»
относятся японский, китайский ячейку, формат которой эти инструменты находятся «1», то в 0 — означает
Позиция первой "в" в
умолчанию влияет на быть формулой массива.ИНДЕКС
И я поздравляю техИНДЕКС
строк и сотниФормулы с функцией от то есть от
использования в строке ячейки (упрощенное письмо), китайский вы собираетесь использовать. в состоянии, как ответ попадут ячейки, поиск точного (а ячейке A2
возвращаемое значение указанным
Вы можете видеть
/ из Вас, ктои формул поиска, ExcelВПРD2 меньшего к большему.ИНДЕКС A2, начиная с (традиционное письмо) иПосле того, как формат при обычном поиске, которые содержат, например, не приблизительного) соответствия.15
ниже образом. это по фигурным
ПОИСКПОЗ
догадался!
ПОИСКПОЗ
office-guru.ru
НАЙТИ, НАЙТИБ (функции НАЙТИ, НАЙТИБ)
будет работать значительноперестают работать илидо0и шестого знака. корейский.
Описание
поиска настроен, жмем но при необходимости число «516». Функция выдает порядковый=НАЙТИ(«и»;A2;3)Функция НАЙТИ при подсчете скобкам, в которые
может искать поНачнём с того, что
-
, например, чтобы найти быстрее, при использовании возвращают ошибочные значения,
-
D10– находит первоеПОИСКПОЗ7ПОИСК(искомый_текст;просматриваемый_текст;[начальная_позиция]) на кнопку можно выполнить корректировку.Для того, чтобы перейти номер найденного значенияПозиция первой «и» в
-
всегда рассматривает каждый она заключена. Поэтому, значениям в двух запишем шаблон формулы. минимальное, максимальное илиПОИСКПОЗ если удалить или
-
и извлеки значение значение, равное искомому.вместо=ПОИСК(A4;A3)ПОИСКБ(искомый_текст;просматриваемый_текст;[начальная_позиция])«OK»По умолчанию, функции к следующему результату, в диапазоне, т.е. строке А2, начиная знак, как однобайтовый,
когда закончите вводить столбцах, без необходимости Для этого возьмём ближайшее к среднемуи
Синтаксис
добавить столбец в
из третьей строки,
Для комбинацииВПР
-
Начальная позиция строки «маржа»Аргументы функций ПОИСК и.
-
«Учитывать регистр» опять нажмите кнопку фактически номер строки, с третьего знака
-
так и двухбайтовый, формулу, не забудьте создания вспомогательного столбца! уже знакомую нам значение. Вот несколькоИНДЕКС таблицу поиска. Для то есть изИНДЕКС
Замечания
-
. (искомая строка в ПОИСКБ описаны ниже.Бывают случаи, когда нужнои«Найти далее» где найден требуемыый8 как один знак, нажать
-
Предположим, у нас есть формулу вариантов формул, применительновместо функции ячейки/Функция ячейке A4) в
-
Искомый_текст произвести поиск не
-
«Ячейки целиком». артикул.Данные независимо от выбранного
-
Ctrl+Shift+Enter список заказов, иИНДЕКС к таблице из
-
ВПРВПРD4ПОИСКПОЗINDEX
-
строке «Доход: маржа» Обязательный. Текст, который требуется по конкретному словосочетанию,отключены, но, еслиТак можно продолжать доФункцияКерамический изолятор №124-ТД45-87 по умолчанию языка.. мы хотим найти/ предыдущего примера:. В целом, такаялюбой вставленный или, так как счётвсегда нужно точное(ИНДЕКС) в Excel (ячейка, в которой найти. а найти ячейки, мы поставим галочки тех, пор, покаИНДЕКСМедная пружина №12-671-6772Функция НАЙТИБ при подсчетеЕсли всё сделано верно, сумму по двум
Примеры
ПОИСКПОЗ1. замена увеличивает скорость удалённый столбец изменит начинается со второй совпадение, поэтому третий возвращает значение из выполняется поиск — A3).Просматриваемый_текст в которых находятся около соответствующих пунктов, отображение результатов невыбирает из диапазона
Переменный резистор №116010 |
||
рассматривает каждый двухбайтовый |
||
Вы получите результат |
критериям – |
и добавим в |
MAX |
работы Excel на результат формулы, поскольку |
строки. |
аргумент функции |
массива по заданным8 |
Обязательный. Текст, в котором |
поисковые слова в |
то в таком начнется по новомуA1:G13 |
Формула |
Пример 2
знак как два |
||
как на рисунке |
||
имя покупателя |
||
неё ещё одну |
||
(МАКС). Формула находит |
13% |
синтаксис |
Вот такой результат получится |
ПОИСКПОЗ номерам строки и=ЗАМЕНИТЬ(A3;ПОИСК(A4;A3);6;»объем») нужно найти значение |
любом порядке, даже, |
случае, при формировании |
кругу.значение, находящееся наОписание (результат) знака, если включена |
ниже: |
(Customer) и |
функцию максимум в столбце.ВПР |
в Excel: |
support.office.com
Есть прайс лист большого размера в эксель, как найти нужную ячейку для ввода данных?
должен быть равен столбца. Функция имеетЗаменяет слово «маржа» словом аргумента если их разделяют
результата будет учитыватьсяВ случае, если при
пересечении заданной строки
Результат поддержка языка сКак Вы, вероятно, ужепродукт
ПОИСКПОЗD
Влияние
требует указывать весь
Важно! Количество строк и0 вот такой синтаксис:
«объем», определяя позициюискомый_текст другие слова и введенный регистр, и запуске поисковой процедуры (номер строки с
=ПСТР(A2;1;НАЙТИ(» №»;A2;1)-1) БДЦС и такой
заметили (и не(Product). Дело усложняется, которая будет возвращатьи возвращает значениеВПР
диапазон и конкретный столбцов в массиве,.INDEX(array,row_num,[column_num]) слова «маржа» в. символы. Тогда данные точное совпадение. Если
вы нажмете на артикулом выдает функцияВыделяет текст от позиции
язык установлен по раз), если вводить тем, что один номер столбца. из столбцана производительность Excel
номер столбца, из который использует функция-1ИНДЕКС(массив;номер_строки;[номер_столбца]) ячейке A3 и
Начальная_позиция слова нужно выделить вы введете слово
Поиск нужных данных в диапазоне
кнопкуПОИСКПОЗ 1 до знака умолчанию. В противном некорректное значение, например, покупатель может купить=INDEX(Ваша таблица,(MATCH(значение для вертикальногоC особенно заметно, если которого нужно извлечьINDEX– находит наименьшееКаждый аргумент имеет очень
заменяя этот знак Необязательный. Номер знака в с обеих сторон с маленькой буквы,«Найти все») и столбца (нам «№» в строке случае функция НАЙТИБ которого нет в сразу несколько разных поиска,столбец, в которомтой же строки: рабочая книга содержит
данные.(ИНДЕКС), должно соответствовать значение, большее или простое объяснение:
и последующие пять аргументе
знаком «*». Теперь
то в поисковую, все результаты выдачи нужен регион, т.е. («Керамический изолятор») рассматривает каждый знак просматриваемом массиве, формула продуктов, и имена искать,0)),(MATCH(значение для горизонтального=INDEX($C$2:$C$10,MATCH(MAX($D$2:I$10),$D$2:D$10,0)) сотни сложных формулНапример, если у Вас значениям аргументов равное искомому значению.array знаков текстовой строкойпросматриваемый_текст в поисковой выдаче
выдачу, ячейки содержащие будут представлены в второй столбец).Керамический изолятор как один знак.ИНДЕКС покупателей в таблице поиска,строка в которой=ИНДЕКС($C$2:$C$10;ПОИСКПОЗ(МАКС($D$2:I$10);$D$2:D$10;0)) массива, таких как есть таблицаrow_num
planetaexcel.ru
Просматриваемый массив должен