Найти определённые символы в ячейках Excel
Возможности !SEMTools
↑ Навигация по задачам в Excel и возможностям надстройки !SEMTools ↑

Проверить, есть ли в ячейке определённый символ, можно формулой =ЕЧИСЛО(ПОИСК("@";A2)), посчитать, сколько раз он встречается, — =ДЛСТР(A2)-ДЛСТР(ПОДСТАВИТЬ(A2;"-";"")), а определить неизвестный символ поможет его код: =UNICODE(A2) возвращает код первого символа ячейки. Найти символ на листе можно через Ctrl+F, а отметить ячейки с символами нужного типа — цифрами, латиницей, заглавными — процедурами !SEMTools из меню «Обнаружить символы».

Меню «Обнаружить символы» помогает в 1 клик ответить на вопрос, содержатся в ячейке определённые символы или нет.

Штатные процедуры и функции для поиска символов в Excel

Казалось бы, невелика задача, найти в ячейке Excel определённый символ или последовательность. Но для этой задачи в Excel существует и может быть использован целый зоопарк текстовых функций и процедур. Перечислим основные штатные варианты поиска символов:

  • Процедура "Найти и заменить" найдет символы в книге, на листе или в диапазоне
  • Функции ПОИСК и НАЙТИ укажут позицию искомых символов внутри ячейки
  • Функция ПОДСТАВИТЬ (несколько окольный путь, но тоже можно!) попытается заменить символы на пустоту. Если удастся это сделать - строка станет короче, что легко выявить функцией ДЛСТР
  • Процедура Фильтр
  • ПОИСКПОЗ (с подстановочными символами) вернет адрес ячейки, содержащей искомый символ
  • Всесильная функция ВПР (с подстановочными символами) - вернет при поиске первую содержащую символ(ы) ячейку или то, что напротив
Найти, посчитать и определить символ
D4=UNICODE(A4)
ABCD
1ТекстЕсть «@»?Сколько «-»Код 1-го символа
2info@site.ruИСТИНА=ЕЧИСЛО(ПОИСК("@";A2))0=ДЛСТР(A2)-ДЛСТР(ПОДСТАВИТЬ(A2;"-";""))105=UNICODE(A2)
38 (900) 123-45-67ЛОЖЬ=ЕЧИСЛО(ПОИСК("@";A3))2=ДЛСТР(A3)-ДЛСТР(ПОДСТАВИТЬ(A3;"-";""))56=UNICODE(A3)
4ПриветЛОЖЬ=ЕЧИСЛО(ПОИСК("@";A4))0=ДЛСТР(A4)-ДЛСТР(ПОДСТАВИТЬ(A4;"-";""))1055=UNICODE(A4)

UNICODE возвращает код первого символа: 105 — латинская «i», 56 — цифра «8», 1055 — русская «П». Так легко отличить, например, латинскую «c» (99) от русской «с» (1089). Код символа в середине строки — =UNICODE(ПСТР(A2;5;1)).

В английском Excel: =ISNUMBER(SEARCH("@",A2))

Иногда определённые трудности возникают при поиске символов ? и *, см. статью как найти звёздочки в Excel.

Однако не для всех типов символов пригодны и удобны перечисленные варианты. Когда нужно искать не 1 или 2 символа, а целые множества, использование штатных процедур и функций может быть времязатратным и сложным.

Именно для таких случаев я разработал интуитивно понятные процедуры в моей надстройке.

Как определить, что за символ в ячейке

Невидимые и похожие символы (неразрывный пробел, латинская буква вместо русской, тире разной длины) проще всего опознать по коду. =UNICODE(ПСТР(A2;N;1)) покажет код N-го символа: 32 — обычный пробел, 160 — неразрывный, 8211 — короткое тире «–», 8212 — длинное «—». Вставить символ по коду можно функцией ЮНИСИМВ.

Найти символы в Excel - возможности !SEMTools

Я выделил среди всех популярных процедур поиска поиск символов по их типу и по начертанию и сделал для них отдельные меню:

Меню поиска определенных символов в !SEMTools для Excel
Меню "обнаружить символы" в !SEMTools для Excel

Подробнее о процедурах можно прочитать в соответствующих статьях ниже.

Найти символы по типу

Найти символы по начертанию

Иногда пользователям нужно выявить, есть ли в ячейках символы в определенном начертании шрифта - жирном, курсиве и подчеркнутом. Для каждой выделена своя процедура.

Поиск символов с помощью регулярных выражений

Регулярные выражения в Excel есть только в Microsoft 365 (функции РЕГТЕСТ, РЕГИЗВЛЕЧЬ, РЕГЗАМЕНИТЬ). Для остальных версий их поддержку добавляет надстройка. Зная их, вы сможете найти практически любые символы в тексте ячеек.

Помимо самого их наличия, приятный бонус — функции REGEXREPLACE, REGEXEXTRACT и REGEXMATCH доступны бесплатно как в полной, так и в базовой версии.

Похожие и связанные с поиском символов процедуры

Обычно после того, как удалось найти в ячейках определенные символы или сочетания символов, следуют другие операции с ними. Например, можно извлечь, удалить их или заменить на какие-то другие (например, заменить кириллицу на латиницу). В решении подобных задач помогут соответствующие разделы сайта:

Почему символ не находится

  • Не находятся «?» и «*». В ПОИСК, СЧЁТЕСЛИ и Ctrl+F это подстановочные знаки. Ставьте перед ними тильду: "~?" и "~*". НАЙТИ и ПОДСТАВИТЬ подстановочные знаки не используют.
  • Символ на экране есть, а ПОИСК его не видит. Это похожий символ с другим кодом: латинская «с» вместо русской, неразрывный пробел вместо обычного. Сравните коды функцией UNICODE.
  • ПОИСК возвращает #ЗНАЧ!. Символа в ячейке нет. Оберните функцию в ЕЧИСЛО, чтобы получать ИСТИНА/ЛОЖЬ.
  • Регистр учитывается не так, как нужно. ПОИСК не различает регистр, НАЙТИ — различает.

Поиск символов в Excel — частые вопросы

Как найти символ в ячейке?

Формулой =ЕЧИСЛО(ПОИСК("символ";A1)) — ИСТИНА, если символ есть. Позицию символа вернёт сама ПОИСК.

Как посчитать количество определённых символов?

=ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;"-";"")) — разница длин до и после удаления символа.

Как определить, какой символ в ячейке?

По коду: =UNICODE(ПСТР(A1;N;1)) вернёт код N-го символа.

Как найти звёздочку или вопросительный знак?

Поставьте перед ними тильду: ~* и ~? — в Ctrl+F, ПОИСК и СЧЁТЕСЛИ.

Отметить ячейки с цифрами, латиницей, кириллицей, заглавными буквами или символами в жирном и курсивном начертании можно в 1 клик с !SEMTools — без формул и регулярных выражений.
!SEMTools решает эту и сотни других задач в пару кликов!

Итоги: как найти символ в Excel

ЗадачаФормула
Есть ли символ=ЕЧИСЛО(ПОИСК("@";A1))
Позиция символа=ПОИСК("@";A1)
Сколько раз встречается=ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;"-";""))
Код символа=UNICODE(ПСТР(A1;N;1))
Символы по типуМеню «Обнаружить символы» !SEMTools

Надеюсь, на этой странице вы нашли то, что искали. Вас наверняка заинтересуют и похожие операции: посчитать символы в ячейке и найти звёздочки в Excel.