Страницы: 1
RSS
Как список почтовых адресов разделить на ячейки
 
Есть список адресов, как из него сделать таблицу, в которой все данные разобьются по ячейкам? Чтобы все номера домов находились а одном столбце, номера корпусов во втором, а номера квартир в третьем и, все номера шли по порядку: от первого номера до последнего в доме или на улице. У меня получается разбить адрес по ячейкам, но в адресах, где отсутствует корпус, в столбец с корпусами вставляются квартиры, все путается. В общем, как не пытаюсь - не удается((((((
 
а в каком-нибудь адресе еще и район встретится?  
все возможные варианты можете выбрать?  
и в какую колонку пихать вариант с корпусом?  
 
пс. как вы пытались - нам, конечно. не видно.  
но, имхо, без макроса тут не обойтись.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Возможно, это поможет(Ваш файл не смотрел, но такое решалось):   
http://forum.msexcel.ru/empty-t6926.0.html;msg37568#msg37568
Я сам - дурнее всякого примера! ...
 
все возможные варианты можете выбрать?  
и в какую колонку пихать вариант с корпусом?  
 
Нет, района не будет.  
в этом куске таблице все возможные варианты.  
должен идти: дом № корпус № кв. № - все в отдельных столбцах
 
margarita_od, Вы по моей ссылке ходили? Задача один-в-один, как у Вас.
Я сам - дурнее всякого примера! ...
 
вариант без макросов. но нужно немножко поработать ручками  
1) в отд.столбце пишем формулу, добавляющую одну запятую в нужном месте для адресов, у которых нет корпуса  
=ЕСЛИ(ЕОШ(НАЙТИ("корп.";E1;1));ПОДСТАВИТЬ(E1;", кв.";", , кв.");E1)  
2) заполняем эту формулу до конца списка  
3) заменяем на значения  
4) текст по столбцам, разделитель - запятая
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Да, но так и не поняла. У меня не просто туго, а ооооочень туго со всем этим. Мне, как в первом классе надо. Я не работала раньше в Exel, гуманитарий я. Но в связи с обстановкой в стране - пришлось, и стреляюсь вот!!!  
 
И еще, к этой же теме. У меня три El-вских документа со списками. В сумме 180 тыс. Как можно все три списка соединить. Просто скопировать не получается
 
margarita_od, тянуть клещами из гуманитария не хочется, но приходится.  
ну и что, что 180 тыс.?  
почему не получается "просто скопировать"?  
кстати, какая версия Excel у вас?
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
180 тыс - это вы нас пугаете?!. Привыкайте - теперь это ВАША работа... Но не все так страшно - если судить по небольшому примеру. Хотя... Надо бы плясать от структуры, имхо, итоговой таблицы, т.к. могут всплыть вопросы: - почему номера домов без "д."? - почему только "кв.", а где "оф.", "комн."? - а где "строения"?..  
Да, и учесть как их писать - д.101/А или 101а?.., вместе д.101 или отельно "д.", "101"?.. Все эти мелочи - большая головная боль при последующей сортировке адресов или их выборке... Лучше сейчас подстраховаться, если конечно это не разовое учебно-тренировочное задание... ;) -91358-
 
нет. не учебно-тренировочное((((( Да есть и такие данные :    
65017, Україна, Одеська обл., м.Одеса, вул.Бреуса, 23, кв.в/б и такие:    
65017, Україна, Одеська обл., м.Одеса, вул.Спартаківська, 2, корп.В/Ч А 1785    
и дробные. Ну все, что встречается в прописке  
 
Думаю, что сама цифра должна быть в ячейке без всяких д., кв., комн., в/ч и т.д.  
Мне же потом нужно расставить в столбце все дома и кв. с первого дома  
 
Версия Excel 2003
 
Для данного примера вариант унификации:  
Public Sub www()  
   Dim a, c As Range, i  
   a = Array("вул.", "кв.", "обл.", "м.", ", корп.")  
   Set c = [e5].CurrentRegion: Application.DisplayAlerts = 0
   'Для работы на месте следующие строки закоммнетировать******  
   [g5].CurrentRegion.ClearContents
   c.Copy [g1]: Set c = [g1].CurrentRegion
   '***********************************************************  
   c.Replace What:=", корп.", Replacement:="\", LookAt:=xlPart, _  
             MatchCase:=False  
   c.Replace What:=",", Replacement:="|'", LookAt:=xlPart, _  
             MatchCase:=False  
   On Error Resume Next  
   For i = 0 To UBound(a)  
       c.Replace What:=a(i), Replacement:="", LookAt:=xlPart, _  
                 MatchCase:=False  
   Next  
   c.TextToColumns Destination:=c, DataType:=xlDelimited, _  
                   Other:=True, OtherChar:="|"  
   Set c = c.CurrentRegion: c = Application.Trim©  
c.Columns(1).NumberFormat = "General"  
Application.DisplayAlerts = -1  
End Sub
Я сам - дурнее всякого примера! ...
Страницы: 1
Читают тему
Наверх