Извлекаем email адреса из текста при помощи Google Sheets


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

Если быть честным, то по сути данный способ подходит для любых языков программирования, потому что в его основе лежит простое регулярное выражение. А уже где вы его будете использовать это вам решать.

Сама регулярка выглядит так:

[A-z0-9._%+-]+@[A-z0-9.-]+\.[A-z]{2,4}

ее мы и будем использовать в обоих случаях

Извлекаем адреса электронных почт при помощи регулярных выражений в Google Sheets

Насколько я знаю, в Microsoft Excel такой возможности «из коробки» нет и там придется извращаться через макросы VBA. Поэтому мы и используем гугл таблицы. Но киньте в меня справочником если я ошибаюсь.

Для этого нам понадобится всего одна функция, которая и сделает всю работу за нас.

REGEXEXTRACT

Формула работает по принципу REGEXEXTRACT(текст; регулярное выражение)

Вписываем формулу в ячейку и вместо парметра «текст» ставим ссылку на нужную нам ячейку таблицы(в примере это ячейка А2). Вторым параметром пишем нашу регулярку(обязательно в кавычках)

Протягиваем по всему столбцу и получаем результат. Как видно, в тех строках, которые не содержат имейлов, формула выдает ошибку. Можно удариться в перфекционизм и добавить другую формулу IFERROR (ЕСЛИОШИБКА) которая заменит стандартный текст ошибки на какой нибудь другой, например «No email»

Конечная формула и результат выглядят так:

ЕСЛИОШИБКА(REGEXEXTRACT(A2;»[A-z0-9._%+-]+@[A-z0-9.-]+\.[A-z]{2,4}»);»No email»)

Готово! Наш список электронных почт готов. Остается только использовать его в правильных и непротивозаконных целях.