подскажите пожалуйста как с помощью формул ( скриптом или как то по-другому (кроме варианта с поиск/замена)) преобразовать номера из различных форматов в один, например имеется список номеров
7 (923) 485-23-28
89237273418
7 (929) 973-74-24
+7(913) 759-44-42
89513663757
89050878259
89857226223
7 (951) 366-37-57
его необходимо преобразовать в
89234852328
89237273418
89299737424
89137594442
89513663757
89050878259
89857226223
89513663757
в приложении пример файла - номера будут постоянно добавляться
sergexcel, привет. Можно так: =ЕСЛИОШИБКА(СЦЕПИТЬ("8";ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПСТР(C2;НАЙТИ("(";C2)+1;99);")";"");"-";"");" ";""));F2) Или так (на один ПОДСТАВИТЬ короче) =ЕСЛИОШИБКА("8"&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПСТР(C2;НАЙТИ("(";C2)+1;99);") ";"");"-";"");F2)
Public Function iPhone(cell 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(cell, "")
If Len(tempString) = 11 Then
If (Left(tempString, 1) = "8") Then
iPhone = tempString
Else
iPhone = "8" + Mid(tempString, 1)
End If
Else
iPhone = "не та разрядность номера"
End If
End Function
Bema, =ЕСЛИОШИБКА("8"&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПСТР(C2;НАЙТИ("(";C2)+1;99);") ";"");"-";"");F2) почему вы ссылаетесь в "еслиошибка" на F2? Значение в F2 получить надо - в файле я указал это как пример - вид к которому надо привести
Bema, появились номера которые заносятся в таком формате "79134481484", формула такой номер преобразует в "79134481484" - то есть не в "89134481484", подскажите пожалуйта, что надо поменять в формуле =ЕСЛИОШИБКА("8"&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПСТР(C2;НАЙТИ("(";C2)+1;99);") ";"");"-";"");C2)
to Kuzmich "А UDF, которую я вам написал, вы принципиально игнорируете?" У меня не получилось реализовать по макросу, который вы выслали, может я что то сделал не так ( Добавил функцию в модуль, потом пишу =iphone (C2) - выдается "#value!" (C2 - ячейка с номером преобразования) (excel на MAC)
дополнение к ранее высланному ответу реализовал на экcеле из винодовс, функция работает, но не всегда корректно пример ошибки
+7(913) 749-44-42 ---> 879137494442
сделал на маке, не работает, может что не так делаю