НАЙТИ, НАЙТИБ (функции НАЙТИ, НАЙТИБ)
Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Excel для Mac 2011 Excel Starter 2010 Еще…Меньше
В этой статье описаны синтаксис формулы и использование функций НАЙТИ и НАЙТИБ в Microsoft Excel.
Описание
Функции НАЙТИ и НАЙТИБ находят вхождение одной текстовой строки в другую и возвращают начальную позицию искомой строки относительно первого знака второй строки.
Важно:
-
Эти функции могут быть доступны не на всех языках.
-
Функция НАЙТИ предназначена для языков с однобайтовой кодировкой, а функция НАЙТИБ — для языков с двухбайтовой кодировкой. Заданный на компьютере язык по умолчанию влияет на возвращаемое значение указанным ниже образом.
-
Функция НАЙТИ при подсчете всегда рассматривает каждый знак, как однобайтовый, так и двухбайтовый, как один знак, независимо от выбранного по умолчанию языка.
-
Функция НАЙТИБ при подсчете рассматривает каждый двухбайтовый знак как два знака, если включена поддержка языка с БДЦС и такой язык установлен по умолчанию. В противном случае функция НАЙТИБ рассматривает каждый знак как один знак.
К языкам, поддерживающим БДЦС, относятся японский, китайский (упрощенное письмо), китайский (традиционное письмо) и корейский.
Синтаксис
НАЙТИ(искомый_текст;просматриваемый_текст;[нач_позиция])
НАЙТИБ(искомый_текст;просматриваемый_текст;[нач_позиция])
Аргументы функций НАЙТИ и НАЙТИБ описаны ниже.
-
Искомый_текст — обязательный аргумент. Текст, который необходимо найти.
-
Просматриваемый_текст — обязательный аргумент. Текст, в котором нужно найти искомый текст.
-
Начальная_позиция — необязательный аргумент. Знак, с которого нужно начать поиск. Первый знак в тексте «просматриваемый_текст» имеет номер 1. Если номер опущен, он полагается равным 1.
Замечания
-
Функции НАЙТИ и НАЙТИБ работают с учетом регистра и не позволяют использовать подстановочные знаки. Если необходимо выполнить поиск без учета регистра или использовать подстановочные знаки, воспользуйтесь функцией ПОИСК или ПОИСКБ.
-
Если в качестве аргумента «искомый_текст» задана пустая строка («»), функция НАЙТИ выводит значение, равное первому знаку в строке поиска (знак с номером, соответствующим аргументу «нач_позиция» или 1).
-
Искомый_текст не может содержать подстановочные знаки.
-
Если find_text не отображаются в within_text, find и FINDB возвращают #VALUE! значение ошибки #ЗНАЧ!.
-
Если start_num не больше нуля, то найти и найтиБ возвращает значение #VALUE! значение ошибки #ЗНАЧ!.
-
Если start_num больше, чем длина within_text, то поиск и НАЙТИБ возвращают #VALUE! значение ошибки #ЗНАЧ!.
-
Аргумент «нач_позиция» можно использовать, чтобы пропустить нужное количество знаков. Предположим, например, что для поиска строки «МДС0093.МесячныеПродажи» используется функция НАЙТИ. Чтобы найти номер первого вхождения «М» в описательную часть текстовой строки, задайте значение аргумента «нач_позиция» равным 8, чтобы поиск в той части текста, которая является серийным номером, не производился. Функция НАЙТИ начинает со знака 8, находит искомый_текст в следующем знаке и возвращает число 9. Функция НАЙТИ всегда возвращает номер знака, считая от левого края текста «просматриваемый_текст», а не от значения аргумента «нач_позиция».
Примеры
Скопируйте образец данных из следующей таблицы и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — клавишу ВВОД. При необходимости измените ширину столбцов, чтобы видеть все данные.
Данные |
||
Владимир Егоров |
||
Формула |
Описание |
Результат |
=НАЙТИ(«В»;A2) |
Позиция первой «В» в ячейке A2 |
1 |
=НАЙТИ(«в»;A2) |
Позиция первой «в» в ячейке A2 |
6 |
=НАЙТИ(«и»;A2;3) |
Позиция первой «и» в строке А2, начиная с третьего знака |
8 |
Пример 2
Данные |
||
Керамический изолятор №124-ТД45-87 |
||
Медная пружина №12-671-6772 |
||
Переменный резистор №116010 |
||
Формула |
Описание (результат) |
Результат |
=ПСТР(A2;1;НАЙТИ(» №»;A2;1)-1) |
Выделяет текст от позиции 1 до знака «№» в строке («Керамический изолятор») |
Керамический изолятор |
=ПСТР(A3;1;НАЙТИ(» №»;A3;1)-1) |
Выделяет текст от позиции 1 до знака «№» в ячейке А3 («Медная пружина») |
Медная пружина |
=ПСТР(A4;1;НАЙТИ(» №»;A4;1)-1) |
Выделяет текст от позиции 1 до знака «№» в ячейке А4 («Переменный резистор») |
Переменный резистор |
Нужна дополнительная помощь?
Хитрости »
15 Май 2011 512021 просмотров
Как найти значение в другой таблице или сила ВПР
- Задача и её решение при помощи ВПР
- Описание аргументов ВПР
- Что важно всегда помнить при работе с ВПР
- Как избежать ошибки #Н/Д(#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
ссылки
статистика
Проверка ячейки на наличие в ней текста (без учета регистра)
Смотрите также arr = Range([a1],: А иначе? Если функция сравнивается сЧтобы легко понять, как листе «ДАННЫЕ» в внутри слова, напримерС запасом, но 10, т.к. слово ПРАВСИМВ. Функция ДЛСТРВторой аргумент функции –Во-первых, спасибо заВитушка есть решение проще. Дана таблица. В грамматические ошибки. ДляФорматПримечание: [a100]).Value For i НЕ нашли, то значением строки «C». удалось экспонировать цветом
каждой ячейке последней «собранный» короче Код =ПРОСМОТР(2;1/(ПОИСК(Лист2!B$2:B$99;B3)-1);Лист2!B$2:B$99) «Захар» начинается с «считает» общую длину формат. Где брать формулу: Код =ИНДЕКС(Лист1!$C$1:$C$99;ПОИСКПОЗ(ЛОЖЬ;ЕНД(ПОИСКПОЗ(«*»&Лист1!$A$1:$A$99&»*»;A25;));)): Доброго всем вечера!Анастасия_П первом столбце наименования, нас важно, чтобыи внесите нужныеМы стараемся как
= 1 To что занести вВо всех выше описанных определенные значения с строчкой.
Поиск ячеек, содержащих текст
ManyashaЕвгений8510 десятого символа в
-
текста. Затем отнимается строку формата? Щелкаем У меня
У меня похожая: я в вопросе содержащие одни и
-
эта статья была изменения во всплывающем можно оперативнее обеспечивать 100 If UCase(arr(i, В1! примерах очень легко помощью условного форматированияВОТ файл:Потстановка соответсвующей:
-
: Спасибо AlexM, Вы строке. Где это количество знаков до правой кнопкой мыши возникла проблема, антологичная задача, помогите, плиз, сами наименования упростила, те же слова, вам полезна. Просим
окне вас актуальными справочными 1)) Like UCase(«яблоко»)
-
Валерий аникин применять текстовые функции разберем этапы действий статьи.xlsxsweta212 правы, диапазон на может пригодиться? первого пробела (найденное
-
по ячейке со выше описанным: по написать формулу для а в идеале но записаны по вас уделить паруНайти формат материалами на вашем
Then iCnt2 =: http://scriptcoding.ru/2013/11/10/vba-strokovyje-funkciji/ в условном форматировании в двух словах.Помогите, пожалуйста!!!, Оформите формулу тегами листе2 действительно неФункция ПОИСК определяет положение ПОИСКом). значением. Нажимаем «Формат
-
фрагменту текста найти следующих условий. Если они как в разному. Например: «коньяк секунд и сообщить,
. языке. Эта страница iCnt2 + 1Шведов сергей так как длина Сначала мы извлекаемVlad999 (кнопка 9 позиций, а
знака в текстовойВторая строка содержит имя, ячеек». В открывшемся
Проверка ячейки на наличие в ней любого текста
слово в массиве в тексте столбца файле… Янтарный замок», «Янтарный
Проверка соответствия содержимого ячейки определенному тексту
помогла ли онаКнопка переведена автоматически, поэтому Next i ‘итог: в В1 формулу. строк в исходных
Проверка соответствия части ячейки определенному тексту
часть текста, а: Код =ПРОСМОТР(9^9;ПОИСК(Статья!$A$1:$A$24;Данные!D2);Статья!$A$1:$A$24)fx гораздо больше, а строке. А функция отчество и фамилию. окне выбираем «все и заменить название,
А «Назначение платежа»Казанский замок коньяк 0,5″, вам, с помощью
support.office.com
Проверка ячейки на наличие в ней текста (с учетом регистра)
Параметры ее текст может MsgBox «На листе к регистру не данных одинаковая. Но потом сравниваем егоНаташа Демчук) Ваш вариант решает ПСТР возвращает текстовые Для имени используем форматы». Копируем нужный на то, которое листа «отчет» содержится: Код =ЕСЛИ(ЕОШ(ПОИСК(«казачок»;A2));ЕСЛИ(ЕОШ(ПОИСК(«янтарный замок»;A2));»?»;»10 «коньяк Янтарный замок кнопок внизу страницы.служит для задания содержать неточности и » & iCnt1 чувствительна что, если у
с требуемым значением.: Видела похожее здесь,InExSu задачу когда список значения (см. пример такую же формулу: в строке «Тип». требуется по справочнику. слово из столбца янтарный замок»);»11 казачок») трехлетний 0,5″, «водка
Сравнение ячейки с другой ячейкой
Для удобства также более подробных условий грамматические ошибки. Для
& » ябл.»=ЕСЛИ (ЕСЛИОШИБКА (ПОИСК нас в исходных Но как из
Сравнение значения со значениями из списка
но не получилось: Привет! на листе2 пополняется
выше). Либо можноФормула для извлечения фамилии Вставляем скопированное значение Мне нужно сделать А листа «списки», В примере работает. казачок», «казачок водка приводим ссылку на поиска. Например, можно найти нас важно, чтобы & vbLf & («Анонс»;A1);ЕСЛИОШИБКА (ПОИСК («икона»;A1);ЕСЛИОШИБКА данных разного типа ячейки извлечь часть применить формулы(((вариант решения ждёт автоматически. Спасибо ещё заменить найденный текст несколько иная: Это в формулу.
Проверка соответствия части ячейки определенному тексту
эту формулу, через то в столбцеВот так логически
0,7л». Во второй оригинал (на английском все ячейки, содержащие
эта статья была «В массиве « (ПОИСК («суббота»;A1);-1)))>0;A1;»»)
индикаторы с разной
-
текста в Excel?Поиск фрагментов текста
-
выполнения требования модератора раз! посредством функции ЗАМЕНИТЬ.
support.office.com
Поиск фрагментов текста в ячейке
пять знаков справа.Приведем еще пример, где
ЕСЛИОШИБКА. Тоже есть В «Филиал» на проще «достраивать» формулу столбец нужно ввести языке) . данных определенного типа, вам полезна. Просим & iCnt2 &Успехов! длинной символов, а Обратим внимание на в ячейкеsweta212sweta212Скачать пример функции для Вложенные функции ПОИСК может быть полезна пример. листе «отчет» должно для других наименований: текст «10 янтарныйПредположим, что требуется найти такого как формулы. вас уделить пару » ябл.» EndАлексей матевосов (alexm) нам все еще функцию =ПСТР() вСПАСИБО!!!!РАБОТАЕТ!!! БОЛЬШОЕ СПАСИБО!!!: InExSu, спасибо, что: Есть товарные категории работы с текстом
ищут второй и данная функция. Добавим
НО! Копирую формулу встать соответствие из Код =ЕСЛИ(ЕЧИСЛО(ПОИСК(«казачок»;A2));»11 казачок»;ЕСЛИ(ЕЧИСЛО(ПОИСК(«янтарный замок», если ячейка написанный прописными буквами
Для поиска на текущем секунд и сообщить, Sub: Вариант, работающий в нужно выделять 2006-й формуле правила. Данная
УРА!
ответили. К наименованию 3000 ячеек, например,
в Excel третий пробелы в нули в начале значение принимает верное. столбца В листа
замок»;A2));»10 янтарный замок»;»?»)) содержит текст «янтарный текст, начинающийся со листе или во помогла ли она
Tanya15 любой версии Excel год или группу функция возвращает частьДобавлено через 19 минут товара необходимо подтянуть «скобы, скрепки» иЧитайте так же: как
строке. ПОИСК(» «;A3;1) числа. Если ввести Ввожу руками, результат «списки». Для примераHugo121
замок» и если стандартного префикса, принятого всей книге можно
вам, с помощью: Мой пример=ЕСЛИ (ЕЧИСЛО (ПОИСК «C». строки, взятой сА главное так
категорию товара. Например, перечень товара Доп.заказ перевести число и находит первый пробел
вручную, Excel их не корректный… Что написала что должно: В вопросе Вы ячейка содержит текст
в организации, например выбрать в поле кнопок внизу страницы.Sub Кнопка2_Щелчок() («анонс»;A1))+ЕЧИСЛО (ПОИСК («икона»;A1))+ЕЧИСЛОВ решении данной задачи каждой ячейки столбца быстро ответили, просто наименование товара «Доп.
Скобы для степлера***, сумму прописью. слева (перед отчеством). удалит. Поэтому введем
делаю не так получиться. Выбирать фильтром как раз усложнили «казачок», то ввести
ИН_ или ТУ-.Искать Для удобства также
Dim i As (ПОИСК («суббота»;A1));A1;»») нам поможет дополнительная A, что указано невероятное чудо!!! Спасибо!
заказ Сироп ****»,
Доп. заказ СкобаСинтаксис функции ПОИСК: К найденному результату формулу: не понятно. Когда,
очень долго( — то «янтарный текст «11 казачок». Существует несколько способоввариант приводим ссылку на Single, j AsPS. Прошу прощение
текстовая функция в в первом аргументе. Будьте здоровы! а категория «Соусы, №24 (17000 ячеек)«искомый текст» — что добавляем единицу (+1).Если нужно вернуть прежние
ввожу «»,слежу, чтобыВитушка замок», то «замок Т.е. Если ячейка проверки ячейки наЛист оригинал (на английском
Single, s As за повтор. Не
формуле =НАЙТИ(). В Ссылка в первом
У нас имеется данные кетчупы, сиропы, томатная необходимо к перечню нужно найти; Получаем ту позицию, числовые значения (без стояла английская раскладка: пример прилагаю янтарный», поэтому я А2 содержи текст наличие в нейили языке) . Single заметил формулу Александра первом случаи формула аргументе должна быть для анализа производимой
паста» — то товара подтянуть категорию,
«просматриваемый текст» — где с которой будем нулей), то используем на клавиатуре.Витушка и предложил тот
«янтарный замок», то текста с учетомКнигаПредположим, что вы хотитеs = 0 в комментариях. Правда будет выглядеть так: относительной, так как продукции. Нам нужно
есть и сироп выбрав лишь часть искать; искать второй пробел. оператор «—»:Очень хочется понять: Формула
готовый макрос. И в ячейку В2
регистра.. убедиться, что столбецFor i = моя чуть короче.Для удобного выделения идентификаторов формула применяется к автоматически выделить все не первое слово, слова из категории«начальная позиция» — сЧасть формулы – ПОИСК(«Обратите внимание, что значения как работает этаКазанский формулу такую длинную. ввести текст «10Для выполнения этой задачиНажмите кнопку содержит текст, не 2 To 6 :-) с разной длинной каждой ячейке столбца изделия, которые были и окончание слова
за минусом окончания какой позиции начинать «;A3;ПОИСК(» «;A3;1)+1) – теперь отображаются в формула, в впрекрасно работает иНо если порядок янтарный замок» и используется функция СОВПАДНайти все номера. Или perhapsyouFor j =Вот еще формула текстовой строки товаров
A. Во втором выпущены в 2006 другое, что мешаетChe79 искать (по умолчанию находит второй пробел. числовом формате. целом, и где для Вашего примера
слов всегда правильный, если ячейка А2 .или необходимо найти все 1 To 6ЕСЛИ (СЧЁТЕСЛИ (A1;»*анонс*»)+СЧЁТЕСЛИ из группы «C»
CyberForum.ru
Функции для работы с текстом в Excel
аргументе функции указывается году. К сожалению, поиску. Есть возможность: – 1). Это будет конечная
Примеры функции ТЕКСТ в Excel
допускаешь ошибку…Формула не Код =ЕСЛИОШИБКА(ИНДЕКС(списки!B$1:B$6;ПОИСКПОЗ(ЛОЖЬ;ЕНД(ПОИСКПОЗ(«*»&списки!A$1:A$6&»*»;A2;));));»-«) то конечно всё содержи текст «казачок»,Примечание:Найти далее заказы, которые соответствуютIf Cells(i, j)
(A1;»*икона*»)+СЧЁТЕСЛИ (A1;»*суббота*»);A1;»») используем такую формулу: номер символа исходного в таблице недостает как то этоsweta212Если нужно учитывать регистр, позиция отчества.Отдельные текстовые функции и выдает ошибку, она
Витушка проще. то в ячейку Функция СОВПАД учитывает регистр,
. определенным Продавец. Если = «яблоко» Then
Tanya15Функция =НАЙТИ() выполняет поиск текста, с которого еще одного столбца свести? Использовала формулу, в описании у используется функция НАЙТИ.Далее из общей длины
их комбинации позволяют возвращает 0, если
: Я понимаю, чтоСтоп, кажется мне В2 ввести текст но не учитываетНайти все у вас нетs = s: Здравствуйте, подскажите, пожалуйста, фрагмента текста в должен начаться отрезок содержащего значения года=ПРОСМОТР(2;1/ПОИСК(классификатор!$H$2:$H$2617;D6);классификатор!$H$2:$H$2617)
Вас скобы, скрепки,Евгений8510 строки отнимается количество распределить слова из нет замены. я дурак. Мучаюсь очки пора доставать… «11 казачок».
различия в форматировании.списки каждого экземпляра проблемой верхний или + Cells(i, j
как правильно прописать ячейке Excel. Потом строки. В третьем
производства каждого изделия.
Функция разделения текста в Excel
нашла только 3000 степлеры, а во: Уважаемые форумчане, подскажите знаков с начала одной ячейки в
- Для удобства работы с уже час. Но Там небыло вариантаБуду благодарна за
- Для выполнения этой задачи элемента, который необходимо нижний регистр текста, + 1)
- код VBA. возвращает номер символа, аргументе указывается количество Но видно, что товаров из 17000, вложении чай с пожалуйста как решить
строки до второго отдельные ячейки: текстом в Excel мне не ввести «замок янтарный»?
помощь. используются функции СОВПАД найти, и позволяет существует несколько способов
End IfНеобходимо в диапазоне в котором был символов, которые нужно в фрагменте идентификатора в основном при сиропом и кетчупом задачу с текстом. пробела. Результат –ЛЕВСИМВ (текст; кол-во знаков) существуют текстовые функции. формулу массива(((Если не
Анастасия_П
IvanOK и или . сделать активной ячейки, проверки, если ячейкаNext j текстовых ячеек найти найдет текст, который взять после определенного (ID) изделия указывается
полном совпадении слов, и названия листовНа листе1, есть число символов справа,
– отображает заданное Они облегчают обработку сложно, можно вставить: Ураааа!!! Работает!!! Спасибо-преспасибо!!!:Примечание: выбрав нужное вхождение. содержит текст.Cells(i, 7) = ячейки которые содержат задан в первом (во втором аргументе) год производства. В но получила обратный
«категории» и «наименование». столбец «В» в которые нужно вернуть. число знаков с сразу сотен строк.
ее в файл? Всем всем всемАнастасия_П При вводе формулы в Можно сортировать результатыДля поиска текста можно s
слово, например «яблоко». аргументе. Во втором символа исходного текста.
Функция объединения текста в Excel
таком случае нам эффект — категория Куда что притягивать? котором текст, изФормула «для отчества» строится
начала ячейки; Рассмотрим некоторые из
А?Формула не дает, ближе к делу примере должны бытьНайти также использовать фильтр.s = 0 Т.е. есть ячейки аргументе указываем где В результате функция нужно выполнить поиск «Бра» подтянулась ко Нарисуйте желаемый результат него нужно извлечь
по тем жеПРАВСИМВ (текст; кол-во знаков)
них на примерах.
OlesyaSh вносить много аргументов…Когда давайте сюда пример формула массива. Послевсе, щелкнув заголовок.
Функция ПОИСК текста в Excel
Дополнительные сведения см.Next i с текстом «зеленое искать текст. А
=ПСТР() возвращает только по части текста всем товарам где вручную в нескольких часть текста в принципам:
– возвращает заданноеПреобразует числа в текст.: копируете формулу, вставляете «достраиваю» формулу, такHugo121 ввода формулы. НажмитеПримечание: в статье Фильтрация
End Sub яблоко», «красное яблоко», третий аргумент –
часть текста длинной в Excel. А встречались данные буквы
ячейках.
- столбец «С» ,Для объединения значений из
- количество знаков с Синтаксис: значение (числовое
- куда надо и и пишет, что: Можете переработать кучу клавишу F2 и
Чтобы прекратить процесс поиска, данных.
exceltable.com
Поиск части текста в ячейке
итогояблоко1арбуз25яблоко2526апельсин2апельсин26арбуз140зеленое яблоко 3яблоко24вишня8624яблоко «яблоко» и тд, это номер позиции 4 символа взятого
потом мы будем внутри слова, напримерbmv98rus а список нужного нескольких ячеек в конца ячейки; или ссылка на сразу же - слишком много аргументов… готовых решений из
нажмите клавиши CTRL нажмите клавишу ESC.Выполните следующие действия, чтобы арбуз 4апельсин28зеленое яблоко920красное
необходимо, что бы с какого символа
начиная с 5-ой использовать условное форматирование «собранный»: текста, находится на одну строку используется
ПОИСК (искомый текст; диапазон ячейку с формулой,
держите зажатыми CtrlДобавлено через 15 минут темы Поиск и + SHIFT +
Для выполнения этой задачи найти ячейки, содержащие яблоко5красное яблоко33апельсин320 он нашел всех вести поиск в буквы в каждой
с текстовыми функциямиPelenaChe79 листе2. Заранее благодарен оператор амперсанд (&)
для поиска; начальная дающей в результате
и Shift, нажимаетеФормула не дает выделение в таблице ВВОД. Microsoft Excel используется функция определенный текст.В итоге считает их. исходном тексте. Третий ячейки из столбца в формуле. Благодаря
CyberForum.ru
Поиск в диапазоне ячеек части текста из другого диапазона (Формулы/Formulas)
: На форуме есть, так там даже за помощь. или функция СЦЕПИТЬ. позиция) – показывает число); формат (для Enter. вносить много аргументов…Когда по нескольким параметрам вставляет фигурные скобкиЕТЕКСТВыделите диапазон ячеек, среди только «яблоко», а
V аргумент позволяет нам А. Это «2005» этому молниеносно реализуем тема про нечеткий помечено Offtop :-)snipeНапример, значения расположены в позицию первого появления отображения числа впотом протягиваете ее «достраиваю» формулу, такРекомендую моё в начале и
. которых требуется осуществить зеленые и красные: и что дальше смещаться по строке.
или «2006». После решение задачи. поиск Простая метрикаsweta212: разных столбцах (ячейках): искомого знака или виде текста). вниз. и пишет, чтоАнастасия_П конце формулу. ЕслиДля возвращения результатов для поиск. не учитывает. Необходимо, с этим делать Например, если в функции стоит операторПример таблицы производимой продукции:
сходства текстовых строк: bmv98rus, Che79, спасибо,Евгений8510Ставим курсор в ячейку, строки при просмотреСамая полезная возможность функциик тому же слишком много аргументов…: вот вложение формула не будет условия, которое можно
Чтобы выполнить поиск по чтобы считал по будете? идентификаторе 2 раза сравнения к значениюЧтобы на основе идентификатораПосмотрите результат с
что ответили. К,
где будут находиться слева направо
ТЕКСТ – форматирование Вам ответили наКазанскийHugo121 введена как формула указать с помощью всему листу, щелкните всем ячейкам вкак вариант таблицу используется символ «C». строки «2006». Если выделить изделия 2006-го одной из функций. наименованию товара необходимонаверное не тот объединенные три значения.При разделении текста в числовых данных для
другом форуме))))Урррааааа! Получилось.: Составьте на другом: Хотя для таких массива, ошибка #VALUE! функции любую ячейку. которых содержится слово загнать в массив В таком случае ячейка содержит такую года выпуска выполним
100%-го результата, конечно, подтянуть категорию товара. файлик прикрепили Вводим равно. Выбираем строке учитывается положение
объединения с текстовыми Просто чудеса. Но
листе таблицу соответствия 2-х условий можно возвращается. Дополнительные сведения
ЕслиНа вкладке «яблоко» и циклом перебирать
excelworld.ru
Поиск фрагментов текста в ячейке
третий аргумент пользователь часть текста значит шаги следующих действий: не будет, но Например, наименование товараЕвгений8510 первую ячейку с каждого знака. Пробелы данными. Без использования
все не так фрагмент-номер в ст. формулами сделать - о формулах массива.ГлавнаяКазанский . задает в зависимости ей будет присвоенВыделите диапазон ячеек A2:A10
как вариант… «Доп. заказ Сироп
: Да к сожалению
текстом и нажимаем показывают начало или
функции Excel «не просто, задача на А и В, вот начало:
читайте в статьеДля выполнения этой задачи
в группе: Tanya15, If Cells(i,
Пытливый
от ситуации. новый формат. и выберите инструмент:В формуле можно
CyberForum.ru
Условное форматирование по части текста в ячейке Excel
****», а категория не тот… приношу на клавиатуре &. конец искомого имени. понимает», как показывать самом деле сложнее. в ст. С=IF((FIND(«янтарный»,LOWER(A2),1)>0)+(FIND(«замок»,LOWER(A2),1)>0)=2,»10 янтарный замок»,»»)Сюда рекомендации и примеры используются функцииРедактирование j) like «*яблоко*»: Варианты: Воспользоваться методомТак как функция возвращаетАналогичным способом можно использовать «ГЛАВНАЯ»-«Стили»-«Условное форматирование»-«Создать правило». поиграться с последним «Соусы, кетчупы, сиропы, свои извинения уважаемые Затем – знакРаспределим с помощью функций числа, и преобразует Боялась что не «протяните» формулу, которая навесить обработку ошибки
формул массива.
Еслинажмите кнопку Then Find для диапазона.
- нужное число мы и другие текстовыеВыберите: «Использовать формулу для
- аргументом — % томатная паста» -
- коллеги. Прикрепляю нужный пробела, заключенный в имя, фамилию и их в базовый
- разберусь и сначала склеит эти данные. и ещё вложитьДля выполнения этой задачи,Найти и выделить
Tanya15 Вопрос — что
прекрасно используем ее функции в условном определения форматируемых ячеек». совпадения
то есть и
Функция ПСТР и ее пример в использования условном форматировании
файл. кавычки (“ “). отчество в разные формат. проблему озвучила попроще.В основной таблице аналогичный IF для используются функции Если,Поиски нажмите кнопку: Все так просто дальше с ними в качестве аргументов форматировании. Например, сЧтобы выполнить поиск частиНаташа Демчук сироп не первоеAleksSid Снова — &. столбцы.Покажем на примере. Допустим, А Может быть используйте такую формулу казачков. Поиски ЕЧИСЛО .иНайтиСпасибо! делать надо? для других функций помощью функции =ПРАВСИМВ() текста в ячейке: Помогите, пожалуйста, прописать слово, и окончание: Вариант. Код =ПРОСМОТР(2;1/ПОИСК(Лист2!$B$2:$B$9;B3);Лист2!$B$2:$B$9) И так последовательноВ первой строке есть нужно объединить текст получится вообще одной Код =ИНДЕКС(Лист1!$C$1:$C$99;ПОИСКПОЗ(ЛОЖЬ;ЕНД(ПОИСКПОЗ(«*»&Лист1!$A$1:$A$99&»*»;A2;));)) ЭтоНу или сПримечание:ЕЧИСЛО.Nordheimupd V, опередил (ПСТР и ПРАВСИМВ). мы можем экспонировать Excel, введите формулу: формулу. Видела похожие слова другое, чтоЕвгений8510 соединяем ячейки с
только имя и в строках и формулой обойтись. Смысл формула требует ввода допстолбцами сделать, чтоб В функции НАЙТИ учитывается.В поле: под ваш пример. с вопросом!
Помогите составить формулу: цветом определенную группу =ПСТР(A2;5;4)=»2006″ обращения к Вам мешает поиску. Есть: Огромное спасибо AleksSi, текстом и пробелы. фамилия, разделенные пробелом. числовые значения: в том, что как формула массива, голову меньше ломать
регистр букв.Примечание:НайтиSub test() DimNordheimЕсли среди текста товаров из партииНажмите на кнопку «Формат», за помощью, но возможность как то это то чтоПолучаем в одной ячейке Формула для извлеченияИспользование амперсанда без функции если в столбце т.е. нажатием Ctrl+Shift+Enter,
— в соседнийНа приведенном выше рисунке Функциявведите текст — i&, iCnt1&, iCnt2&,: Sub test() Dim
в ячейке A1 C. Для этого чтобы задать красный что-то у меня это свести? Использовала
нужно, красивое решение. объединенные значения: имени: =ЛЕВСИМВ(A2;ПОИСК(» «;A2;1)). ТЕКСТ дает «неадекватный» А листа «отчет» и отображается в столбец вытянуть казачков, формуле используются аргументы,поиска или номера —, arr(), ikey ‘1 i&, iCnt1&, iCnt2&, есть текст «Анонс» нужно использовать формулу: цвет заливки для не выходит сделать формулуAlexMИспользование функции СЦЕПИТЬ: Для определения второго результат: не нашлось фрагмента, фигурных скобках. затем в третий
указанные ниже.не учитывается регистр. вам нужно найти. вариант For Each arr() ‘1 вариант или «икона» или
exceltable.com
Поиск текста в ячейке excel
Здесь все просто функция
ячейки. И нажмите самостоятельно. Очень Надо=ПРОСМОТР(2;1/ПОИСК(классификатор!$H$2:$H$2617;D6);классификатор!$H$2:$H$2617): Если нужен диапазонС помощью кавычек в аргумента функции ЛЕВСИМВExcel вернул порядковый номер
соответствующего столбцу А
В таком виде собрать то, чтоФормула для поиска текста
Примечание:
Или выберите из ikey In ActiveSheet.UsedRange поиск на листе «суббота», то содержимое позволяет выбрать часть
ОК на всех Спасибо.
нашла только 3000 с запасом Код формуле можно добавить – количества знаков
для даты и листа «списки», просматривается она рассчитана на
без ошибок.
искомая строкаМы стараемся как раскрывающегося списка
If UCase(ikey.Value) Like For i = ячейки A1 скопировать
текста из ячейки открытых окнах.Суть задачи: надо товаров из 17000, =ПРОСМОТР(2;1/ПОИСК(Лист2!B$2:B$99;B3)/(Лист2!B$2:B$99<>»»);Лист2!B$2:B$99) Можно добавлять в конечное выражение
– используется функция
общий формат вместо столбец В, если
Поиск ячеек, содержащих определенное слова (VBA)
таблицу номеров длинойКстати, пример не: вы хотите проверить. можно оперативнее обеспечивать
Найти UCase(«*яблоко*») Then iCnt1 1 To 100 в ячейку B1 Excel, начиная сЭкспонированные цветом изделия 2006-го чтобы в столбец в основном при список на листе2, любой знак или ПОИСК. Она находит
денежного. Чтобы избежать не находится и до 99 записей. соответствует тексту вопроса
Ячейка вас актуальными справочнымипоследнего поиска. = ikey(1, 2)
If UCase(Cells(i, 1).Value)Пример строки правой стороны исходного года выпуска: Е на листе полном совпадении слов,
не меняя формулу. текст.
пробел в ячейке подобного результата, применяется в нем, то При необходимости поменяйте — пример проще.: ячейку, содержащую текст, материалами на вашемПримечание: + iCnt1 Next Like UCase(«яблоко») Thenmovie 0:00:35.00 Z:1-Анонс текста. Количество необходимыхДалее разберем принцип действия «ДАННЫЕ» попала соответствующая но получила обратныйФормулу можно поместитьФункция ПОИСК возвращает начальную А2, начиная слева. функция ТЕКСТ. Она столбец С. Если 99 на другое Я делал по который требуется проверить. языке. Эта страница В условиях поиска можно ikey MsgBox «На iCnt1 = iCnt1 0,35 Икона стиля символов указано во
формулы и ее статья расходов из
эффект — категория
в функцию ЕСЛИОШИБКА(), позицию искомого текстаФормула для извлечения фамилии: форматирует значения по
поможете, будет очень
число. вопросу
Анастасия_П переведена автоматически, поэтому
использовать подстановочные знаки. листе » &
+ 1 Next (Воскресенье 14.00).mp4 втором аргументе функции
модификации схожими текстовыми
листа «СТАТЬЯ». Соответствующая
«Бра» подтянулась ко на случай, если
(без учета регистра).
С помощью функции ПОИСК
заданию пользователя.
здорово!! Файл приложилаДобрыйАнастасия_ПВообще я не
: Добрый день! ее текст можетЧтобы задать формат для iCnt1 & « i ‘2 вариантСпасибо всем откинувшимся! ПРАВСИМВ. После чего функциями.
статья прописана в всем товарам где поиск не дал Например:
Excel определяет количествоФормула «для даты» теперь день!
: Все работает, благодарю формулист — наверняка
Помогите решить задачу. содержать неточности и поиска, нажмите кнопку ябл.» End Sub поиск в массивеПолосатый жираф алик все что возвращает столбце D на встречались данные буквы результата.Функция ПОИСК вернула позицию знаков для функции
planetaexcel.ru
выглядит так:
На чтение 10 мин Просмотров 13.8к. Опубликовано 31.07.2020
Содержание
- 5 thoughts on “ «ВПР» по частичному совпадению ”
- Проверяем условие для полного совпадения текста.
- ЕСЛИ + СОВПАД
- Использование функции ЕСЛИ с частичным совпадением текста.
- ЕСЛИ + ПОИСК
- ЕСЛИ + НАЙТИ
- Примеры использования функции ПОИСКПОЗ в Excel
- Формула для поиска неточного совпадения текста в Excel
- Сравнение двух таблиц в Excel на наличие несовпадений значений
- Поиск ближайшего большего знания в диапазоне чисел Excel
- Особенности использования функции ПОИСКПОЗ в Excel
Спустя катастрофически большой промежуток времени с момента публикации моего последнего поста, решил поделиться супер крутой, на мой взгляд, Excel-формулой, узнав о которой, начинаешь удивляться, как же раньше-то я жил без нее. Но, должен сказать, авторство ее создания не мое, а вероятнее всего принадлежит англоязычному ресурсу, о котором я скажу ниже.
Кто более-менее часто работает с массивами данных в Excel почти наверняка знает про функцию ВПР (см. мою статью) или ИНДЕКС+ПОИСКПОЗ, которые решают достаточно частую задачу по объединению двух наборов данных по каким-либо совпадающим значениям. И действительно, использование этих функций решает задачи по сопоставлению и объединению данных в 90% случаев. Если бы не одно но — данные, по которым производится объединение, действительно должны именно совпадать. Но бывают случаи, когда требуется сопоставление по частичному совпадению. Да, в ВПР есть поиск по приблизительному совпадению, но работает он не совсем прозрачно, а потому предугадать, почему было подобрано одно похожее слово, а не другое, может быть невозможно не просто. Как вы поняли, эту прелюдию я затеял не просто так, а для того, чтобы рассказать, как же решить такую задачу при помощи Excel.
Предположим, у нас есть список товаров, которые надо как-то сгруппировать:
5 thoughts on “ «ВПР» по частичному совпадению ”
На форуме SQL.ru мне подсказали еще одно очень изящное решение этой задачи, посмотреть его можно здесь:
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&t > Спасибо большое, Казанский (автор совета)!
Игорь, спасибо Вам огромное за эту «бронебойную» формулу. Весь интернет «перелопатила» в поиске решения своей задачи и только Вы мне помогли на 100%. Всё работает как часики. Удачи Вам, успешной работы и ещё больше таких гениальных решений.
Ольга, спасибо большое за Ваш комментарий! Справедливости ради надо сказать, что идея этой формулы не моя, а обнаружил я ее на сайте Exceljet
Игорь, добрый день!
Формула прекрасная, но есть ли какая-нибудь ее вариация, которая может находить и подставлять несколько значений сразу?
Например, в строке указаны два производителя холодильников, LG и Samsung
Можно ли вывести их в ячейку через запятую?
Добрый день, Артём!
Спасибо за ваш комментарий и прошу прощения за медленный ответ. Вопрос интересный, но с ходу у меня на него ответа, увы, нет, а по времени довольно сильно ограничен. Если будет свободное время, попробую поломать голову на эту тему
Рассмотрим использование функции ЕСЛИ в Excel в том случае, если в ячейке находится текст.
Будьте особо внимательны в том случае, если для вас важен регистр, в котором записаны ваши текстовые значения. Функция ЕСЛИ не проверяет регистр – это делают функции, которые вы в ней используете. Поясним на примере.
Проверяем условие для полного совпадения текста.
Проверку выполнения доставки организуем при помощи обычного оператора сравнения «=».
=ЕСЛИ(G2=»выполнено»,ИСТИНА,ЛОЖЬ)
При этом будет не важно, в каком регистре записаны значения в вашей таблице.
Если же вас интересует именно точное совпадение текстовых значений с учетом регистра, то можно рекомендовать вместо оператора «=» использовать функцию СОВПАД(). Она проверяет идентичность двух текстовых значений с учетом регистра отдельных букв.
Вот как это может выглядеть на примере.
Обратите внимание, что если в качестве аргумента мы используем текст, то он обязательно должен быть заключён в кавычки.
ЕСЛИ + СОВПАД
В случае, если нас интересует полное совпадение текста с заданным условием, включая и регистр его символов, то оператор «=» нам не сможет помочь.
Но мы можем использовать функцию СОВПАД (английский аналог — EXACT).
Функция СОВПАД сравнивает два текста и возвращает ИСТИНА в случае их полного совпадения, и ЛОЖЬ — если есть хотя бы одно отличие, включая регистр букв. Поясним возможность ее использования на примере.
Формула проверки выполнения заказа в столбце Н может выглядеть следующим образом:
Как видите, варианты «ВЫПОЛНЕНО» и «выполнено» не засчитываются как правильные. Засчитываются только полные совпадения. Будет полезно, если важно точное написание текста — например, в артикулах товаров.
Использование функции ЕСЛИ с частичным совпадением текста.
Выше мы с вами рассмотрели, как использовать текстовые значения в функции ЕСЛИ. Но часто случается, что необходимо определить не полное, а частичное совпадение текста с каким-то эталоном. К примеру, нас интересует город, но при этом совершенно не важно его название.
Первое, что приходит на ум – использовать подстановочные знаки «?» и «*» (вопросительный знак и звездочку). Однако, к сожалению, этот простой способ здесь не проходит.
ЕСЛИ + ПОИСК
Нам поможет функция ПОИСК (в английском варианте – SEARCH). Она позволяет определить позицию, начиная с которой искомые символы встречаются в тексте. Синтаксис ее таков:
=ПОИСК(что_ищем, где_ищем, начиная_с_какого_символа_ищем)
Если третий аргумент не указан, то поиск начинаем с самого начала – с первого символа.
Функция ПОИСК возвращает либо номер позиции, начиная с которой искомые символы встречаются в тексте, либо ошибку.
Но нам для использования в функции ЕСЛИ нужны логические значения.
Здесь нам на помощь приходит еще одна функция EXCEL – ЕЧИСЛО. Если ее аргументом является число, она возвратит логическое значение ИСТИНА. Во всех остальных случаях, в том числе и в случае, если ее аргумент возвращает ошибку, ЕЧИСЛО возвратит ЛОЖЬ.
В итоге наше выражение в ячейке G2 будет выглядеть следующим образом:
Еще одно важное уточнение. Функция ПОИСК не различает регистр символов.
ЕСЛИ + НАЙТИ
В том случае, если для нас важны строчные и прописные буквы, то придется использовать вместо нее функцию НАЙТИ (в английском варианте – FIND).
Синтаксис ее совершенно аналогичен функции ПОИСК: что ищем, где ищем, начиная с какой позиции.
Изменим нашу формулу в ячейке G2
То есть, если регистр символов для вас важен, просто замените ПОИСК на НАЙТИ.
Итак, мы с вами убедились, что простая на первый взгляд функция ЕСЛИ дает нам на самом деле много возможностей для операций с текстом.
Функция ПОИСКПОЗ в Excel используется для поиска точного совпадения или ближайшего (меньшего или большего заданному в зависимости от типа сопоставления, указанного в качестве аргумента) значения заданному в массиве или диапазоне ячеек и возвращает номер позиции найденного элемента.
Примеры использования функции ПОИСКПОЗ в Excel
Например, имеем последовательный ряд чисел от 1 до 10, записанных в ячейках B1:B10. Функция =ПОИСКПОЗ(3;B1:B10;0) вернет число 3, поскольку искомое значение находится в ячейке B3, которая является третьей от точки отсчета (ячейки B1).
Данная функция удобна для использования в случаях, когда требуется вернуть не само значение, содержащееся в искомой ячейке, а ее координату относительно рассматриваемого диапазона. В случае использования для констант массивов, которые могут быть представлены как массивы элементов «ключ» — «значение», функция ПОИСКПОЗ возвращает значение ключа, который явно не указан.
Например, массив <«виноград»;»яблоко»;»груша»;»слива»>содержит элементы, которые можно представить как: 1 – «виноград», 2 – «яблоко», 3 – «груша», 4 – «слива», где 1, 2, 3, 4 – ключи, а названия фруктов – значения. Тогда функция =ПОИСКПОЗ(«яблоко»;<«виноград»;»яблоко»;»груша»;»слива»>;0) вернет значение 2, являющееся ключом второго элемента. Отсчет выполняется не с 0 (нуля), как это реализовано во многих языках программирования при работе с массивами, а с 1.
Функция ПОИСКПОЗ редко используется самостоятельно. Ее целесообразно применять в связке с другими функциями, например, ИНДЕКС.
Формула для поиска неточного совпадения текста в Excel
Пример 1. Найти позицию первого частичного совпадения строки в диапазоне ячеек, хранящих текстовые значения.
Вид исходной таблицы данных:
Для нахождения позиции текстовой строки в таблице используем следующую формулу:
Из полученного значения вычитается единица для совпадения результата с id записи в таблице.
Сравнение двух таблиц в Excel на наличие несовпадений значений
Пример 2. В Excel хранятся две таблицы, которые на первый взгляд кажутся одинаковыми. Было решено сравнить по одному однотипному столбцу этих таблиц на наличие несовпадений. Реализовать способ сравнения двух диапазонов ячеек.
Вид таблицы данных:
Для сравнения значений, находящихся в столбце B:B со значениями из столбца A:A используем следующую формулу массива (CTRL+SHIFT+ENTER):
Функция ПОИСКПОЗ выполняет поиск логического значения ИСТИНА в массиве логических значений, возвращаемых функцией СОВПАД (сравнивает каждый элемент диапазона A2:A12 со значением, хранящимся в ячейке B2, и возвращает массив результатов сравнения). Если функция ПОИСКПОЗ нашла значение ИСТИНА, будет возвращена позиция его первого вхождения в массив. Функция ЕНД возвратит значение ЛОЖЬ, если она не принимает значение ошибки #Н/Д в качестве аргумента. В этом случае функция ЕСЛИ вернет текстовую строку «есть», иначе – «нет».
Чтобы вычислить остальные значения «протянем» формулу из ячейки C2 вниз для использования функции автозаполнения. В результате получим:
Как видно, третьи элементы списков не совпадают.
Поиск ближайшего большего знания в диапазоне чисел Excel
Пример 3. Найти ближайшее меньшее числу 22 в диапазоне чисел, хранящихся в столбце таблицы Excel.
Вид исходной таблицы данных:
Для поиска ближайшего большего значения заданному во всем столбце A:A (числовой ряд может пополняться новыми значениями) используем формулу массива (CTRL+SHIFT+ENTER):
Функция ПОИСКПОЗ возвращает позицию элемента в столбце A:A, имеющего максимальное значение среди чисел, которые больше числа, указанного в ячейке B2. Функция ИНДЕКС возвращает значение, хранящееся в найденной ячейке.
Для поиска ближайшего меньшего значения достаточно лишь немного изменить данную формулу и ее следует также ввести как массив (CTRL+SHIFT+ENTER):
Особенности использования функции ПОИСКПОЗ в Excel
Функция имеет следующую синтаксическую запись:
=ПОИСКПОЗ( искомое_значение;просматриваемый_массив; [тип_сопоставления])
- искомое_значение – обязательный аргумент, принимающий текстовые, числовые значения, а также данные логического и ссылочного типов, который используется в качестве критерия поиска (для сопоставления величин или нахождения точного совпадения);
- просматриваемый_массив – обязательный аргумент, принимающий данные ссылочного типа (ссылки на диапазон ячеек) или константу массива, в которых выполняется поиск позиции элемента согласно критерию, заданному первым аргументом функции;
- [тип_сопоставления] – необязательный для заполнения аргумент в виде числового значения, определяющего способ поиска в диапазоне ячеек или массиве. Может принимать следующие значения:
- -1 – поиск наименьшего ближайшего значения заданному аргументом искомое_значение в упорядоченном по убыванию массиве или диапазоне ячеек.
- 0 – (по умолчанию) поиск первого значения в массиве или диапазоне ячеек (не обязательно упорядоченном), которое полностью совпадает со значением, переданным в качестве первого аргумента.
- 1 – Поиск наибольшего ближайшего значения заданному первым аргументом в упорядоченном по возрастанию массиве или диапазоне ячеек.
- Если в качестве аргумента искомое_значение была передана текстовая строка, функция ПОИСКПОЗ вернет позицию элемента в массиве (если такой существует) без учета регистра символов. Например, строки «МоСкВа» и «москва» являются равнозначными. Для различения регистров можно дополнительно использовать функцию СОВПАД.
- Если поиск с использованием рассматриваемой функции не дал результатов, будет возвращен код ошибки #Н/Д.
- Если аргумент [тип_сопоставления] явно не указан или принимает число 0, для поиска частичного совпадения текстовых значений могут быть использованы подстановочные знаки («?» — замена одного любого символа, «*» — замена любого количества символов).
- Если в объекте данных, переданном в качестве аргумента просматриваемый_массив, содержится два и больше элементов, соответствующих искомому значению, будет возвращена позиция первого вхождения такого элемента.
Skip to content
В этой статье мы рассмотрим разные подходы к одной из самых распространенных и, по моему мнению, важных задач в Excel — как найти в ячейках и в столбцах таблицы повторяющиеся значения.
Работая с большими наборами данных в Excel или объединяя несколько небольших электронных таблиц в более крупные, вы можете столкнуться с большим числом одинаковых строк.
И сегодня я хотел бы поделиться несколькими быстрыми и эффективными методами выявления дубликатов в одном списке. Эти решения работают во всех версиях Excel 2016, Excel 2013, 2010 и ниже. Вот о чём мы поговорим:
- Поиск повторяющихся значений включая первые вхождения
- Поиск дубликатов без первых вхождений
- Определяем дубликаты с учетом регистра
- Как извлечь дубликаты из диапазона ячеек
- Как обнаружить одинаковые строки в таблице данных
- Использование встроенных фильтров Excel
- Применение условного форматирования
- Поиск совпадений при помощи встроенной команды «Найти»
- Определяем дубликаты при помощи сводной таблицы
- Duplicate Remover — быстрый и эффективный способ найти дубликаты
Самой простой в использовании и вместе с тем эффективной в данном случае будет функция СЧЁТЕСЛИ (COUNTIF). С помощью одной только неё можно определить не только неуникальные позиции, но и их первые появления в столбце. Рассмотрим разницу на примерах.
Поиск повторяющихся значений включая первые вхождения.
Предположим, что у вас в колонке А находится набор каких-то показателей, среди которых, вероятно, есть одинаковые. Это могут быть номера заказов, названия товаров, имена клиентов и прочие данные. Если ваша задача — найти их, то следующая формула для вас:
=СЧЁТЕСЛИ(A:A; A2)>1
Где А2 — первая ячейка из области для поиска.
Просто введите это выражение в любую ячейку и протяните вниз вдоль всей колонки, которую нужно проверить на дубликаты.
Как вы могли заметить на скриншоте выше, формула возвращает ИСТИНА, если имеются совпадения. А для встречающихся только 1 раз значений она показывает ЛОЖЬ.
Подсказка! Если вы ищите повторы в определенной области, а не во всей колонке, обозначьте нужный диапазон и “зафиксируйте” его знаками $. Это значительно ускорит вычисления. Например, если вы ищете в A2:A8, используйте
=СЧЕТЕСЛИ($A$2:$A$8, A2)>1
Если вас путает ИСТИНА и ЛОЖЬ в статусной колонке и вы не хотите держать в уме, что из них означает повторяющееся, а что — уникальное, заверните свою СЧЕТЕСЛИ в функцию ЕСЛИ и укажите любое слово, которое должно соответствовать дубликатам и уникальным:
=ЕСЛИ(СЧЁТЕСЛИ($A$2:$A$17; A2)>1;»Дубликат»;»Уникальное»)
Если же вам нужно, чтобы формула указывала только на дубли, замените «Уникальное» на пустоту («»):
=ЕСЛИ(СЧЁТЕСЛИ($A$2:$A$17; A2)>1;»Дубликат»;»»)
В этом случае Эксель отметит только неуникальные записи, оставляя пустую ячейку напротив уникальных.
Поиск неуникальных значений без учета первых вхождений
Вы наверняка обратили внимание, что в примерах выше дубликатами обозначаются абсолютно все найденные совпадения. Но зачастую задача заключается в поиске только повторов, оставляя первые вхождения нетронутыми. То есть, когда что-то встречается в первый раз, оно однозначно еще не может быть дубликатом.
Если вам нужно указать только совпадения, давайте немного изменим:
=ЕСЛИ(СЧЁТЕСЛИ($A$2:$A2; A2)>1;»Дубликат»;»»)
На скриншоте ниже вы видите эту формулу в деле.
Нетрудно заметить, что она не обозначает первое появление слова, а начинает отсчет со второго.
Чувствительный к регистру поиск дубликатов
Хочу обратить ваше внимание на то, что хоть формулы выше и находят 100%-дубликаты, есть один тонкий момент — они не чувствительны к регистру. Быть может, для вас это не принципиально. Но если в ваших данных абв, Абв и АБВ — это три разных параметра – то этот пример для вас.
Как вы могли уже догадаться, выражения, использованные нами ранее, с такой задачей не справятся. Здесь нужно выполнить более тонкий поиск, с чем нам поможет следующая функция массива:
{=ЕСЛИ(СУММ((—СОВПАД($A$2:$A$17;A2)))<=1;»»;»Дубликат»)}
Не забывайте, что формулы массива вводятся комбиинацией Ctrl + Shift + Enter.
Если вернуться к содержанию, то здесь используется функция СОВПАД для сравнения целевой ячейки со всеми остальными ячейками с выбранной области. Результат возвращается в виде ИСТИНА (совпадение) или ЛОЖЬ (не совпадение), которые затем преобразуются в массив из 1 и 0 при помощи оператора (—).
После этого, функция СУММ складывает эти числа. И если полученный результат больше 1, функция ЕСЛИ сообщает о найденном дубликате.
Если вы взглянете на следующий скриншот, вы убедитесь, что поиск действительно учитывает регистр при обнаружении дубликатов:
Смородина и арбуз, которые встречаются дважды, не отмечены в нашем поиске, так как регистр первых букв у них отличается.
Как извлечь дубликаты из диапазона.
Формулы, которые мы описывали выше, позволяют находить дубликаты в определенном столбце. Но часто речь идет о нескольких столбцах, то есть о диапазоне данных.
Рассмотрим это на примере числовой матрицы. К сожалению, с символьными значениями этот метод не работает.
При помощи формулы массива
{=ИНДЕКС(НАИМЕНЬШИЙ(ЕСЛИ(СЧЁТЕСЛИ($A$2:$E$11;$A$2:$E$11)>1;$A$2:$E$11);СТРОКА($1:$100)); НАИМЕНЬШИЙ(ЕСЛИОШИБКА(ЕСЛИ(ПОИСКПОЗ(НАИМЕНЬШИЙ(ЕСЛИ( СЧЁТЕСЛИ($A$2:$E$11;$A$2:$E$11)>1;$A$2:$E$11);СТРОКА($1:$100)); НАИМЕНЬШИЙ(ЕСЛИ(СЧЁТЕСЛИ($A$2:$E$11;$A$2:$E$11)>1;$A$2:$E$11); СТРОКА($1:$100));0)=СТРОКА($1:$100);СТРОКА($1:$100));»»);СТРОКА()-1))}
вы можете получить упорядоченный по возрастанию список дубликатов. Для этого введите это выражение в нужную ячейку и нажмите Ctrl+Alt+Enter
.
Затем протащите маркер заполнения вниз на сколько это необходимо.
Чтобы убрать сообщения об ошибке, когда дублирующиеся значения закончатся, можно использовать функцию ЕСЛИОШИБКА:
=ЕСЛИОШИБКА(ИНДЕКС(НАИМЕНЬШИЙ(ЕСЛИ(СЧЁТЕСЛИ($A$2:$E$11;$A$2:$E$11)>1;$A$2:$E$11); СТРОКА($1:$100));НАИМЕНЬШИЙ(ЕСЛИОШИБКА(ЕСЛИ(ПОИСКПОЗ( НАИМЕНЬШИЙ(ЕСЛИ(СЧЁТЕСЛИ($A$2:$E$11;$A$2:$E$11)>1;$A$2:$E$11); СТРОКА($1:$100));НАИМЕНЬШИЙ(ЕСЛИ(СЧЁТЕСЛИ($A$2:$E$11;$A$2:$E$11)>1;$A$2:$E$11); СТРОКА($1:$100));0)=СТРОКА($1:$100);СТРОКА($1:$100));»»);СТРОКА()-1));»»)
Также обратите внимание, что приведенное выше выражение рассчитано на то, что оно будет записано во второй строке. Соответственно выше него будет одна пустая строка.
Поэтому если вам нужно разместить его, к примеру, в ячейке K4, то выражение СТРОКА()-1 в конце замените на СТРОКА()-3.
Обнаружение повторяющихся строк
Мы рассмотрели, как обнаружить одинаковые данные в отдельных ячейках. А если нужно искать дубликаты-строки?
Есть один метод, которым можно воспользоваться, если вам нужно просто выделить одинаковые строки, но не удалять их.
Итак, имеются данные о товарах и заказчиках.
Создадим справа от наших данных формулу, объединяющую содержание всех расположенных слева от нее ячеек.
Предположим, что данные хранятся в столбцах А:C. Запишем в ячейку D2:
=A2&B2&C2
Добавим следующую формулу в ячейку E2. Она отобразит, сколько раз встречается значение, полученное нами в столбце D:
=СЧЁТЕСЛИ(D:D;D2)
Скопируем вниз для всех строк данных.
В столбце E отображается количество появлений этой строки в столбце D. Неповторяющимся строкам будет соответствовать значение 1. Повторам строкам соответствует значение больше 1, указывающее на то, сколько раз такая строка была найдена.
Если вас не интересует определенный столбец, просто не включайте его в выражение, находящееся в D. Например, если вам хочется обнаружить совпадающие строки, не учитывая при этом значение Заказчик, уберите из объединяющей формулы упоминание о ячейке С2.
Обнаруживаем одинаковые ячейки при помощи встроенных фильтров Excel.
Теперь рассмотрим, как можно обойтись без формул при поиске дубликатов в таблице. Быть может, кому-то этот метод покажется более удобным, нежели написание выражений Excel.
Организовав свои данные в виде таблицы, вы можете применять к ним различные фильтры. Фильтр в таблице вы можете установить по одному либо по нескольким столбцам. Давайте рассмотрим на примере.
В первую очередь советую отформатировать наши данные как «умную» таблицу. Напомню: Меню Главная – Форматировать как таблицу.
После этого в строке заголовка появляются значки фильтра. Если нажать один из них, откроется выпадающее меню фильтра, которое содержит всю информацию по данному столбцу. Выберите любой элемент из этого списка, и Excel отобразит данные в соответствии с этим выбором.
Вы можете убрать галочку с пункта «Выделить все», а затем отметить один или несколько нужных элементов. Excel покажет только те строки, которые содержат выбранные значения. Так можно обнаружить дубликаты, если они есть. И все готово для их быстрого удаления.
Но при этом вы видите дубли только по отфильтрованному. Если данных много, то искать таким способом последовательного перебора будет несколько утомительно. Ведь слишком много раз нужно будет устанавливать и менять фильтр.
Используем условное форматирование.
Выделение цветом по условию – весьма важный инструмент Excel, о котором достаточно подробно мы рассказывали.
Сейчас я покажу, как можно в Экселе найти дубли ячеек, просто их выделив цветом.
Как показано на рисунке ниже, выбираем Правила выделения ячеек – Повторяющиеся. Неуникальные данные будут подсвечены цветом.
Но здесь мы не можем исключить первые появления – подсвечивается всё.
Но эту проблему можно решить, использовав формулу условного форматирования.
=СЧЁТЕСЛИ($B$2:$B2; B2)>1
Результат работы формулы выденения повторяющихся значений вы видите выше. Они выделены зелёным цветом.
Чтобы освежить память, можете руководствоваться нашим материалом «Как изменить цвет ячейки в зависимости от значения».
Поиск совпадений при помощи команды «Найти».
Еще один простой, но не слишком технологичный способ – использование встроенного поиска.
Зайдите на вкладку Главная и кликните «Найти и выделить». Откроется диалоговое окно, в котором можно ввести что угодно для поиска в таблице. Чтобы избежать опечаток, можете скопировать искомое прямо из списка данных.
Затем нажимаем «Найти все», и видим все найденные дубликаты и места их расположения, как на рисунке чуть ниже.
В случае, когда объём информации очень велик и требуется ускорить работу поиска, предварительно выделите столбец или диапазон, в котором нужно искать, и только после этого начинайте работу. Если этого не сделать, Excel будет искать по всем имеющимся данным, что, конечно, медленнее.
Этот метод еще более трудоемкий, нежели использование фильтра. Поэтому применяют его выборочно, только для отдельных значений.
Как применить сводную таблицу для поиска дубликатов.
Многие считают сводные таблицы слишком сложным инструментом, чтобы постоянно им пользоваться. На самом деле, не все так запутано, как кажется. Для новичков рекомендую к ознакомлению наше руководство по созданию и работе со сводными таблицами.
Для более опытных – сразу переходим к сути вопроса.
Создаем новый макет сводной таблицы. А затем в качестве строк и значений используем одно и то же поле. В нашем случае – «Товар». Поскольку название товара – это текст, то для подсчета таких значений Excel по умолчанию использует функцию СЧЕТ, то есть подсчитывает количество. А нам это и нужно. Если будет больше 1, значит, имеются дубликаты.
Вы наблюдаете на скриншоте выше, что несколько товаров дублируются. И что нам это дает? А далее мы просто можем щелкнуть мышкой на любой из цифр, и на новом листе Excel покажет нам, как получилась эта цифра.
К примеру, откуда взялись 3 дубликата Sprite? Щелкаем на цифре 3, и видим такую картину:
Думаю, этот метод вполне можно использовать. Что приятно – никаких формул не требуется.
Duplicate Remover — быстрый и эффективный способ найти дубликаты в Excel
Теперь, когда вы знаете, как использовать формулы для поиска повторяющихся значений в Excel, позвольте мне продемонстрировать вам еще один быстрый, эффективный и без всяких формул способ: инструмент Duplicate Remover для Excel.
Этот универсальный инструмент может искать повторяющиеся или уникальные значения в одном столбце или же сравнивать два столбца. Он может находить, выбирать и выделять повторяющиеся записи или целые повторяющиеся строки, удалять найденные дубли, копировать или перемещать их на другой лист. Я думаю, что пример практического использования может заменить очень много слов, так что давайте перейдем к нему.
Как найти повторяющиеся строки в Excel за 2 быстрых шага
Сначала посмотрим в работе наиболее простой инструмент — быстрый поиск дубликатов Quick Dedupe. Используем уже знакомую нам таблицу, в которой мы выше искали дубликаты при помощи формул:
Как видите, в таблице несколько столбцов. Чтобы найти повторяющиеся записи в этих трех столбцах, просто выполните следующие действия:
- Выберите любую ячейку в таблице и нажмите кнопку Quick Dedupe на ленте Excel. После установки пакета Ultimate Suite для Excel вы найдете её на вкладке Ablebits Data в группе Dedupe. Это наиболее простой инструмент для поиска дубликатов.
- Интеллектуальная надстройка возьмет всю таблицу и попросит вас указать следующие две вещи:
- Выберите столбцы для проверки дубликатов (в данном примере это все 3 столбца – категория, товар и заказчик).
- Выберите действие, которое нужно выполнить с дубликатами. Поскольку наша цель — выявить повторяющиеся строки, я выбрал «Выделить цветом».
Помимо выделения цветом, вам доступен ряд других опций:
- Удалить дубликаты
- Выбрать дубликаты
- Указать их в столбце статуса
- Копировать дубликаты на новый лист
- Переместить на новый лист
Нажмите кнопку ОК и подождите несколько секунд. Готово! И никаких формул 😊.
Как вы можете видеть на скриншоте ниже, все строки с одинаковыми значениями в первых 3 столбцах были обнаружены (первые вхождения не идентифицируются как дубликаты).
Если вам нужны дополнительные возможности для работы с дубликатами и уникальными значениями, используйте мастер удаления дубликатов Duplicate Remover, который может найти дубликаты с первыми вхождениями или без них, а также уникальные значения. Подробные инструкции приведены ниже.
Мастер удаления дубликатов — больше возможностей для поиска дубликатов в Excel.
В зависимости от данных, с которыми вы работаете, вы можете не захотеть рассматривать первые экземпляры идентичных записей как дубликаты. Одно из возможных решений — использовать разные формулы для каждого сценария, как мы обсуждали в этой статье выше. Если же вы ищете быстрый, точный метод без формул, попробуйте мастер удаления дубликатов — Duplicate Remover. Несмотря на свое название, он не только умеет удалять дубликаты, но и производит с ними другие полезные действия, о чём мы далее поговорим подробнее. Также умеет находить уникальные значения.
- Выберите любую ячейку в таблице и нажмите кнопку Duplicate Remover на вкладке Ablebits Data.
- Вам предложены 4 варианта проверки дубликатов в вашем листе Excel:
- Дубликаты без первых вхождений повторяющихся записей.
- Дубликаты с 1-м вхождением.
- Уникальные записи.
- Уникальные значения и 1-е повторяющиеся вхождения.
В этом примере выберем второй вариант, т.е. Дубликаты + 1-е вхождения:
- Теперь выберите столбцы, в которых вы хотите проверить дубликаты. Как и в предыдущем примере, мы возьмём первые 3 столбца:
- Наконец, выберите действие, которое вы хотите выполнить с дубликатами. Как и в случае с инструментом быстрого поиска дубликатов, мастер Duplicate Remover может идентифицировать, выбирать, выделять, удалять, копировать или перемещать повторяющиеся данные.
Поскольку цель этого примера – продемонстрировать различные способы определения дубликатов в Excel, давайте отметим параметр «Выделить цветом» (Highlight with color) и нажмите Готово.
Мастеру Duplicate Remover требуется всего лишь несколько секунд, чтобы проверить вашу таблицу и показать результат:
Как видите, результат аналогичен предыдущему. Но здесь мы выделили дубликаты, включая и первое появление повторяющихся записей.
Никаких формул, никакого стресса, никаких ошибок — всегда быстрые и безупречные результаты
Итак, мы с вам научились различными способами обнаруживать повторяющиеся записи в таблице Excel. В следующих статьях разберем, что мы с этим можем полезного сделать.
Если вы хотите попробовать эти инструменты для поиска дубликатов в таблицах Excel, вы можете загрузить полнофункциональную ознакомительную версию программы. Будем очень признательны за ваши отзывы в комментариях!