Решён
Как исключить не подходящие номера в гугл таблице?

Есть таблица с номерами телефонов. Нужно отфильтровать только российские мобильные, то есть начинающиеся на +7 или 8, потом 9хх.

В столбце бардак: часть в формате +79161234567, часть 89161234567, часть вообще без кода страны 9161234567, а часть мусор типа "уточнить" или пустые ячейки.

Как в Google Таблицах выбрать только те строки, где номер похож на реальный российский мобильный, и убрать всё остальное в отдельную вкладку или просто скрыть?

Решение
61
Эксперт • 1 ответ

Добавлю к ответу выше: регулярка там неточная, пропускает номера с пробелами и скобками типа 8 (916) 123-45-67. Если в таблице может быть такой формат, перед проверкой лучше почистить ячейку от лишних символов.

Вот формула которая сначала оставляет только цифры и плюс, потом проверяет:

=REGEXMATCH(REGEXREPLACE(TEXT(A2,"0"),"[^d+]",""), "^(+7|8)?9d{9}$")

Для выноса невалидных строк на отдельную вкладку проще всего:

  1. Добавить вспомогательный столбец с этой формулой
  2. На новой вкладке написать =FILTER(Лист1!A:Z, Лист1!B:B=FALSE) где B - твой вспомогательный столбец

Тогда мусор автоматически подтянется туда и будет обновляться при изменениях в исходнике.

Аватар Ольга Ивановна

Спасибо! FILTER на отдельную вкладку это именно то что нужно. Сделала, работает.

9
Эксперт • 2 ответа

Можно через стандартный фильтр без формул. Данные - Создать фильтр - в столбце с номерами выбрать "Фильтровать по условию" - "Текст начинается с" - вводишь +7 и применяешь. Повтори для 8 и 9 через OR если интерфейс позволяет.

Для простого скрытия мусора хватит, но на другой лист так не вынесешь.

22
Эксперт • 2 ответа

REGEXMATCH тебе в помощь. Вот формула для проверки одной ячейки A2:

=REGEXMATCH(TEXT(A2,"0"), "^(+7|8)?9d{9}$")

Возвращает TRUE если номер подходит, FALSE если нет. Тащи вниз по столбцу, потом фильтруй по TRUE.

Аватар Дмитрий Коммерция

TEXT(A2,"0") нужен потому что если ячейки отформатированы как число, REGEXMATCH их не примет. Хорошее дополнение.

4
Участник • 1 ответ

Честно, для такой задачи я бы выгрузил CSV, прошелся pandas скриптом за пять минут и загрузил обратно. Формулы в таблицах для регулярок - это боль, особенно когда экранируешь слеши.

3
Участник • 1 ответ

у меня похожая задача была, попробуй Apps Script написать небольшой, он пробежится по всем строкам и сам перенесет ненужные на другой лист, там гибче чем формулы

Написать ответ

Премодерация гостей

Вы отвечаете как гость. Ваш ответ будет скрыт до проверки модератором. Чтобы ответ появился сразу и вы получали репутацию — войдите в аккаунт.

Будьте вежливы и соблюдайте правила платформы.