Приведение номера телефона к одному формату excel

 

maves

Пользователь

Сообщений: 5
Регистрация: 15.01.2020

Добрый день! Нужно поменять из основного формата, чтобы номера телефонов отображались в виде: +7 (999) 999-99-99. Формат ячеек использовать нельзя, так как при загрузке файла по месту требования, формат файла теряется и номера остаются набраны в первоначальном виде. Файл прилагается.

Изменено: maves15.01.2020 11:32:08

 

Mershik

Пользователь

Сообщений: 8277
Регистрация: 03.12.2015

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

Не бойтесь совершенства. Вам его не достичь.

 

maves

Пользователь

Сообщений: 5
Регистрация: 15.01.2020

Спасибо. Да они всегда вбиваются по разному, разными людьми. Поэтому и хотелось бы автоматически их как-то преобразовать в один формат вида +7 (999) 999-99-99
Прикрепила файл с различными вариантами

 

Сергей

Пользователь

Сообщений: 11251
Регистрация: 01.01.1970

#4

15.01.2020 12:14:51

в соседний столбец протянуть скопировать вставить как значения в основной столбец

Код
=ТЕКСТ(--ПРАВБ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(I3;"-";"");"(";"");")";"");"+";"");" ";"");10);"+7 (000) 000-00-00")

Лень двигатель прогресса, доказано!!!

 

maves

Пользователь

Сообщений: 5
Регистрация: 15.01.2020

Спасибо за формулу.

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

 

Сергей

Пользователь

Сообщений: 11251
Регистрация: 01.01.1970

#6

15.01.2020 12:26:26

Цитата
maves написал:
А можно ли в этом же столбце как то заменить.

можно но это уже макрос

Лень двигатель прогресса, доказано!!!

 

Polkilo

Пользователь

Сообщений: 87
Регистрация: 24.01.2019

maves, учтите, после +7 пробела нет, если он нужен, то оберните еще раз в ПОДСТАВИТЬ и замените «(» на » («

 

maves

Пользователь

Сообщений: 5
Регистрация: 15.01.2020

#8

15.01.2020 12:31:32

Цитата
Сергей написал:
можно но это уже макрос

А Вы сможете написать?

 

Михаил Лебедев

Пользователь

Сообщений: 2856
Регистрация: 17.01.2013

#9

15.01.2020 12:38:09

Цитата
maves написал:
А Вы сможете написать?
Цитата
Сергей написал:
можно но это уже макрос

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

PS
Еще формула

Код
="+7-"&ТЕКСТ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(I3;"+";"");"(";"");")";"");"-";"");" ";"");2;30);"000-000-00-00")

Прикрепленные файлы

  • Торговые точки.xlsx (25.34 КБ)

Изменено: Михаил Лебедев15.01.2020 12:55:39
(Загрузил файл)

Всё сложное — не нужно. Всё нужное — просто /М. Т. Калашников/

 

Polkilo

Пользователь

Сообщений: 87
Регистрация: 24.01.2019

#10

15.01.2020 13:19:58

maves, проверяйте

Код
Sub ololo()
Dim i As Long
Dim MyPhone As String

For i = 3 To ThisWorkbook.Sheets("Форма").Cells(Rows.Count, 9).End(xlUp).Row 'Крутим цикл по 9 столбцу за исключением шапки
    MyPhone = OnlyNumbers(ThisWorkbook.Sheets("Форма").Cells(i, 9)) 'Оставляем в номере только цифры
    If Len(MyPhone) >= 10 Then
        MyPhone = Right(MyPhone, 10) 'забираем последние 10 символов
        MyPhone = "+7 (" & Mid(MyPhone, 1, 3) & ") " & Mid(MyPhone, 4, 3) & "-" & Mid(MyPhone, 7, 2) & "-" & Mid(MyPhone, 9, 2) 'Сцепляем
        ThisWorkbook.Sheets("Форма").Cells(i, 9) = MyPhone 'выводим на лист
    End If
Next

End Sub

Function OnlyNumbers(ByVal MyString As String) As String
Dim i As Long
Dim Numbers As String

If Len(MyString) >= 1 Then
    For i = 1 To Len(MyString)
        If IsNumeric(Mid(MyString, i, 1)) Then
            Numbers = Numbers & Mid(MyString, i, 1)
        End If
    Next
    OnlyNumbers = CStr(Numbers)
End If

End Function

Изменено: Polkilo15.01.2020 13:21:19

 

Вар.2

Всё сложное — не нужно. Всё нужное — просто /М. Т. Калашников/

 

maves

Пользователь

Сообщений: 5
Регистрация: 15.01.2020

Всем спасибо за ответы!

Изменено: maves15.01.2020 13:45:30
(Неправильное использование цитат)

 

А если номер вбит по ошибке без префикса +7 или 8, то ни одно решение выше не работает, что привести к единому формату +7(000)000-00-00 или 8(000)000-00-00
Оговорка: макрос от

Polkilo

работает, но

Формула от

Сергей

не приводит к форме номера без префикса +7 или 8. Такое часто бывает
Макрос от

Михаил Лебедев

то же, не приводит к форме номера без префикса +7 или 8. Такое часто бывает

Макрос от

Polkilo

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

Что бы добить тему до готового решения, нужно:
— иметь возможность выбрать диапазон
— иметь возможность выбрать формат: +7(000)000-00-00 или 8(000)000-00-00 или 80000000000 (такой формат для всех ячеек, иначе с + формула считается)

Изменено: RUSBelorus15.01.2020 19:50:33

 

Сергей

Пользователь

Сообщений: 11251
Регистрация: 01.01.1970

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

Лень двигатель прогресса, доказано!!!

 

RUSBelorus

Пользователь

Сообщений: 110
Регистрация: 15.11.2014

#15

15.01.2020 20:27:31

Цитата
Сергей написал:
корявые вводные

зачем плодить кучу тем одной тематики ? Вы дали решение на приведенные формы, здорово. Я показал на каких формах, а они часто корявые, решение не работает. Плюс добавил, как превратить Ваше решение в полноценный инструмент для работы и поверьте, много будет людей кто скажет Вам еще одно спасибо!

 

Сергей

Пользователь

Сообщений: 11251
Регистрация: 01.01.1970

RUSBelorus, тема по приведению телефонных номеров к одному виду избита на нашей планете и формулы и удф и макросы если захотеть можно найти всё  

Лень двигатель прогресса, доказано!!!

 

RUSBelorus

Пользователь

Сообщений: 110
Регистрация: 15.11.2014

#17

15.01.2020 20:38:06

Цитата
Сергей написал:
— иметь возможность выбрать диапазон- иметь возможность выбрать формат: +7(000)000-00-00 или 8(000)000-00-00 или 80000000000 (такой формат для всех ячеек, иначе с + формула считается)

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

— иметь возможность выбрать диапазон
— иметь возможность выбрать формат: +7(000)000-00-00 или 8(000)000-00-00 или 80000000000 (такой формат для всех ячеек, иначе с + формула считается)

PS сам пользуюсь приведением телефонов к формату и знаю о чем говорю.

Изменено: RUSBelorus15.01.2020 20:39:10

 

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

Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл

 

Даже если и по шаблону с любым префиксом. Все равно нет РЕШЕНИЯ выбрать диапазон и один из трех форматов телефона одновременно)

Изменено: RUSBelorus15.01.2020 20:50:07

 

Сергей

Пользователь

Сообщений: 11251
Регистрация: 01.01.1970

#20

15.01.2020 20:49:01

Цитата
RUSBelorus написал:
PS сам пользуюсь приведением телефонов к формату и знаю о чем говорю.

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

Лень двигатель прогресса, доказано!!!

 

Так задача простая, объединить решения в одно. Не будет больше (или станет меньше на порядок) подобной

PS Получается, надеяться можно от снисхождения

Polkilo

)

Изменено: RUSBelorus15.01.2020 20:58:18

 

Kuzmich

Пользователь

Сообщений: 7998
Регистрация: 21.12.2012

#22

15.01.2020 20:59:32

UDF формат +7(000)000-00-00

Код
Public Function RgxPhone(iString As Range) As String
 Dim re As Object
 Dim tempString
  Set re = CreateObject("vbscript.regexp")
    re.Pattern = "(-|s|+|(|))"
    re.Global = True
    re.IgnoreCase = True
 tempString = re.Replace(iString, "")
 re.Pattern = "((8)|(7))(d{3})+(d{3})+(d{2})+(d{2})+"
  If re.Test(tempString) Then
   RgxPhone = re.Replace(tempString, "$1$2($4) $5-$6-$7")
    If (Left(RgxPhone, 1) <> "8") Then
        RgxPhone = "+" + RgxPhone
    Else
       RgxPhone = "+7" + Mid(RgxPhone, 3)
    End If
  End If
End Function
 

Сергей

Пользователь

Сообщений: 11251
Регистрация: 01.01.1970

#23

15.01.2020 21:01:00

Цитата
RUSBelorus написал: Так задача простая,

ну да все человечество с ней бъется называется искусственный интелект который будет определять все хотелки человечества и исправлять их ошибки (главное чтоб не обиделся и не помножил на ноль всех)

Лень двигатель прогресса, доказано!!!

 

Вы все усложняете. Вот все 4 формата номера, которые я постоянно встречаю от клиентов, не считаю что это искусственный интеллект:
+79250966362
  79250966362
  89250966362
    9250966362
PS только макрос

Polkilo

их все обрабатывает

а то что они могут быть в разных столбиках и это не ИК.

Изменено: RUSBelorus15.01.2020 21:41:28

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

#25

15.01.2020 23:06:19

Цитата
RUSBelorus написал: Вы все усложняете.

А Вы оптимист :)
Приходилось обрабатывать, насмотрелся. +/7/8  слева в разных вариациях — цветочки.  Номер слитно, с пробелами, с разными разделителями, номер отделен от текста пробелом, номер слитно с текстом ,экспоненциальный формат, со знаками вопроса вместо некоторых цифр…

 

Удивитесь, макрос

Polkilo

+79250966362 +7   (925) 096-63-62
79250966362 +7 (925)   096-63-62
89250966362 +7 (925)   096-63-62
9250966362 +7 (925)   096-63-62
+7(925)   096 63-62 +7 (925)   096-63-62
7-925-096-63-62 +7 (925)   096-63-62
8 9   2 5 0 9 6 6 3 6 2 +7 (925)   096-63-62
(9)(2)(5)(0)(9)6   6 3 6    2 +7 (925)   096-63-62
+79250966362 +7 (925)   096-63-62
+7+9+250+966+362 +7 (925)   096-63-62
89-2509-6636-2 +7 (925)   096-63-62
9*2*50*9*66*36*2 +7 (925)   096-63-62

PS Речь об обработке телефона 10 знаков, а не об выделении телефона из текста

Изменено: RUSBelorus15.01.2020 23:25:46

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Я писал о «всех 4-х форматах», которые Вы встречаете.
И о том, что кроме написания номера, он может быть в тексте  с другими числовыми днными (тоже, кстати, написанными «мизинцем правой ноги черех левое плечо». И обрабка таких шедевров не заканчивается написанием макроса — через время возврат к работе — «а мы еще вот такое обнаружили, доработайте, пожалуйста»

 

RUSBelorus

Пользователь

Сообщений: 110
Регистрация: 15.11.2014

#28

15.01.2020 23:29:19

Цитата
vikttur написал:
Я писал о «всех 4-х форматах», которые Вы встречаете.

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

 

Михаил Лебедев

Пользователь

Сообщений: 2856
Регистрация: 17.01.2013

#29

16.01.2020 04:55:08

Цитата
RUSBelorus написал:
Формула от  Сергей  не приводит к форме номера без префикса +7 или 8. Такое часто бывает
Макрос от  Михаил Лебедев  то же, не приводит к форме номера без префикса +7 или 8. Такое часто бывает
Макрос от  Polkilo  работает корректно, но только по первому столбцу, нет формы выбора столбца или диапазона
RUSBelorus написал:
Так задача простая, объединить решения в одно.

Вы что, и с простой задачей сами справиться не можете? :)

Прикрепленные файлы

  • Обработка номеров телефонов макросом или функцией.xlsm (36.95 КБ)

Изменено: Михаил Лебедев16.01.2020 05:18:43
(добавил файл-пример со всяким рожном)

Всё сложное — не нужно. Всё нужное — просто /М. Т. Калашников/

 

Андрей VG

Пользователь

Сообщений: 11878
Регистрация: 22.12.2012

Excel 2016, 365

#30

16.01.2020 08:13:28

Цитата
Михаил Лебедев написал:
Вы что, и с простой задачей сами справиться не можете?

Добрый день, Михаил.
А вы уверены, что он собирался? RUSBelorus, зашёл на форум как в магазин…

Excel для Microsoft 365 Excel 2021 Excel 2019 Excel 2016 Excel 2013 Excel 2010 Excel 2007 Еще…Меньше

Excel предоставляет специальный числовом формате, который позволяет форматирование номера в виде номера телефона. Например, можно отформатовать 10-значное число, например 5555551234, как (555) 555-1234.

  1. Выберите ячейку или диапазон, которые нужно отформатирование. Как выбрать ячейки или диапазоны?

  2. На вкладке Главная нажмите кнопку запуска диалогового окна рядом с полем Число.

    Кнопка вызова диалогового окна в группе "Число"

  3. В окне Категория выберите особый.

  4. В списке Тип выберите Телефон число.

Совет: Чтобы увидеть код числовых форматов Телефон, щелкните категорию Пользовательские и посмотрите на поле Тип. Например, код [<=9999999]###-####;(###) ###-#### используется для отображения номера телефона (555) 555-1234. Если вам не соответствует заранее созданный формат номера телефона, вы можете использовать его в качестве отправной точки для создания собственного формата. Дополнительные сведения см. в том, как создать или удалить пользовательский числовой формат.

Нужна дополнительная помощь?

Приведение телефонных номеров к единому формату

Garik007

Дата: Среда, 04.05.2016, 11:25 |
Сообщение № 1

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 102


Репутация:

0

±

Замечаний:
0% ±


Excel 2013, 2016

Добрый день. Необходимо привести большое количество (более 30 тыс.) телефонных номеров к единому 10-значному формату. Пример в прилагаемом файле.

 

Ответить

buchlotnik

Дата: Среда, 04.05.2016, 11:36 |
Сообщение № 2

Группа: Заблокированные

Ранг: Участник клуба

Сообщений: 3442


Репутация:

929

±

Замечаний:
20% ±


2010, 2013, 2016 RUS / ENG

можно UDF-кой [vba]

Код

Function tel$(t$)
    Dim txt$
    With CreateObject(«VBScript.RegExp»)
        .Global = True
        .Pattern = «D»
        txt = .Replace(t, «»)
    End With
    If Len(txt) < 7 Then
        tel = «неправильный номер»
    Else
        tel = «8495» & Right(txt, 7)
    End If
End Function

[/vba] ну или её в макрос засунуть

К сообщению приложен файл:

8891864.xls
(33.0 Kb)

 

Ответить

Garik007

Дата: Среда, 04.05.2016, 11:51 |
Сообщение № 3

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 102


Репутация:

0

±

Замечаний:
0% ±


Excel 2013, 2016

Работает, спасибо, но сейчас вспомнил про номера мобильных телефонов. Если номер, например, 9031234567 то его нужно приводить к формату 89031234567, т.е. если в номере 9 или 10 цифр, то их нужно оставлять как есть.

 

Ответить

buchlotnik

Дата: Среда, 04.05.2016, 12:03 |
Сообщение № 4

Группа: Заблокированные

Ранг: Участник клуба

Сообщений: 3442


Репутация:

929

±

Замечаний:
20% ±


2010, 2013, 2016 RUS / ENG

тогда так [vba]

Код

Function tel$(t$)
    Dim txt$
    With CreateObject(«VBScript.RegExp»)
        .Global = True
        .Pattern = «D»
        txt = .Replace(t, «»)
    End With
    Select Case Len(txt)
          Case Is =  7: tel = «8495» & txt
          Case Is = 10: tel = 8 & txt
          Case Is = 11: tel = txt
          Case Else: tel = «неправильный номер»
    End Select
End Function

[/vba]
и макрос типа: [vba]

Код

Sub re_tel()
    Dim i%
    For i = 1 To [a1].End(xlDown).Row
        Cells(i, 2) = tel(Cells(i, 1))
    Next
End Sub

[/vba]

К сообщению приложен файл:

8318914.xlsm
(14.5 Kb)

Сообщение отредактировал buchlotnikСреда, 04.05.2016, 12:29

 

Ответить

_Boroda_

Дата: Среда, 04.05.2016, 12:08 |
Сообщение № 5

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

Не столь универсальный вариант формулой

Код

=—(8&ПРАВБ(495&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A3;»-«;);»)»;);»моб.»;);10))

и форматом
[<=79999999999]»неправильный номер»;#(###) ###-##-##


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Garik007

Дата: Среда, 04.05.2016, 12:18 |
Сообщение № 6

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 102


Репутация:

0

±

Замечаний:
0% ±


Excel 2013, 2016

buchlotnik, спасибо большое, все работает как нужно, хотя мне больше по вкусу формулами.
_Boroda_, спасибо большое за формулу, жалко что не совсем универсальная, т.к. в исходном номере может быть любое количество букв, русских или английских, а не только «моб.».

Сообщение отредактировал Garik007Среда, 04.05.2016, 12:29

 

Ответить

buchlotnik

Дата: Среда, 04.05.2016, 12:58 |
Сообщение № 7

Группа: Заблокированные

Ранг: Участник клуба

Сообщений: 3442


Репутация:

929

±

Замечаний:
20% ±


2010, 2013, 2016 RUS / ENG

Цитата

мне больше по вкусу формулами

ну можно тогда вот так извратиться B)

Код

=ТЕКСТ(—8&ПРАВСИМВ(495&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЛЕВСИМВ(A3;ПРОСМОТР(«a»;ПСТР(A3;СТРОКА($A$1:$A$25);1);СТРОКА($A$1:$A$25))-1);»)»;);»(«;);»-«;);» «;);10);»[<=79999999999]неправильный номер;0»)

Сообщение отредактировал buchlotnikСреда, 04.05.2016, 13:25

 

Ответить

AlexM

Дата: Среда, 04.05.2016, 13:45 |
Сообщение № 8

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4257


Репутация:

1046

±

Замечаний:
0% ±


Excel 2003

формула массива

Код

=—(8495&ПРАВБ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЛЕВБ(A3;ПОИСКПОЗ(1=1;ПСТР(A3&»ё»;СТРОКА($1:$20);1)>»z»;)-1);»-«;);»)»;);»(«;);7))

плюс формат ячейки [<80000000000]»неправильный номер»;0

К сообщению приложен файл:

7630698.xls
(29.5 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.

 

Ответить

Garik007

Дата: Среда, 04.05.2016, 14:06 |
Сообщение № 9

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 102


Репутация:

0

±

Замечаний:
0% ±


Excel 2013, 2016

buchlotnik, почему то когда меняешь количество СТРОКА($A$1:$A$25);1);СТРОКА($A$1:$A$25), например на СТРОКА($A$1:$A$2500);1);СТРОКА($A$1:$A$2500), формула не убирает буквы из номеров.
[moder]
А количество ЧЕГО Вы меняете? И зачем?[/moder]
AlexM, к сожалению не учитываются мобильные телефоны, везде единый формат 8495.

Пока что макросом получилось лучше формул, всем огромное спасибо.

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

 

Ответить

buchlotnik

Дата: Среда, 04.05.2016, 14:41 |
Сообщение № 10

Группа: Заблокированные

Ранг: Участник клуба

Сообщений: 3442


Репутация:

929

±

Замечаний:
20% ±


2010, 2013, 2016 RUS / ENG

Цитата

некоторых ячейках указано больше одного номера

Garik007, а можно пример данных?

 

Ответить

Garik007

Дата: Среда, 04.05.2016, 14:55 |
Сообщение № 11

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 102


Репутация:

0

±

Замечаний:
0% ±


Excel 2013, 2016

А количество ЧЕГО Вы меняете? И зачем?

Не разобрался, думал что должен быть выделен весь диапазон в котором имеются номера.
buchlotnik, пример некорректных результатов выделен цветом.

 

Ответить

Garik007

Дата: Среда, 04.05.2016, 15:04 |
Сообщение № 12

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 102


Репутация:

0

±

Замечаний:
0% ±


Excel 2013, 2016

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

К сообщению приложен файл:

3283593.xlsx
(10.9 Kb)

 

Ответить

buchlotnik

Дата: Среда, 04.05.2016, 15:25 |
Сообщение № 13

Группа: Заблокированные

Ранг: Участник клуба

Сообщений: 3442


Репутация:

929

±

Замечаний:
20% ±


2010, 2013, 2016 RUS / ENG

формулу подкорректировал

Код

=ТЕКСТ(—8&ПРАВСИМВ(495&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЛЕВСИМВ(A14;ПРОСМОТР(9^9;ПСТР(A14;СТРОКА($A$1:$A$25);1)+1;СТРОКА($A$1:$A$25)));»)»;»»);»(«;»»);»-«;»»);» «;»»);10);»[<=79999999999]неправильный номер;0″)

К сообщению приложен файл:

uted_f.xlsx
(9.6 Kb)

 

Ответить

Garik007

Дата: Среда, 04.05.2016, 15:53 |
Сообщение № 14

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 102


Репутация:

0

±

Замечаний:
0% ±


Excel 2013, 2016

buchlotnik, вроде работает, спасибо.

 

Ответить

AlexM

Дата: Среда, 04.05.2016, 16:03 |
Сообщение № 15

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4257


Репутация:

1046

±

Замечаний:
0% ±


Excel 2003

Еще вариант
[moder]А вот не полезу в файле формулу смотреть! Лениво качать.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.

Сообщение отредактировал _Boroda_Среда, 04.05.2016, 16:09

 

Ответить

Garik007

Дата: Среда, 04.05.2016, 16:43 |
Сообщение № 16

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 102


Репутация:

0

±

Замечаний:
0% ±


Excel 2013, 2016

Почему-то отказывается работать эта формула.

К сообщению приложен файл:

8690422.xls
(30.5 Kb)

 

Ответить

DrMini

Дата: Среда, 04.05.2016, 20:35 |
Сообщение № 17

Группа: Проверенные

Ранг: Старожил

Сообщений: 1021


Репутация:

94

±

Замечаний:
0% ±


Excel LTSC 2021 RUS

Garik007, Всё работает. В C14 Вы не поставили квадратные скобки массива в конце и в начале., а в C17:C23 Вы не сменили формат ячейки. Протащите C13 вниз и будет Вам счастье.
[moder]Фигурные?

Сообщение отредактировал _Boroda_Среда, 04.05.2016, 20:42

 

Ответить

DrMini

Дата: Среда, 04.05.2016, 20:48 |
Сообщение № 18

Группа: Проверенные

Ранг: Старожил

Сообщений: 1021


Репутация:

94

±

Замечаний:
0% ±


Excel LTSC 2021 RUS

 

Ответить

AlexM

Дата: Среда, 04.05.2016, 22:44 |
Сообщение № 19

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4257


Репутация:

1046

±

Замечаний:
0% ±


Excel 2003

А вот не полезу в файле формулу смотреть! Лениво качать.

Формула массива

Код

=—ПРАВБ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЛЕВБ(A3;ПОИСКПОЗ(1=1;ПСТР(A4&»ё»;СТРОКА($1:$20);1)>»z»;)-1);»-«;);»)»;);»(«;);10)

Формат ячейки [<1000000]»неправильный номер»;[>9999999]»8″0;»8495″0



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.

 

Ответить

Garik007

Дата: Четверг, 05.05.2016, 09:10 |
Сообщение № 20

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 102


Репутация:

0

±

Замечаний:
0% ±


Excel 2013, 2016

Всем спасибо за решение данной задачки, теперь все работает как нужно.

 

Ответить

Логотип Microsoft Excel на зеленом фоне

Хотите превратить цифры в таблицах в правильные номера телефонов в США с кодами городов? Вместо того, чтобы вручную вставлять дефисы и скобки, используйте параметр форматирования номера телефона в Microsoft Excel.

В Excel вы можете форматировать данные разными способами. Одно из таких форматов — для телефонных номеров в США, превращая ваши числа, такие как «5555551234», в удобочитаемый «(555) 555-1234». При желании вы можете применить это форматирование сразу к нескольким телефонным номерам.

Для начала откройте электронную таблицу в Microsoft Excel.

В своей электронной таблице выберите ячейку или ячейки, в которых у вас есть номера телефонов.

Выделите ячейки, содержащие номер телефона в Excel.

Пока ваши номера телефонов выделены, на ленте Excel вверху щелкните вкладку «Главная».

Щелкните значок "Домой" вкладка в Excel.

На вкладке «Главная» в разделе «Число» щелкните «Формат числа» (значок стрелки) в правом нижнем углу.

Нажмите "Числовой формат" в "Домой" таб.

Вы увидите окно «Форматирование ячеек». Здесь в списке «Категория» слева выберите «Особые».

Выбирать "Специальный" на "Формат ячеек" окно.

В разделе «Тип» справа нажмите «Номер телефона». Затем нажмите «ОК» внизу.

Примечание. Если вы не видите «Номер телефона» в разделе «Тип», щелкните раскрывающееся меню «Регион» и выберите «Английский (США)» или другую поддерживаемую страну.

Нажмите "Телефонный номер" в "Тип" раздел и щелкните "В ПОРЯДКЕ."

Вернувшись в электронную таблицу, все ваши номера телефонов теперь отформатированы в правильном стиле.

Выбранные ячейки отформатированы в формате номера телефона в Excel.

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

Вот так в Microsoft Excel можно превратить обычные цифры в телефонные номера. Очень полезно!

Вам нужно добавить ноль перед числом в таблице Excel? Если так, то есть простой способ сделать это.

В этом учебном материале по Excel мы рассмотрим примеры того как очистить и переформатировать телефонные номера

Как в Excel очистить и переформатировать телефонные номера

Основная формула

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;«(«;«»);«)»;«»);«-«;«»);» «;«»);«.»;«»)+0

Описание

Один из способов очистить и переформатировать телефонные номера — это удалить все посторонние символы, а затем применить встроенный в Excel формат телефонных номеров.
В приведенной выше формуле используется ряд вложенных функций ПОДСТАВИТЬ для удаления пробелов, дефисов и круглых скобок.
Вам нужно будет настроить фактические замены в соответствии с вашими данными.

Пояснение

Формула выполняется изнутри, при этом каждая функция ПОДСТАВИТЬ удаляет один символ.
Самая внутренняя функция ПОДСТАВИТЬ удаляет левые круглые скобки, и результат передается следующей ПОДСТАВИТЬ, которая удаляет правые круглые скобки, и так далее.
Каждый раз, когда вы используете функцию ПОДСТАВИТЬ, результатом будет текст. Поскольку вы не можете применить числовой формат к тексту, нам нужно преобразовать текст в число. Один из способов сделать это — добавить ноль +0, который автоматически преобразует числа в текстовом формате в числа в числовом формате.

Наконец, применяется формат телефонного номера «Пользовательский» (столбец D).
Настройка формата происходит в форме «Формат ячеек» вызывается нажатием клавиш Ctrl+1. Далее на как на скрине ниже.
Как в Excel переформатировать телефонные номера

Уловка с пробелом для удобочитаемости

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

=

ПОДСТАВИТЬ(

ПОДСТАВИТЬ(

ПОДСТАВИТЬ(

ПОДСТАВИТЬ(

ПОДСТАВИТЬ(

A1;

«(«; «»);

«)»; «»);

«-«; «»);

«»; «»);

«.»; «»)

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

Понравилась статья? Поделить с друзьями:
  • Прибыль распределение в excel
  • Прибыль за год в excel
  • Прибыль в процентах формула excel
  • Прибыль в месяц в excel
  • При форматировании ячеек в excel нельзя задать курсив