Страницы: 1
RSS
Скрипт перевода номеров телефона в международный формат
 
Уважаемые участники форума, всем доброго времени суток. Хотел бы узнать, каким образом можно написать скрипт, который (исключительно в 1 столбце) переводил бы номера из регионального формата в международный. Например имеет 7 номеров разных стран, России, Украины, Белоруссии и так далее. В каждом номере отсутствует приставка +380, +7 и т.д, как сделать так, чтобы скрипт автоматически проверял строки на соответствие с кодами операторов и прибавлял необходимые цифры. Может такой скрипт уже существует в природе. Подскажите хотя бы где искать информацию по этому поводу. Заранее благодарю за ответ =)
 
{quote}{login=ExcelUser}{date=15.12.2012 07:19}{thema=Скрипт перевода номеров телефона в международный формат}{post}... как сделать так, чтобы... {/post}  
{/quote}  
Для начала - см. скрин и... особенно п.3 Правил... ;) -77509-
 
Вот прикрепил пример ))
 
1. Нужна таблица соответствий: Страна-Код.  
2. Нужна привязка: Фамилия-Страна.  
3. Для чего у Вас два столбца Имя и фамилия? Как понять Виктор Бубнова, Георгий Морозова?  
4. Подписывайтесь.
 
Вы надеетесь, что Excel знает, из какой страны Виктория?  
И Nataly может проживать в России...
 
Свежую информацию по Российской нумерации всегда можно найти на сайте:  
http://www.rossvyaz.ru/activity/num_resurs/registerNum/  
По международной одним файлом не попадалась, но на некоторых сайтах имеются сервисы, откуда можно скопировать коды стран и городов и перевести в Excel (сам недавно подобным занимался). Кое что на Википедии имеется:  
http://ru.wikipedia.org/wiki/Список_телефонных_кодов_стран
 
{quote}{login=vikttur}{date=15.12.2012 11:50}{thema=}{post}Вы надеетесь, что Excel знает...{/post}  
{/quote}Это просто пример списка, имя фамилия, вообще здесь не причем =)) Скрипту необходимо просто добавлять код страны к номерам телефона в зависимости от кода оператора и все =))
 
И где там код оператора?  
У нас например можно с одним номером переходить от одного мобильного оператора к другому - конечно где-то возможно есть список, какой range сейчас у кого, но подумайте какая это база, к тому же ещё и динамическая! Хотя в пределах страны она постоянная.  
Но думаю таких однозначных кодов нет. Предполагаю, что в разных странах могут быть совершенно одинаковые внутренние номера.
 
{quote}{login=}{date=16.12.2012 02:42}{thema=}{post}имя фамилия, вообще здесь не причем{/post}{/quote}Зачем тогда писали имя и фамилию? Лучше бы показали в соседнем столбце итоговый результат.
 
Off  
Други! Вечерок-то воскресный! Неужели нечем заняться, как из ТС клещами себе занятие тянуть?!. А с другом-товарищем тяпнуть, да с женой-подругой покалякать, а то с детьми-внуками заняться, а то вообще - на природу, проветриться... Не тянет?!. Красиво солнышко село - к морозцу, однако... ;) -38016-
 
off  
Я уже с природы вернулся... Правда нет там солнца, зато снега навалом -  почистил перед воротами да с теплицы - на этом общения с природой на сегодня достаточно :)
 
я сегодня тоже к компу только к вечеру добрался. хороший денёк.  
а с "клещами" уже завязал. Z прав - не стоит оно того :)
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
НУ вообще я имел ввиду, что если в номере есть комбинация 093,063,050,095,099 и так далее скрипт добавлял впереди +38, если 495,745 - +7 и так далее, коды я сам найду, мне бы хотя бы знать как это реализовать и где найти инфо по скрипту-писанию для excel.    
 
P.s Но если эта задача невыполнима можно хотя-бы сделать так, чтобы ко всем номерам без плюса добавлялся +. Я так понимаю это простая формула.  
 
Заранее спасибо и извините если отнимаю время.
 
{quote}{login=}{date=16.12.2012 06:30}{thema=}{post}...если в номере есть комбинация 093,063,050,095,099...{/post}{/quote}  
111222333095 - есть комбинация. Ставьте правильно опросы.  
 
Если искомая комбинация слева:  
=ЕСЛИ(ИЛИ(ЛЕВСИМВ(C1;3)={"093";"063";"050";"095";"099"});"+38";ЕСЛИ(ИЛИ(ЛЕВСИМВ(C1;3)={"495";"745"});"+7";"и т.д."))&C1  
 
Но лучше создать таблицу соответствий и применить ВПР().
 
Если Вы под +38 имеете ввиду Украину, то телефонный код Украины +380, получается, в вашем номере первый 0 - часть кода страны, но в таком случае имеются и другие коды стран, заканчивающиеся нулями, например +370 - Литва.  
Смотрим дальше +7: 495 - код Москвы, стало быть, под +7 имеется ввиду Россия, но тогда не вяжется 745, поскольку это уже Казахстан, именно там телефоны могут начинаться с +77.  
В общем, пока Вы не разберетесь сами и не сформулируете вопрос правильно, то и правильного ответа вряд ли получите.
 
Да дело не в кодах, там я уже сам разберусь. Мне нужна всего-лишь функция которая просматривает и находит соответствия в ячейке и в случае если соответствие есть, добавляет код страны. А коды операторов я уже сам найду.Ну и в случае если номер с + на начале, ничего не трогает. Все =))    
 
vikttur, огромное Вам спасибо, сегодня попробую =)
 
{quote}{login=vikttur}{date=16.12.2012 06:44}{post}Но лучше создать таблицу соответствий и применить ВПР().{/post}{/quote}Если не затруднит, можно тут поподробнее, меня бы как раз такая простота устроила -)) Спасибо.
 
В том то и дело, что имея номер телефона без кода страны, невозможно однозначно определить, какой стране этот номер принадлежит.  
Для примера - номер начинается с 654-xxxxxx, смотрим таблицу с кодами стран и городов,    
это может быть:    
Южная Корея (код 82), город Кунсан;  
Украина (код 380), город Ялта;  
Чехия (код 420), город Витков.  
И как Excel должна догадаться, какой код подставлять?
 
Даже если будут ошибки не страшно. Все понимают, что ошибки неизбежны. Да и тем более зачастую все будут из снг, там надо будет в таблицу сравнения около 15-20 значений (коды операторов) вставить и все =))
 
{quote}{login=}{date=16.12.2012 08:15}{thema=Re: }{post}там надо будет в таблицу сравнения около 15-20 значений (коды операторов) вставить и все =)){/post}{/quote}Так давайте эту таблицу соответствий! Вам уже несколько раз об этом говорили. И не ленитесь подписываться.
 
Так как все это муторно, заставили пользователей сразу писать номера в международном формате. Но некоторые пишут свой телефон не ставя + перед номером (а без плюсика доставка смс приглашения невозможна), или добавляют лишние знаки в номер. Можно ли сделать так, чтобы функция автоматом проставляла + (перед номером) там где его нет, и убирала лишние символы (проблелы, тире -). Всем большое спасибо, и простите, что отнял у вас попусту время.
 
Вас просили подписываться, показать таблицу соответствий и результат.  
Не хотите? Как хотите.
 
Я просто не до конца понял этот самописный движ. Пример прикрепил, подписался.
 
Sub qqq()  
For Each cl In Selection  
Range(cl.Address).NumberFormat = "@"  
Range(cl.Address) = "+" & Replace(Replace(cl, "-", ""), " ", "")  
Next  
End Sub
 
А можно ли сделать так, чтобы к номерам там где уже есть + он не добавлял плюсик =)) Спасибо.
 
Range(cl.Address) = "+" & Replace(Replace(Replace(cl, "+", "", "-", ""), " ", "")
 
Все уже поправил, спасибо все огромное за помошь =)
Страницы: 1
Читают тему
Наверх