8865 / 5912 / 585
Регистрация: 27.03.2013
Сообщений: 19,584
|
|
1 | |
Разделить поле на несколько15.01.2015, 10:13. Показов 8921. Ответов 26
Метки нет (Все метки)
Всем доброго дня!
Пытаюсь создать БД, типа справочника телефонов. Нашел в - Excel для нашего города и района, но он в таком непотребном виде, что страшно становится. В нем 3 поля Телефон, ФИО, АДРЕС. Вопрос в том можно ли поле - Адрес разбить хотя бы приблизительно на поля типа Район, н/п (Ну это типа город или поселок), НасПункт, ул (клица или проспект), улица, Дом, Кв. Сам попытался в ворде разбить, но ни че не получилось. Кроме того у некоторых записей после последнего знака имеется несколько пробелов (см. рис) В запросе с помощью - Trim([Адрес]) сжал адресок. Хотел попробовать в ручную но быстро устал, там около 40000 записей. Подскажите, возможно ли ваабще такое и если это не сильно заморочно помогите на примере..
0
|
15.01.2015, 10:13 | |
Ответы с готовыми решениями:
26
Как разделить в таблицу F1 поле Английское1? Подскажите, как разделить текст в ячейке на несколько столбцов (разные разделители) Несколько значений в поле Вычисляемое поле за несколько периодов |
8865 / 5912 / 585
Регистрация: 27.03.2013
Сообщений: 19,584
|
|
15.01.2015, 10:21 [ТС] | 2 |
Помнится как то, давно видел подобную тему, где разбивался текст на несколько, с помощью VBA, но я в этом совсем не рублю, и сделать сам не смогу, даже если и найду примерчик.
Стоит ли овчинка выделки?
0
|
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
15.01.2015, 10:38 | 3 |
Если есть справочники городов, районов, улиц, то задача выполнима процентов на 80-90. Остальные 10-20 процентов это ошибочные сведения, описки, которые надо анализировать и исправлять вручную.
Если же таких справочников нет, то задача усложняется и процент правильно диагностированных записей может снизиться. К тому же потребуется значительно больший размер кода для правильного разложения адреса на составляющие. Совет - искать справочники городов, районов, поселков, деревень, улиц. Без них задача может стать неподъемной.
2
|
17487 / 7249 / 1651
Регистрация: 21.06.2012
Сообщений: 13,866
|
|
15.01.2015, 10:43 | 4 |
Суетливо все это. Сначала нужно определиться со структурой адреса (город/поселок ... , улица/переулок/... микрорайон, номер дома, квартира), потом сформулировать правила, как выделять эти составляющие (типа после г/г. и, возможно пробелов, всегда идет город, оканчивается пробелом/./,). Выделить сначала все эти составляющие и собрать в справочники. А потом, находя по справочникам вхождения в адрес, формировать структурированный адрес (коды + сгенерированный текст). И, все равно, придется просматривать/корректировать все, что получилось.
1
|
8865 / 5912 / 585
Регистрация: 27.03.2013
Сообщений: 19,584
|
|
15.01.2015, 10:49 [ТС] | 5 |
Если Вы имеете в виду - Таблицы-Справочники, то вот во 2-й пример добавил или что то другое?
Это чтоб было можно сравнить и выбрать? Мне бы хоть разбить адреса на составляющие, а потом я вручную отсортирую и подправлю.
0
|
1266 / 448 / 129
Регистрация: 21.03.2013
Сообщений: 1,210
|
|
15.01.2015, 11:00 | 6 |
Если это данные только по Коврову и области
то задача существенно снижается 1. населенный пункт (г., п., д., с. и тд) всегда закачивается запятой (вариант начала можно сделать справочником) 2. улица (ул., пр-т, пер.,) всегда заканчивается запятой (вариант начала можно сделать справочником - причем он не совпадает с улицей) 3. номеру квартиры если есть всегда предшествует тире -
1
|
8865 / 5912 / 585
Регистрация: 27.03.2013
Сообщений: 19,584
|
|
15.01.2015, 11:04 [ТС] | 7 |
Это только по Коврову и району.
Умом то я понимаю, что так должно быть, НО КАК это сделать не умею.
0
|
2842 / 774 / 41
Регистрация: 20.05.2012
Сообщений: 2,055
|
|
16.01.2015, 00:00 | 8 |
Это где-то страница А4 кода при той довольно приемлемой структурированности\упорядоченности, которая на твоём рисунке.
За основу берётся КЛАДР и по нему сравнивается каждое слово (словосочетание) между запятыми исходя из названия географического уровня, стоящего рядом с этим именем: ул., пос. и т.д. Далее географич объекты адреса раскладываются по своим уровням; если уровень пустой (например, в адресе не указан район - 2-ой географич уровень, идущий после региона) - то пустая строка: так, основываясь на КЛАДРе, пишется адрес в налоговых документах, например: Москва,,,,пр-т Ленинский,д.1 Можно ещё больше снизить процент ошибок, если использовать спец алгоритм поиска (видел, кажется, на Хайпроге) по неполному совпадению (если полного совпадения в справочнике не найдено). Пух, а очень нужно и когда? (Там мороки примерно на день-два, но в целом интересно, сам давно хотел сделать для себя, всё руки не доходили...)
1
|
8865 / 5912 / 585
Регистрация: 27.03.2013
Сообщений: 19,584
|
|
16.01.2015, 07:30 [ТС] | 9 |
Андрэич - Спасибо за заботу.
Уже не очень срочно нужно, сёдня ночью на работе не спалось, так я в ручную , с помощью условий отбора и в запросе, неспеша за 4-5 час. на 95% практически сделал. Осталось придумать как в запросе у ФИО последние 4 знака удалить.
0
|
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||||||
16.01.2015, 07:48 | 10 | |||||
Мне кажется, что условие "последние 4 знака удалить" не совсем точное. Между инициалами могут быть пробелы. Может отсутствовать отчетство. Или еще какие ошибки/описки. Правильнее будет брать фамилию до первого пробела
До первого пробела тоже, конечно, не 100-процентный успех. Но все же повыщает вероятность правильного определения фамилии
2
|
8865 / 5912 / 585
Регистрация: 27.03.2013
Сообщений: 19,584
|
|
16.01.2015, 08:07 [ТС] | 11 |
mobile - Спасибо за пример.
Просто я у всех полей поставил формат < у ФИО все буковки маленькие. Хочу к примеру из: иванов и.и. сделать Иванов И. И. Так как у меня чёйта не получается создать формат что бы сразу в поле ФИО первая буква Фамилии и Инициалы сделались большими, то я хотел это сделать в несколько приемов, сничала разбив, а затем соврать. Кроме того мне больше гравится, когда между инициалами есть пробел.
0
|
8865 / 5912 / 585
Регистрация: 27.03.2013
Сообщений: 19,584
|
|
16.01.2015, 19:13 [ТС] | 13 |
mobile - А подскажите еще пожалуйста как задать формат, чтоб 1-я буква в фамилии была загдавной а остальные маленькие вместо
иванов получилось Иванов А то делить еще и фамилию стремно Добавлено через 2 минуты Спасибо, не увидел, что Вы уже выложили пример, форум чей то с запозданием обновляется. Добавлено через 10 часов 14 минут mobile - Ваш последний пример ну прям ВАААААЩЕЕЕ СУПЕР _ ПУПЕР прям бесподобен (ранее не знал об таком), я практически только на нём за час смог отсортировать и отредактировать (Правда в ручную) всю свою БД, Осталось только небольшой лоск навести. СПАСИБО ОГРОМНЕЙШЕЕ
0
|
3 / 3 / 0
Регистрация: 03.08.2015
Сообщений: 156
|
||||||
17.02.2017, 13:48 | 14 | |||||
mobile,
Подскажи пожалуйста! Как разделить такого типа наименования: к примеру Блок 5А 4-5 ТРУМ.123456.022, Рама 3 КК2.123321, Лопасть А3 КРУМ.123.234 ? Я пытаюсь пойти справа-налево до первого пробела. Но что-то не получается((
0
|
Модератор
6017 / 2845 / 693
Регистрация: 12.06.2016
Сообщений: 7,651
|
|
17.02.2017, 14:18 | 15 |
Split(Наименование, " ")
0
|
3 / 3 / 0
Регистрация: 03.08.2015
Сообщений: 156
|
|
17.02.2017, 14:29 | 16 |
Capi, mobile,
Что-то я не уточнил задачу, прошу прощения... из наименования типа: Блок 5А 4-5 ТРУМ.123456.022, Рама 3 КК2.123321, Лопасть А3 КРУМ.123.234 Мне нужно получить концовки (децимальные номера): ТРУМ.123456.022, КК2.123321, КРУМ.123.234 Вот я и пытаюсь пойти справа-налево до первого пробела. Но что-то не получается((
0
|
Модератор
|
||||||||||
17.02.2017, 14:42 | 17 | |||||||||
т.е. в левой части может быть не 1 пробел, следовательно деление по последнему пробелу
0
|
Модератор
6017 / 2845 / 693
Регистрация: 12.06.2016
Сообщений: 7,651
|
||||||
17.02.2017, 14:47 | 18 | |||||
Так и получится.
0
|
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|||||||||||
17.02.2017, 14:49 | 19 | ||||||||||
Rikozenit, как уже предлагалось Capi, использование split. Функцию splitfld разместите в общем (стандартном) модуле
0
|
Модератор
6017 / 2845 / 693
Регистрация: 12.06.2016
Сообщений: 7,651
|
|
17.02.2017, 14:53 | 20 |
0
|
17.02.2017, 14:53 | |
17.02.2017, 14:53 | |
Помогаю со студенческими работами здесь
20
Поле со списком и несколько значений! преобразовать несколько строк в поле Несколько дат в одном поле Форма.Несколько записей в одном поле Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |