РЕГТЕСТ (REGEXTEST) в Excel: проверка текста по шаблону
Возможности !SEMTools
↑ Навигация по задачам в Excel и возможностям надстройки !SEMTools ↑

Функция РЕГТЕСТ в Excel проверяет, подходит ли текст под регулярное выражение, и возвращает ИСТИНА или ЛОЖЬ: =РЕГТЕСТ(A2;"\d") покажет, есть ли в ячейке хотя бы одна цифра, а =РЕГТЕСТ(A2;"^\d{10}$") — состоит ли она ровно из 10 цифр. Это удобнее, чем ПОИСК и СЧЁТЕСЛИ со звёздочками: шаблон описывает не конкретный текст, а его форму — «телефон», «e-mail», «слово с латиницей». Функция есть только в Excel для Microsoft 365, на английском она называется REGEXTEST.

Раздел функцийТекстовые
Название на английскомREGEXTEST
Версии ExcelExcel для Microsoft 365 (Windows и Mac)
ВолатильностьНе волатильная
Похожие функцииРЕГИЗВЛЕЧЬ, РЕГЗАМЕНИТЬ, ПОИСК, СОВПАД

Синтаксис функции РЕГТЕСТ

=РЕГТЕСТ(текст;шаблон;[учет_регистра])
  • текст — ячейка или строка, которую проверяем;
  • шаблон — регулярное выражение в кавычках;
  • учет_регистра — необязательный: 0 (по умолчанию) — регистр учитывается, 1 — не учитывается.

Функция ищет совпадение в любом месте текста. Чтобы проверить ячейку целиком, привяжите шаблон к началу и концу строки знаками ^ и $. Синтаксис шаблонов — PCRE2, общий для всех трёх функций регулярных выражений Excel; шпаргалка по символам есть в статье про регулярные выражения в Excel.

Что проверяет РЕГТЕСТ
D2=РЕГТЕСТ(A2;B2;C2)
ABCDE
1ТекстШаблонРегистрРезультатЧто проверяем
2Москва, ул. Тверская 12\d0ИСТИНА=РЕГТЕСТ(A2;B2;C2)есть цифра
3Москва, ул. Тверская 12^[А-ЯЁ]0ИСТИНА=РЕГТЕСТ(A3;B3;C3)начинается с заглавной
4Москва, ул. Тверская 12[a-zA-Z]0ЛОЖЬ=РЕГТЕСТ(A4;B4;C4)есть латиница
5Москва, ул. Тверская 12москва0ЛОЖЬ=РЕГТЕСТ(A5;B5;C5)с учётом регистра
6Москва, ул. Тверская 12москва1ИСТИНА=РЕГТЕСТ(A6;B6;C6)без учёта регистра
7Москва, ул. Тверская 12^\d+$0ЛОЖЬ=РЕГТЕСТ(A7;B7;C7)только цифры

Шаблон можно хранить в ячейке — так удобно подбирать его, меняя одну ячейку. «москва» с учётом регистра не найдена, без учёта — найдена. ^\d+$ требует, чтобы вся строка состояла из цифр.

В английском Excel: =REGEXTEST(A2,B2,C2)

Проверка формата: телефон, e-mail, ИНН

Главная сила РЕГТЕСТ — проверка того, что данные введены по правилам. Шаблоны с ^ и $ сравнивают ячейку целиком, поэтому лишний символ в начале или в конце тоже считается ошибкой.

Телефон, e-mail и ИНН по шаблону
B2=РЕГТЕСТ(A2;"^\+7 \d{3} \d{3}-\d{2}-\d{2}$")
ABCD
1ЗначениеТелефон?E-mail?ИНН?
2+7 916 123-45-67ИСТИНА=РЕГТЕСТ(A2;"^\+7 \d{3} \d{3}-\d{2}-\d{2}$")ЛОЖЬ=РЕГТЕСТ(A2;"^[\w.+-]+@[\w-]+(\.[\w-]+)+$")ЛОЖЬ=РЕГТЕСТ(A2;"^(\d{10}|\d{12})$")
38 (916) 123-45-67ЛОЖЬ=РЕГТЕСТ(A3;"^\+7 \d{3} \d{3}-\d{2}-\d{2}$")ЛОЖЬ=РЕГТЕСТ(A3;"^[\w.+-]+@[\w-]+(\.[\w-]+)+$")ЛОЖЬ=РЕГТЕСТ(A3;"^(\d{10}|\d{12})$")
4info@semtools.guruЛОЖЬ=РЕГТЕСТ(A4;"^\+7 \d{3} \d{3}-\d{2}-\d{2}$")ИСТИНА=РЕГТЕСТ(A4;"^[\w.+-]+@[\w-]+(\.[\w-]+)+$")ЛОЖЬ=РЕГТЕСТ(A4;"^(\d{10}|\d{12})$")
5info@semtoolsЛОЖЬ=РЕГТЕСТ(A5;"^\+7 \d{3} \d{3}-\d{2}-\d{2}$")ЛОЖЬ=РЕГТЕСТ(A5;"^[\w.+-]+@[\w-]+(\.[\w-]+)+$")ЛОЖЬ=РЕГТЕСТ(A5;"^(\d{10}|\d{12})$")
67707083893ЛОЖЬ=РЕГТЕСТ(A6;"^\+7 \d{3} \d{3}-\d{2}-\d{2}$")ЛОЖЬ=РЕГТЕСТ(A6;"^[\w.+-]+@[\w-]+(\.[\w-]+)+$")ИСТИНА=РЕГТЕСТ(A6;"^(\d{10}|\d{12})$")
777070838931ЛОЖЬ=РЕГТЕСТ(A7;"^\+7 \d{3} \d{3}-\d{2}-\d{2}$")ЛОЖЬ=РЕГТЕСТ(A7;"^[\w.+-]+@[\w-]+(\.[\w-]+)+$")ЛОЖЬ=РЕГТЕСТ(A7;"^(\d{10}|\d{12})$")

Телефон — строго в виде +7 999 999-99-99; e-mail — имя, @ и домен хотя бы с одной точкой; ИНН — 10 или 12 цифр. Такие формулы удобно ставить в проверку данных: Данные → Проверка данных → Другой, чтобы Excel не давал ввести значение в неверном формате.

В английском Excel: =REGEXTEST(A2,"^\+7 \d{3} \d{3}-\d{2}-\d{2}$")

РЕГТЕСТ в условиях, фильтрах и подсчёте

РЕГТЕСТ возвращает логическое значение, поэтому её вставляют в ЕСЛИ, считают через двойной минус и передают в ФИЛЬТР. Если первым аргументом указать диапазон, функция вернёт массив ИСТИНА/ЛОЖЬ для каждой ячейки.

ЕСЛИ, подсчёт и ФИЛЬТР
E2=СУММПРОИЗВ(--РЕГТЕСТ(A2:A6;"[a-zA-Z]"))
ABCDE
1ТоварПометкаЗадачаРезультат
2Чехол iPhone 15латиница=ЕСЛИ(РЕГТЕСТ(A2;"[a-zA-Z]");"латиница";"")Сколько с латиницей2=СУММПРОИЗВ(--РЕГТЕСТ(A2:A6;"[a-zA-Z]"))
3чехол для телефона=ЕСЛИ(РЕГТЕСТ(A3;"[a-zA-Z]");"латиница";"")С цифрами (ФИЛЬТР)Чехол iPhone 15=ФИЛЬТР(A2:A6;РЕГТЕСТ(A2:A6;"\d"))
4Кабель USB-Cлатиница=ЕСЛИ(РЕГТЕСТ(A4;"[a-zA-Z]");"латиница";"")зарядка 20 Вт
5зарядка 20 Вт=ЕСЛИ(РЕГТЕСТ(A5;"[a-zA-Z]");"латиница";"")
6Наушники=ЕСЛИ(РЕГТЕСТ(A6;"[a-zA-Z]");"латиница";"")

РЕГТЕСТ по диапазону A2:A6 возвращает пять значений ИСТИНА/ЛОЖЬ; двойной минус превращает их в 1 и 0, а СУММПРОИЗВ складывает. ФИЛЬТР оставляет строки, где в названии есть цифра, — результат разливается вниз.

В английском Excel: =SUMPRODUCT(--REGEXTEST(A2:A6,"[a-zA-Z]"))

Выделить ячейки цветом по шаблону

РЕГТЕСТ работает и в условном форматировании: Главная → Условное форматирование → Создать правило → «Использовать формулу». Например, чтобы подсветить строки с некорректным телефоном, выделите A2:A100 и введите формулу =НЕ(РЕГТЕСТ($A2;"^\+7 \d{3} \d{3}-\d{2}-\d{2}$")). Знак $ перед A фиксирует столбец, чтобы правило проверяло одну и ту же колонку во всех строках.

РЕГТЕСТ, ПОИСК и СЧЁТЕСЛИ: что выбрать

ЗадачаБез регулярокС РЕГТЕСТ
Есть ли в ячейке словоЕЧИСЛО(ПОИСК("опт";A2))РЕГТЕСТ(A2;"опт";1)
Есть ли любая цифраСЧЁТ(ПОИСК({0;1;2;3;4;5;6;7;8;9};A2))>0РЕГТЕСТ(A2;"\d")
Ровно 10 цифрИ(ДЛСТР(A2)=10;ЕЧИСЛО(--A2))РЕГТЕСТ(A2;"^\d{10}$")
Заглавная буква в началеСОВПАД(ЛЕВСИМВ(A2);ПРОПИСН(ЛЕВСИМВ(A2)))РЕГТЕСТ(A2;"^[A-ZА-ЯЁ]")

Для простого поиска слова хватает ПОИСК. РЕГТЕСТ выигрывает, когда важна форма текста: количество символов, их тип и порядок.

Если РЕГТЕСТ нет в вашем Excel

В Excel 2010–2024 без подписки Microsoft 365 функции нет — формула вернёт #ИМЯ?. Тот же результат даёт функция REGEXMATCH из бесплатной надстройки !SEMTools: =REGEXMATCH(A2;"\d"). У неё нет аргумента регистра: регистр учитывается всегда, а для поиска без учёта регистра перечисляйте оба варианта — [Мм]осква. Движок надстройки — VBScript, он не поддерживает ретроспективную проверку (?<=…), остальной базовый синтаксис совпадает.

Почему РЕГТЕСТ работает неправильно — частые ошибки

  • #ИМЯ?. Функции нет в вашей версии Excel — используйте REGEXMATCH из !SEMTools.
  • ИСТИНА там, где ждали ЛОЖЬ. Шаблон найден в части строки: \d{4} подходит и к «12345». Для проверки ячейки целиком добавьте ^ и $.
  • Не находит слово в другом регистре. По умолчанию регистр учитывается — укажите третий аргумент 1.
  • Ошибка или неожиданный результат. В шаблоне не экранирован спецсимвол: точку, плюс, скобки и знак вопроса пишите через обратный слэш — \. \+ \(.
  • Кавычки внутри шаблона. Двойную кавычку в формуле Excel удваивают: "\""" — шаблон из одной кавычки.

Функция РЕГТЕСТ — частые вопросы

Что делает функция РЕГТЕСТ в Excel?

Проверяет, есть ли в тексте фрагмент, подходящий под регулярное выражение, и возвращает ИСТИНА или ЛОЖЬ: =РЕГТЕСТ(A2;"\d").

Как РЕГТЕСТ называется на английском?

REGEXTEST. Формула =РЕГТЕСТ(A2;"\d") в английском Excel — =REGEXTEST(A2,"\d").

В каких версиях Excel есть РЕГТЕСТ?

В Excel для Microsoft 365 для Windows и Mac. В других версиях используйте REGEXMATCH из надстройки !SEMTools.

Как проверить ячейку на соответствие шаблону целиком?

Привяжите шаблон к началу и концу строки: =РЕГТЕСТ(A2;"^\d{6}$") — ровно шесть цифр.

Как сделать проверку без учёта регистра?

Третьим аргументом 1: =РЕГТЕСТ(A2;"москва";1).

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

Итоги: функция РЕГТЕСТ в Excel

ЗадачаФормула
Есть цифра=РЕГТЕСТ(A2;"\d")
Ровно 10 цифр=РЕГТЕСТ(A2;"^\d{10}$")
Без учёта регистра=РЕГТЕСТ(A2;"москва";1)
Посчитать подходящие=СУММПРОИЗВ(--РЕГТЕСТ(A2:A100;"[a-zA-Z]"))
Отфильтровать=ФИЛЬТР(A2:A100;РЕГТЕСТ(A2:A100;"\d"))
Excel без 365=REGEXMATCH(A2;"\d") (!SEMTools)

Надеюсь, на этой странице вы нашли то, что искали. РЕГТЕСТ — самый простой способ проверить форму текста; вместе с РЕГИЗВЛЕЧЬ и РЕГЗАМЕНИТЬ она закрывает почти все задачи с текстом по шаблону.

Статьи, где используется РЕГТЕСТ