Страницы: 1
RSS
Удаление ячеек, в которых меньше 7 символов
 
Здравствуйте.  
Я уже испугался, потому как Ваш форум был какое то время недоступен.  
 
Вопрос у меня следующий.  
 
У меня есть база телефонов в Excel. Но в ней разного формата номера и в том числе городские. А мне необходимо оставить только мобильные и привести их в один вид. Часть номеров я отсек, в которых встречались цифры 495 подряд, так как это в основном код города.  
В основном номера такого вида:  
 
9851058500     - необходимо добавить +7  
79151311902    - необходимо добавить +  
89055683882    - заменить начало на +7 вместо 8  
6498638        - удалить так как городской  
 
Лучше макросом. Как я понимаю, необходимо:  
1. Удалить все ячейки в которых 7-8 и менее символов  
2. Проверить первые цифры, если они начинаются на 9 -> добавить +7, если на 7 -> добавить +, если на 8 -> заменить на +7  
 
Алгоритм примерно такой. Правильный? Как макросом это реализовать можно?
 
А потом хорошобы проверить правильно ли все сработало. Все что не начинается на +79 и все что отличается от 11 символов (10 цифр и +) перенести в низ. А там вручную посмотреть как сработало все.
 
Михей  
>>Как макросом это реализовать можно?  
Можно  
>>Правильный?  
Не совсем.  
1. Может быть введён (я об этом не знаю, так как нет файла) городской номер с кодом города и 8, например, 84951234567.  
2. Не определено, что должно происходить при удалении ячейки: удаляется вся строка, остальные ячейки: сдвиаются вверх или влево?
 
Я удалил все строки, в которых присутствует подрят цифры 495, поэтому не будет такого варианта.  
Удалятся вся строка и поднимается вверх значения.  
 
Спасибо за ответ.
 
Единственное в базе попадаются номера 15 цифр, это какие то ошибки, их я тоже хочу отсечь. Но если будет после изменений происходить сортировка и все что не соответствует 11 символам уйдет вниз или удалиться то будет самое то
 
да легко
Живи и дай жить..
 
А может типа такой формулы использовать в доп.столбце?  
"=ЕСЛИ(И(ДЛСТР(A1)=11;ПСТР(A1;1;1)="8");"+7"&ПСТР(A1;2;10);ЕСЛИ(И(ДЛСТР(A1)=11;ПСТР(A1;1;1)="7");"+"&A1;ЕСЛИ(И(ДЛСТР(A1)=10;ПСТР(A1;1;1)="9");"+7"&A1;"")))"  
________________________  
khafizovtt@gmail.com
Учимся сами и помогаем другим...
 
ber$erk спасибо. Эту формулу копируешь в каждое поле соседнего столбца и потом результат чистишь от пустых ячеек?
 
ну я бы вставил в поле первого соседнего столбца и протянул до конца :-) потом по этому столбцу отсортировал и уже глазками пробежал бы пустые ячейки: а вдруг есть номер сотового, написанный напр. "8(906)341-12-22"?  
________________________  
khafizovtt@gmail.com
Учимся сами и помогаем другим...
 
8(906)341-12-22  
Я удалил все, кроме цифр. Тем более хочу удалить все что длиннее или короче 11 символов.  
Я еще обнаружил в базе явно левые, скорее всего международные телефоны  
375297960682  
380988430588  
8,91667285478986E21 - это вообще что то непредсказуемое.
Учимся сами и помогаем другим...
 
ber$erk извиняюсь, лень набирать каждый раз ник, скопировал да не то. Сорри  
Вместо обращения ник поставид
 
Да ниче :-) я правда сперва удивился: вроде ничего не писал такого...  
З.Ы.: я бы еще формат ячеек настроил с форматированием под сотовые телефоны, чтобы проще глазами было проверять  
________________________  
khafizovtt@gmail.com
Учимся сами и помогаем другим...
 
ber$erk через пол часика освобожусь и будет возможность попробывать Ваш метод. Спасибо.  
 
А насчет удаления. Не проще вначале удалить с помощью макроса все что отличается от 8-9 цифр (это '79', '9', '89'), а потом все манипуляции которые Вы написали сделать. Работа упроститься. А лучще еще удалить также что начинается на все кроме цифр 7 8 9.
 
тоже вариант
Учимся сами и помогаем другим...
 
ber$erk подскажите пожалуйста с помощью чего это можно реализовать?
 
В принципе формула позволяет отфильтровать эти случаи. Достаточно отсортировать по столбцу и удалить пустые  
________________________  
khafizovtt@gmail.com
Учимся сами и помогаем другим...
 
ber$erk спасибо работает. И быстро. Только что то странно через F5->выделеть пустые ячейки не находит их.  
Я это решил сортировкой и ручным удалением.  
 
Оказалось что в базе есть +7800 +7(другой код города). Я их конечно вычеслил после сортировки и удалить не так сложно все что выше +7901 можно удалять. Может есть еще проще метод? Хотя и так не особо сложно.  
 
Спасибо
Страницы: 1
Читают тему
Наверх