Функция РЕГИЗВЛЕЧЬ в Excel вытаскивает из текста фрагмент, подходящий под регулярное выражение: =РЕГИЗВЛЕЧЬ(A2;"\d+") вернёт первое число из ячейки, =РЕГИЗВЛЕЧЬ(A2;"[\w.+-]+@[\w-]+\.\w+") — e-mail. Третий аргумент задаёт, что вернуть: первое совпадение (0), все совпадения массивом (1) или группы в скобках (2). Если совпадения нет, функция возвращает #Н/Д, а результат всегда текстовый — для чисел добавьте двойной минус. Функция есть в Excel для Microsoft 365, на английском она называется REGEXEXTRACT.
| Раздел функций | Текстовые |
| Название на английском | REGEXEXTRACT |
| Версии Excel | Excel для Microsoft 365 (Windows и Mac) |
| Волатильность | Не волатильная |
| Похожие функции | РЕГТЕСТ, РЕГЗАМЕНИТЬ, ПСТР, ПОИСК |
Синтаксис функции РЕГИЗВЛЕЧЬ
=РЕГИЗВЛЕЧЬ(текст;шаблон;[режим_возврата];[учет_регистра])
- текст — ячейка или строка, из которой извлекаем;
- шаблон — регулярное выражение в кавычках;
- режим_возврата — необязательный: 0 (по умолчанию) — первое совпадение, 1 — все совпадения массивом, 2 — группы в скобках из первого совпадения;
- учет_регистра — необязательный: 0 (по умолчанию) — регистр учитывается, 1 — не учитывается.
Шаблоны пишутся в синтаксисе PCRE2, как и в РЕГТЕСТ и РЕГЗАМЕНИТЬ. Обозначения \d, \s, квантификаторы и группы разобраны в статье про регулярные выражения в Excel.
Три режима возврата
Режим определяет, сколько значений вернёт формула. В режимах 1 и 2 результат — массив, он разливается в соседние ячейки, поэтому справа от формулы должно быть свободно.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Текст | Режим | Результат | ||||
| 2 | Заказ 1024 от 05.10.2026, сумма 3500 | 0 — первое | 1024=РЕГИЗВЛЕЧЬ(A2;"\d+") | ||||
| 3 | Заказ 1024 от 05.10.2026, сумма 3500 | 1 — все | 1024=РЕГИЗВЛЕЧЬ(A3;"\d+";1) | 05 | 10 | 2026 | 3500 |
| 4 | Заказ 1024 от 05.10.2026, сумма 3500 | 2 — группы | 05=РЕГИЗВЛЕЧЬ(A4;"(\d{2})\.(\d{2})\.(\d{4})";2) | 10 | 2026 |
Режим 1 возвращает все числа: 1024, 05, 10, 2026 и 3500 — массив разлился вправо (в Excel все совпадения разливаются в строку). Режим 2 разбирает первую найденную дату на день, месяц и год — по одной ячейке на каждую пару скобок.
В английском Excel: =REGEXEXTRACT(A3,"\d+",1)
Извлечь число, e-mail, телефон из текста
Самые частые задачи — достать из строки число, контакт или код. Результат РЕГИЗВЛЕЧЬ — всегда текст: чтобы с числом можно было считать, поставьте перед формулой два минуса, а для дробей с запятой в русском Excel это сработает автоматически.
| A | B | C | |
|---|---|---|---|
| 1 | Текст | Что извлекаем | Результат |
| 2 | Вес 2,5 кг, цена 1 290 ₽ | число с дробью | 2,5=--РЕГИЗВЛЕЧЬ(A2;"\d+(?:,\d+)?") |
| 3 | Пишите: sales@shop.ru или звоните | sales@shop.ru=РЕГИЗВЛЕЧЬ(A3;"[\w.+-]+@[\w-]+\.\w+") | |
| 4 | Тел. +7 (916) 123-45-67, Анна | телефон | +7 (916) 123-45-67=РЕГИЗВЛЕЧЬ(A4;"\+7[\d ()-]{10,}\d") |
| 5 | Артикул: AB-20391, остаток 4 | артикул по маске | AB-20391=РЕГИЗВЛЕЧЬ(A5;"[A-Z]{2}-\d+") |
В первой строке двойной минус превращает текст «2,5» в число 2,5. Формула возвращает первое найденное число — 2,5; цену «1 290» с пробелом внутри такой шаблон разбил бы на 1 и 290. Шаблон телефона берёт +7 и дальше цифры, пробелы, скобки и дефисы.
В английском Excel: =--REGEXEXTRACT(A2,"\d+(?:,\d+)?")
Текст до и после метки: ретроспективная проверка
Часто нужно взять значение после слова-метки: «ИНН 7707083893», «код: 4521». В PCRE2 есть ретроспективная проверка (?<=…): она требует, чтобы перед фрагментом стояла метка, но саму метку в результат не включает. Опережающая проверка (?=…) делает то же для текста после фрагмента. Другой способ — режим 2 с группой.
| A | B | C | |
|---|---|---|---|
| 1 | Текст | Шаблон | Результат |
| 2 | Поставщик ООО Альфа, ИНН 7707083893 | (?<=ИНН )\d+ | 7707083893=РЕГИЗВЛЕЧЬ(A2;"(?<=ИНН )\d+") |
| 3 | Сумма к оплате: 15 400 руб. | [\d ]+(?= руб) | 15 400=СЖПРОБЕЛЫ(РЕГИЗВЛЕЧЬ(A3;"[\d ]+(?= руб)")) |
| 4 | Номер договора: Д-118/26 от 01.03 | Номер договора: (\S+) | Д-118/26=РЕГИЗВЛЕЧЬ(A4;"Номер договора: (\S+)";2) |
(?<=ИНН ) — «перед числом стоит ИНН и пробел». [\d ]+(?= руб) — цифры и пробелы, за которыми идёт « руб»; СЖПРОБЕЛЫ убирает пробел в начале. В третьей строке группа (\S+) в режиме 2 возвращает только номер без метки.
В английском Excel: =REGEXEXTRACT(A2,"(?<=ИНН )\d+")
Все совпадения в одной ячейке
Режим 1 разливает совпадения по ячейкам. Если их нужно собрать в одну ячейку через запятую, оберните формулу в ОБЪЕДИНИТЬ, а чтобы посчитать — в СЧЁТЗ или ЧСТРОК/ЧИСЛСТОЛБ.
| A | B | C | |
|---|---|---|---|
| 1 | Текст | Все хэштеги | Сколько |
| 2 | Лучшие #скидки и #акции недели #excel | #скидки, #акции, #excel=ЕСЛИОШИБКА(ОБЪЕДИНИТЬ(", ";ИСТИНА;РЕГИЗВЛЕЧЬ(A2;"#[^\s#]+";1));"") | 3=ЕСЛИОШИБКА(СЧЁТЗ(РЕГИЗВЛЕЧЬ(A2;"#[^\s#]+";1));0) |
| 3 | без тегов | =ЕСЛИОШИБКА(ОБЪЕДИНИТЬ(", ";ИСТИНА;РЕГИЗВЛЕЧЬ(A3;"#[^\s#]+";1));"") | 0=ЕСЛИОШИБКА(СЧЁТЗ(РЕГИЗВЛЕЧЬ(A3;"#[^\s#]+";1));0) |
Во второй строке тегов нет: РЕГИЗВЛЕЧЬ вернула #Н/Д, и ЕСЛИОШИБКА подставила пустую строку и 0.
В английском Excel: =TEXTJOIN(", ",TRUE,REGEXEXTRACT(A2,"#[^\s#]+",1))
Без учёта регистра
По умолчанию «Excel» и «excel» — разные строки. Четвёртый аргумент 1 отключает учёт регистра, а результат возвращается так, как он записан в тексте. Тот же эффект даёт модификатор (?i) в начале шаблона.
| A | B | C | |
|---|---|---|---|
| 1 | Текст | Формула | Результат |
| 2 | Скачать EXCEL-шаблон бесплатно | с учётом регистра | #Н/Д=РЕГИЗВЛЕЧЬ(A2;"excel") |
| 3 | Скачать EXCEL-шаблон бесплатно | без учёта, аргумент 1 | EXCEL=РЕГИЗВЛЕЧЬ(A3;"excel";0;1) |
| 4 | Скачать EXCEL-шаблон бесплатно | без учёта, (?i) | EXCEL=РЕГИЗВЛЕЧЬ(A4;"(?i)excel") |
Найденный фрагмент возвращается в исходном написании — «EXCEL». Чтобы получить его в другом регистре, оберните результат в СТРОЧН или ПРОПИСН.
В английском Excel: =REGEXEXTRACT(A3,"excel",0,1)
Если РЕГИЗВЛЕЧЬ нет в вашем Excel
В Excel 2010–2024 без подписки Microsoft 365 функция возвращает #ИМЯ?. Аналог — REGEXEXTRACT из бесплатной надстройки !SEMTools: =REGEXEXTRACT(A2;"\d+"). Отличия от встроенной функции:
- если совпадения нет, возвращается пустая строка, а не #Н/Д;
- всегда возвращается совпадение целиком — группы в скобках не выделяются; чтобы получить группу, используйте REGEXREPLACE с $1: =REGEXREPLACE(A2;".*ИНН (\d+).*";"$1");
- третий аргумент ИСТИНА возвращает все совпадения в одной ячейке, четвёртый — разделитель: =REGEXEXTRACT(A2;"\d+";ИСТИНА;", ");
- движок VBScript не поддерживает ретроспективную проверку (?<=…).
Почему РЕГИЗВЛЕЧЬ возвращает ошибку — частые ошибки
- #Н/Д. Совпадение не найдено. Проверьте шаблон или оберните формулу в ЕСЛИОШИБКА.
- #ПЕРЕНОС!. В режимах 1 и 2 массиву некуда разлиться — освободите ячейки справа.
- Число не суммируется. РЕГИЗВЛЕЧЬ возвращает текст — добавьте -- или ЗНАЧЕН.
- Извлекается слишком много. Квантификаторы * и + жадные: .* захватит текст до последнего совпадения. Используйте ленивый вариант .*? или более узкий класс символов.
- #ИМЯ?. Функции нет в вашей версии Excel — используйте REGEXEXTRACT из !SEMTools.
Функция РЕГИЗВЛЕЧЬ — частые вопросы
Что делает функция РЕГИЗВЛЕЧЬ в Excel?
Извлекает из текста фрагмент по регулярному выражению: =РЕГИЗВЛЕЧЬ(A2;"\d+") вернёт первое число.
Как РЕГИЗВЛЕЧЬ называется на английском?
REGEXEXTRACT. Формула =РЕГИЗВЛЕЧЬ(A2;"\d+") в английском Excel — =REGEXEXTRACT(A2,"\d+").
Как извлечь все числа из ячейки?
Режимом 1: =РЕГИЗВЛЕЧЬ(A2;"\d+";1) — числа разольются по ячейкам; в одну ячейку их соберёт ОБЪЕДИНИТЬ.
Как извлечь только часть совпадения?
Возьмите нужную часть в скобки и укажите режим 2: =РЕГИЗВЛЕЧЬ(A2;"ИНН (\d+)";2).
Почему РЕГИЗВЛЕЧЬ возвращает #Н/Д?
В тексте нет фрагмента, подходящего под шаблон. Чтобы вместо ошибки была пустая ячейка, используйте =ЕСЛИОШИБКА(РЕГИЗВЛЕЧЬ(A2;"\d+");"").
Извлечь числа, слова, e-mail и любые фрагменты по шаблону во всём столбце сразу можно без формул — в пару кликов с !SEMTools, в любой версии Excel.
!SEMTools решает эту и сотни других задач в пару кликов!
Итоги: функция РЕГИЗВЛЕЧЬ в Excel
| Задача | Формула |
|---|---|
| Первое число | =РЕГИЗВЛЕЧЬ(A2;"\d+") |
| Все числа | =РЕГИЗВЛЕЧЬ(A2;"\d+";1) |
| Часть в скобках | =РЕГИЗВЛЕЧЬ(A2;"ИНН (\d+)";2) |
| После метки | =РЕГИЗВЛЕЧЬ(A2;"(?<=ИНН )\d+") |
| Без ошибки #Н/Д | =ЕСЛИОШИБКА(РЕГИЗВЛЕЧЬ(A2;"\d+");"") |
| Excel без 365 | =REGEXEXTRACT(A2;"\d+") (!SEMTools) |
Надеюсь, на этой странице вы нашли то, что искали. РЕГИЗВЛЕЧЬ заменяет длинные связки ПСТР, ПОИСК и ДЛСТР одной формулой: опишите шаблон фрагмента — и Excel сам найдёт его в тексте.