Страницы: 1 2 След.
RSS
Разделение слитного текста
 
Прочесала форум в поисках этой темы, нашла формулу и скрипт для разделения слитного текста, который изначально в таком виде: ИвановИванИванович
Реально ли разделить текст следующего вида: И В А Н О В И В А Н И В А Н О В И Ч
Между этими буквами есть пробелы.
Моя БД состоит и из фио 1ого вида и 2ого вида. С первым я разобралась, то есть часть БД "чистая". Возможно ли написать скрипт, который не будет трогать уже исправленный текст, но исправит текст 2ого вида?

Помогите, пожалуйста!!!
 
возможно.
пример файла будет?
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Вот весь файл в котором я работаю. На 3 листе список ФИО, частично отредактированный.
 
Цитата
ктулху пишет: возможно
не верю пока сам не увижу...
Цитата
Kybu1357 пишет: Вот весь файл в котором я работаю
не верю пока сам не увижу...
 
сорри, на форум не грузит, вот ссыль https://drive.google.com/file/d/0BwZvoo_NnjgNVWNuUjlDTUJhanc/edit?usp=sharing
 
Цитата
Kybu1357 пишет: сорри, на форум не грузит
Ознакомьтесь с Правилами. И сколько же там у Вас строк?
 
Ознакомилась, прошу прощения.
Вот файл. Стобец А - то как есть сейчас. Столбец Б - как должно быть в итоге.
В основной базе около 20 тысяч строк.

Основная проблема состоит не только в заглавных буквах, в пробелах между ними, а в еще и в том, что среди этих заглавных букв затесываются иногда строчные.
Буду очень благодарна, если сможете помочь решить эту проблему.
Изменено: Kybu1357 - 25.06.2014 14:26:56
 
Имхо регистр - это не проблема. Есть строчн(), прописн(). Думаю, тут только через массив имён разделять, т.к. имя всегда посередине, то остальное уже не проблема.
АПДТ Хотя могут быть нюансы, например, Максимов Максим Максимович...
Изменено: JayBhagavan - 25.06.2014 15:29:13

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
список отчеств тоже не помешает.
ресурсов в сети полно, первый попавшийся: http://top-names.org/samyj-polnyj-spisok-imen-samyj-bolshoj-spravochnik-imen
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
JayBhagavan, каким образом можно разделить через массив имен? Я не сильно в этом разбираюсь, поэтому и прошу помощи. Подскажите, пожалуйста.
 
Вот то, что я уже делала:

Для списка имен вот такого вида:
ПетроваАнастасияВалерьевна
я использовала формулу =СЖПРОБЕЛЫ(razdelitxText(A3))

Для такого типа как сейчас, т.е.
АНТОНОВАНДРЕйАлЕксАНДРОВИЧ
Эта формула не подходит. Она построена на том, чтобы автоматом ставить пробелы между большими буквами. Изменить в этом случае регистр так, чтобы каждый элемент ФИО писался с большой буквы невозможно. Используя другую формулу, возможно указать определенное количество знаков для отделения, но для всего массива данных это не сработает.
 
Kybu1357, если всегда значения идут в порядке фамилия имя отчество, то можете найти самый большой и полный список отчеств, засунуть их в таблицу и пройтись по своей базе поиском. Каждый раз, когда находите похожее отчество, ставьте перед ним пробел, благо отчества уникальны...
Учусь программировать :)
 
Smiley, мне все равно придется пройтись по всей базе данных в 20 тысяч человек. Поэтому мне и нужна автоматизация.
 
Kybu1357, всё не просто. Попытка с именем неудачная как видно в прикреплённом файле.
Ещё вариант умножить массив имён на массив отчеств (см. сообщение ктулху) и искать уже сцепку имени и отчества по аналогии с именем.
АПДТ С ошибками беда: "БабкинаМаргаритаВлдадимировна"
Изменено: JayBhagavan - 25.06.2014 18:44:09

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Сделал так на три строки. В файле ручной пересчёт, т.к. решение ОЧЕНЬ ТОРМОЗНУТОЕ. Потому дальше не рискнул протягивать. Имеются именованные формулы, диапазоны. Описание что делают формулы в примечаниях к трём ячейкам. Возможно у кого будет изящнее и более скоростное решение. Моих знаний и времени на оптимизацию не хватает. ДобРа.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
макрос
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
JayBhagavan, тоже заинтересовала данная тема. Споткнулся на том как проверить вхождение словаря имен в массив слитого текста. Проверять вхождение имени по одному, тут все просто, а вот проверить массив??. Мне кажется макрописатели могут помочь.
 
Цитата
Kladez пишет: а вот проверить массив
может не надо  :(   все равно где нибудь накосячит.
Изменено: Nic70y - 26.06.2014 17:11:15 (выделил косяки)
 
Да, примерно понял, что вот эта часть МАКС(ЕЧИСЛО(ПОИСК(базаИ;A1))*СТРОКА(базаИ)-1) проверяет вхождение имен  в массив. Объем ошибок тоже виден. Может нужно отталкиваться не от словаря имен, а от словаря отчеств? Но отчества ведь не в середине ячейки а в конце. Тогда сначала извлечь отчества и в исходной ячейке оставить только Фамилия и Имя, и после этого извлекать имя?
 
О Ikki, случайно Ваше сообщение осталось в "верхней" части экрана, поэтому когда писал не видел его.
Макрос работает, браво браво!!!
 
:oops:
я какой-то несколько странный источник использовал. :)
та нет многих русских имён и отчеств. причём часто встречающихся.
проблема, конечно, решается легко - при обнаружении ошибки на лист spr добавляем имя/отчество в соответствующую колонку и повторно запускаем макрос.

хотелось бы заметить, что в макросе проверяются сначала более длинные отчества/имена, потом более короткие.
в общем-то, это правильно - иначе, например, из имени Татьяна может найтись Яна, а Тать будет присоединено к фамилии.

однако, есть такие имена, где это может сыграть плохую шутку.
например, есть женские имена Лина и Алина
и строка ивановалинапавловна даст Иванов Алина Павловна.

чисто теоретически можно попробовать имена/отчества на мужские-женские.
и проверять соответствие рода имени и фамилии.
но фамилии - это такой тёмный лес...

так что, на практике я бы посоветовал просто пробежаться глазками по результату работы макроса.
для 20000+ это, конечно, работка не из самых приятных.
но всё же проще, чем руками перепечатывать исходный бардак (кстати, откуда он? такой кривой результат FineReader'а?)
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Цитата
Kladez пишет: О Ikki
маскировка не работает? :oops::(
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Ага, не работает, посмотрите вот здесь http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=5&TID=45650&TITLE_SEO=45650 пост # 3 уж очень фотографии похожи.
 
можть близнецы?
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
ну вот почему сразу "дурит"?
я пытался уйти от себя, я брал острую бритву и резал имиджа флудильщика.
провёл ребрендинг.
всё как в книжках написано.

но, кажется, не получилось
и теперь горе мое неутешно.   :cry:
Изменено: ктулху - 26.06.2014 19:16:00
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Ну, написал я, что дурит таки, дурит!
Потом подумал (надо было сначала подумать, понимаю), удалил. А он успел прочитать.
Мало того, что дурит, так еще и быстро.
 
Цитата
vikttur пишет:
Потом подумал
ой! я тоже всегда так делаю!!! :D
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Наиболее чистым мне показался вариант ктухлу.
Изменено: Kybu1357 - 27.06.2014 17:17:03
 
Всем большое спасибо!!!!
 
Я в итоге дополнила базу данных с именами. Несмотря на это, все равно получились косяки. Из серии если отчество Фёдорович написано через ё, то выдает ошибку по отчеству. Но все равно это очень облегчило мне задачу! Еще раз спасибо!
Страницы: 1 2 След.
Наверх