Как форматировать номера телефонов в Таблицах LibreOffice.Calc?

Приложив немного усилий и ноу-хау, вы сможете форматировать телефонные номера в Таблицах LibreOffice.Calc так, как вам хочется. К сожалению, в Calc Таблицах нет встроенных предустановок форматирования телефонных номеров. Поэтому придётся поработать своими ручками.

Процесс применения форматирования прост; сложная часть заключается в определении правильного формата/формулы.

В этой статье я покажу вам, как форматировать телефонные номера в Таблицах LibreOffice.Calc и как создавать свои собственные форматы телефонных номеров.

Как форматировать номера телефонов в Таблицах LibreOffice.Calc

В этой части добавим стандарты форматирования внутренних телефонных номеров РФ для применения к «неформатированным» телефонным номерам. Сразу отмечу, что делалось всё для форматирования российских номеров. Для других стран совсем не так))

Термин «неформатированный» относится к телефонным номерами состоящих только из цифр: нет никакого форматирования, такого как тире, плюсы, пробелы или точки.

Следующие шаги показывают, как форматировать телефонные номера с неформатированными данными. В этом примере используется внутренний формат РФ: (123) 456-78-90.

1. Выделите столбец, который хотите отформатировать. В примере выделен столбец B (см. заголовок: Телефон)

2. Откройте раскрывающееся меню «Формат», выберите «Ячейки», выберите в Категориях «Особый» и впишите свой Код формата. Выключите параметры, если вдруг они включены: Отрицательные числа красным; Разделители разрядов.

3. Данные в столбце теперь будут соответствующим образом отформатированы как телефонные номера.

Проблема форматированных номеров

Иногда вам, возможно, придётся работать с телефонными номерами, которые уже отформатированы, но используют неправильный формат или попросту разнообразные форматы.

См. далее в руководстве, чтобы узнать, как удалить форматирование телефонных номеров, если вы получили их в неправильном формате.

Как написать формулу формата номера телефона

Существует множество различных способов форматирования телефонных номеров в разных контекстах по всему миру. В этой статье руководстве в качестве примера используются распространенные форматы телефонных номеров в РФ.

Вы можете найти форматирование, которое вы ищете, с помощью следующих примеров. Если нет, они могут предоставить базовый уровень, который вы можете изменить.

Примеры формул форматирования

Стиль: формула = пример
Внутренний стиль РФ: "8 ("###") "###"-"##"-"## = 8 (123) 456-78-90
Внутренний стиль РФ с тире: "8-"###"-"###"-"##"-"## = 8-123-456-78-90
Международный стиль РФ: "+7 "###" "###"-"##"-"## = +7 123 456-78-90
Стиль бланка РФ: "+7 ("###") "###"-"##"-"## = +7 (123) 456-78-90
Набираемый из Германии: "007-"###"-"###"-"#### = 007-123-456-7890

Методы формул для телефонных номеров

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

Обработка чисел

Система формул использует «#» для обозначения порядковой цифры в формуле форматирования. Первый «#» указывает на первую цифру, второй «#» — на вторую цифру и так далее.

Если вы форматируете 10-значные телефонные номера, вы будете использовать «#» 10 раз в своей формуле.

Обработка символов

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

Используются двойные кавычки для обозначения текстовой информации между числами.

Например, если вы хотите добавить тире между двумя цифрами, вы должны использовать формулу вида #”-”#.

Если вы примените этот формат (#”-”#) к ячейке со значением «21», она будет отображаться как «2-1».

Пример символьных ключей:

  • # = представить следующую цифру в порядке появления.
  • «» = отобразить текст
  • » » = добавить пробел
  • «(» и «)» = отобразить круглые скобки
  • «-» = добавит тире
  • «.» = добавит точку
  • «001» = добавляет заранее определенные числа
  • «+7-» = добавляет международный код +7, за которым следует тире.

Как удалить существующее форматирование из телефонных номеров

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

Вместо того чтобы пытаться придумать формулу, учитывающую все виды форматов телефонных номеров, проще просто удалить всё существующее форматирование, лишние символы, знаки и начать заново.

Следующие шаги объясняют, как удалить форматирование с помощью формулы, и которая удалит все нецифровые значения из ячейки.

=VALUE(REGEX(*выбранная_ячейка*;"[^[:digit:]]";"";"g"))

В этом примере показано, как удалить излишнее форматирование телефонных номеров из предварительно отформатированных чисел.

И видно, что когда строка номера более 10 символов появляется проблема.

Но можно продвинуться дальше и решить дополнительно такие варианты:

  • цифр больше чем 10, обрежем лишнее, отсчитав 10 с конца строки.
  • цифр меньше чем 10, явно утеряны данные, напишем NO PHONE
=IF(LEN(REGEX(*выбранная_ячейка*;"[^[:digit:]]";"";"g"))<10;"NO PHONE";VALUE(RIGHT(REGEX(*выбранная_ячейка*;"[^[:digit:]]";"";"g");10)))

Теперь когда всё лишнее убрали, и применили форматирование, о котором было выше, теперь можно используя «копипаст». Надо выделить отформатированный столбец и вставить в исходный.

Важно при вставке использовать «Правка» / «Вставить как» / «Только текст».

Вот видимо и всё, что я мог придумать из простого.

P.S. Если городить огород, то надо писать скрипт и взять за основу библиотеку phonenumbers от Google.

Какую формулу использовать в Google Sheets

В таблицах Google формулы фактически идентичны с LibreOffice, но в данном случае есть отличие:

=IF(LEN(RIGHT(REGEXREPLACE(*выбранная_ячейка* ;"[^[:digit:]]";"");10))<10;"NO PHONE";VALUE(RIGHT(REGEXREPLACE(*выбранная_ячейка* ;"[^[:digit:]]";"");10)))

На этом всё. Пишите письма.