Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Единая формат телефонных номеров - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Единая формат телефонных номеров (Формулы/Formulas)
Единая формат телефонных номеров
Landon Дата: Четверг, 10.05.2018, 13:58 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel для Mac
Добрый день, друзья! Будьте добры, подскажите как все номера привести к формату 89999999999?
К сообщению приложен файл: 1652656.xlsx (15.7 Kb)
 
Ответить
СообщениеДобрый день, друзья! Будьте добры, подскажите как все номера привести к формату 89999999999?

Автор - Landon
Дата добавления - 10.05.2018 в 13:58
abtextime Дата: Четверг, 10.05.2018, 14:11 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация: 117 ±
Замечаний: 0% ±

Excel 2010
Код
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A4;"+7";"8");"(";"");")";"");"-";"");"+";"");" ";"")
К сообщению приложен файл: 6079079.xlsx (21.7 Kb)
 
Ответить
Сообщение
Код
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A4;"+7";"8");"(";"");")";"");"-";"");"+";"");" ";"")

Автор - abtextime
Дата добавления - 10.05.2018 в 14:11
sboy Дата: Четверг, 10.05.2018, 14:14 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
а что делать с таким? +375 (255) 332587


Яндекс: 410016850021169
 
Ответить
Сообщениеа что делать с таким? +375 (255) 332587

Автор - sboy
Дата добавления - 10.05.2018 в 14:14
StoTisteg Дата: Четверг, 10.05.2018, 14:39 | Сообщение № 4
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
Я не формулист, я VBAшник, поэтому просто набросал на коленке макрос:
[vba]
Код
Sub ReFormat()

   Dim i As Long, j As Long
   
   For i = 4 To Cells(Rows.Count, 1).End(xlUp).Row
      If Not IsNumeric(Cells(i, 1).Value) Then
         Cells(i, 1).Value = IIf(Left(Cells(i, 1).Value, 2) = "+7", Replace(Cells(i, 1).Value, "+7", "8", 1, 1, vbTextCompare), Cells(i, 1).Value)
         j = 2
         Do Until IsNumeric(Cells(i, 1).Value)
            If Not IsNumeric(Mid(Cells(i, 1).Value, j, 1)) Then Cells(i, 1).Value = Replace(Cells(i, 1).Value, Mid(Cells(i, 1).Value, j, 1), "", 1, 1, vbTextCompare) Else j = j + 1
         Loop
      End If
   Next i

End Sub
[/vba]
К сообщению приложен файл: 0332591.xlsm (21.2 Kb)


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеЯ не формулист, я VBAшник, поэтому просто набросал на коленке макрос:
[vba]
Код
Sub ReFormat()

   Dim i As Long, j As Long
   
   For i = 4 To Cells(Rows.Count, 1).End(xlUp).Row
      If Not IsNumeric(Cells(i, 1).Value) Then
         Cells(i, 1).Value = IIf(Left(Cells(i, 1).Value, 2) = "+7", Replace(Cells(i, 1).Value, "+7", "8", 1, 1, vbTextCompare), Cells(i, 1).Value)
         j = 2
         Do Until IsNumeric(Cells(i, 1).Value)
            If Not IsNumeric(Mid(Cells(i, 1).Value, j, 1)) Then Cells(i, 1).Value = Replace(Cells(i, 1).Value, Mid(Cells(i, 1).Value, j, 1), "", 1, 1, vbTextCompare) Else j = j + 1
         Loop
      End If
   Next i

End Sub
[/vba]

Автор - StoTisteg
Дата добавления - 10.05.2018 в 14:39
StoTisteg Дата: Четверг, 10.05.2018, 14:47 | Сообщение № 5
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
А если макрос не катит принципиально, оберните всё это ещё в один слой с заменой пробела.


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеА если макрос не катит принципиально, оберните всё это ещё в один слой с заменой пробела.

Автор - StoTisteg
Дата добавления - 10.05.2018 в 14:47
abtextime Дата: Четверг, 10.05.2018, 15:17 | Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация: 117 ±
Замечаний: 0% ±

Excel 2010
StoTisteg, что обернуть? мою формулу? Там уже есть финальная замена пробела на ""
 
Ответить
СообщениеStoTisteg, что обернуть? мою формулу? Там уже есть финальная замена пробела на ""

Автор - abtextime
Дата добавления - 10.05.2018 в 15:17
sboy Дата: Четверг, 10.05.2018, 15:22 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
просто набросал

Вариант пользовательской функцией (в телефонах +375, просто убирается "+")
[vba]
Код
Function landon(t As String)
    With CreateObject("VBScript.RegExp"): .Global = True
        .Pattern = "\+7": t = .Replace(t, 8)
        .Pattern = "\+9": t = .Replace(t, 89)
        .Pattern = "\D": landon = .Replace(t, "")
    End With
End Function
[/vba]
К сообщению приложен файл: 1652656.xlsm (26.8 Kb)


Яндекс: 410016850021169
 
Ответить
Сообщение
просто набросал

Вариант пользовательской функцией (в телефонах +375, просто убирается "+")
[vba]
Код
Function landon(t As String)
    With CreateObject("VBScript.RegExp"): .Global = True
        .Pattern = "\+7": t = .Replace(t, 8)
        .Pattern = "\+9": t = .Replace(t, 89)
        .Pattern = "\D": landon = .Replace(t, "")
    End With
End Function
[/vba]

Автор - sboy
Дата добавления - 10.05.2018 в 15:22
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Единая формат телефонных номеров (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!