Как изменить формат отображения номера в Google Sheets?

Как я могу преобразовать номер телефона 899)581-39-77 в формат 899 581 3977? Я использую следующую формулу: =REGEXREPLACE(A1;"[^0-9+]+";" "), но в результате получается 899 581 39 77. Какие шаги нужно предпринять, чтобы получить нужный формат 899 581 3977? Также я пробовал использовать формат отображения (например, 000\ 000\ 0000 и ###\ ###\ ####), но это не сработало. 

Кроме того, как составить формулу для обработки нескольких номеров, находящихся в одном ряду? Например, для номеров +38(050)537-26-37 и +38(050)537-26-00, чтобы получить результат в виде 050 537 2637 и 050 537 2600? Спасибо!
  • 5 апреля 2025 г. 6:44
Ответы на вопрос 2
Чтобы изменить формат отображения номера телефона в Google Sheets, вы можете использовать функцию `REGEXREPLACE`, но дополнительно нам нужно будет обработать результат для получения нужного формата. В вашем случае вы хотите получить результат в формате `899 581 3977`, вместо `899 581 39 77`. Для этого вы можете использовать следующее решение.

### Шаг 1: Изменение формулы для одного номера

Чтобы преобразовать номер телефона из формата `899)581-39-77` в `899 581 3977`, используйте следующую формулу:

```plaintext
=REGEXREPLACE(REGEXREPLACE(A1; "[^0-9]"; ""); "(\d{3})(\d{3})(\d{2})(\d{2})"; "$1 $2 $3$4")
```

В этой формуле:
1. `REGEXREPLACE(A1; "[^0-9]"; "")` удаляет все символы, кроме цифр.
2. Затем при помощи второго `REGEXREPLACE` мы группируем цифры и добавляем пробелы так, чтобы получить нужный формат.

### Шаг 2: Обработка нескольких номеров в одном ряду

Если у вас есть несколько номеров в одной строке, например `+38(050)537-26-37` и `+38(050)537-26-00`, вы можете использовать следующую формулу:

```plaintext
=ARRAYFORMULA(TRIM(REGEXREPLACE(JOIN(" "; A1:B1); "[^0-9]"; " ")))
```

Если вы хотите разделить номера на нужные части, то можно использовать такую формулу:

```plaintext
=ARRAYFORMULA(REGEXREPLACE(REGEXREPLACE(A1:B1; "[^0-9]"; ""); "(\d{3})(\d{3})(\d{2})(\d{2})"; "$1 $2 $3$4"))
```

### Примечания

1. Убедитесь, что вы используете правильный синтаксис в зависимости от вашего языка настроек Google Sheets (в некоторых локализациях вместо `;` может потребоваться использовать `,`).
2. Если вы обрабатываете данные в других ячейках, измените диапазон `A1:B1` на нужные вам ячейки.
3. Функция `ARRAYFORMULA` позволяет обрабатывать несколько ячеек одновременно.

Теперь у вас должно получиться правильное форматирование номер телефона, включая обработку нескольких номеров в одной строке!
Для первого случая, чтобы получить формат "899 581 3977", нужно просто заменить регулярное выражение, которое используется в REGEXREPLACE. Вот так будет работать: 

Для первого случая:

=REGEXREPLACE(REGEXREPLACE(A1, "[^0-9]", ""), "(\d{3})(\d{3})(\d{4})", "$1 $2 $3")
Это удаляет все ненужные символы и потом форматирует номер так, как вам нужно.

Для второго случая (когда номеров несколько): Если номера записаны в одной ячейке, например, как +38(050)537-26-37; +38(050)537-26-00, вы можете воспользоваться такой формулой:

=TEXTJOIN(", "; TRUE; ARRAYFORMULA(REGEXREPLACE(REGEXREPLACE(A1:A, "[^0-9]", ""), "(\d{3})(\d{3})(\d{4})", "$1 $2 $3")))
Эта формула будет обрабатывать список номеров в строках и выводить их в одном столбце в нужном формате.
Похожие вопросы