Страницы: 1
RSS
как извлечь телефон из ячейки с адресом?
 
Привет всем!  
Помогите!  
Нужно из ячейки с адресом и тел. выделить телефонный номер  
и убрать лишние символы. Два дня на форуме, но подходяшего нет.  
В Excel ни бум-бум, так что если что не так извините.  
Заранее благодарен!
 
UDF (я без regexp за такие задачи не берусь :))  
 
Если возникнет вопрос, что такое UDF: http://www.planetaexcel.ru/tip.php?aid=122
 
и как же это применить?
 
Если телефоны всегда в конце, всегда 10-значные и "Т.:" всегда латинское, то можно так  
 
UDF в данном случае лучше.
 
С формулами (правда пробелы и тире пока не убирал).
 
{quote}{login=Михаил С.}{date=18.05.2011 11:30}{thema=}{post}Если телефоны всегда в конце, всегда 10-значные и "Т.:" всегда латинское, то можно так  
 
UDF в данном случае лучше.{/post}{/quote}  
 
а если так..... и телефон нужен мобильный?
 
можно и без  регулярных примерно так  
Function num_telefon(tel$) As String  
Dim x$, tmp$  
For i = 1 To Len(tel)  
tmp = Mid(tel, i, 1)  
If IsNumeric(tmp) Then  
x = x & tmp  
If Len(x) = 10 Then Exit For  
Else  
If Asc(tmp) <> 32 And Asc(tmp) <> 45 Then x = ""  
End If  
Next  
num_telefon = x  
End Function
Спасибо
 
{quote}{login=}{date=18.05.2011 11:36}{thema=}{post}С формулами (правда пробелы и тире пока не убирал).{/post}{/quote}  
 
все знаки кроме цифр лишние,  
и если два моб тел. то нужно бы два!
 
{quote}{login=R Dmitry}{date=18.05.2011 11:42}{thema=}{post}можно и без  регулярных примерно так  
Function num_telefon(tel$) As String  
Dim x$, tmp$  
For i = 1 To Len(tel)  
tmp = Mid(tel, i, 1)  
If IsNumeric(tmp) Then  
x = x & tmp  
If Len(x) = 10 Then Exit For  
Else  
If Asc(tmp) <> 32 And Asc(tmp) <> 45 Then x = ""  
End If  
Next  
num_telefon = x  
End Function{/post}{/quote}  
 
если б знать еще что с этим делать....! ни бум-бум же!  
а так спасибо!
 
А что на Донбассе все такие капризные? Вот пример, что делать с этим (но функция извлекает только один номер):  
Function num_telefon(tel$) As String  
Dim x$, tmp$  
For i = 1 To Len(tel)  
tmp = Mid(tel, i, 1)  
If IsNumeric(tmp) Then  
x = x & tmp  
If Len(x) = 10 Then Exit For  
Else  
If Asc(tmp) <> 32 And Asc(tmp) <> 45 Then x = ""  
End If  
Next  
num_telefon = x  
End Function
 
{quote}{login=}{date=18.05.2011 11:57}{thema=}{post}А что на Донбассе все такие капризные? Вот пример, что делать с этим (но функция извлекает только один номер):  
Function num_telefon(tel$) As String  
Dim x$, tmp$  
For i = 1 To Len(tel)  
tmp = Mid(tel, i, 1)  
If IsNumeric(tmp) Then  
x = x & tmp  
If Len(x) = 10 Then Exit For  
Else  
If Asc(tmp) <> 32 And Asc(tmp) <> 45 Then x = ""  
End If  
Next  
num_telefon = x  
End Function{/post}{/quote}  
за капризы извините, но знал бы как это работает не хныкал бы!!!!!
 
спасибо огромное а как бы все номера получить и текст их перевести?
 
Ликбез тут: http://www.planetaexcel.ru/tip.php?aid=122
 
{quote}{login=}{date=18.05.2011 12:03}{thema=}{post}Ликбез тут: http://www.planetaexcel.ru/tip.php?aid=122{/post}{/quote}  
спаасибо!
 
Только формулой.
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Исправленному верить.. ошибочку нашёл.
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Все телефоны (не менее 5 цифр), с сохранением плюса:
Страницы: 1
Читают тему
Наверх