Страницы: 1
RSS
Вытащить из текста название компании и/или ФИО человека
 
      Здравствуйте.
     В файле-примере (в приложении) в столбце B имеется различный текст. Нужно вытащить из него названия Организаций и/или Фамилию Имя Отчество людей (пример того, что нужно получить в файле-примере в столбце D). Сам пробовал написать формулу, но она вытягивает нужное только при вариантах текста, указанных в первых четырёх ячейках столбца B (в файле-примере данную формулу не привожу). Помогите, пожалуйста.
 
Автоматизировать бардак?
Поотрывайте руки всем. кто так вводил данные. Пришейте эти руки одному и пусть он все приведет в порядок. Получится быстрее  :)
 
Цитата
vikttur написал: Поотрывайте руки всем. кто так вводил данные
К сожалению данные так выводятся из другой программы. Возможно в ней кто-то так вводит. Но я пока не знаю кто. А пока мне надо вытащить ФИО и названия компаний. неужели нельзя придумать формулу?
 
4 минуты работы. Инструмент НАЙТИ/ЗАМЕНИТЬ+СЖПРОБЕЛЫ.. Удаляем слова, сокращения, словосочетания, цифры, лишние пробелы.
Получается вот так (см. файл)
Дальше нужно определять заглавные и по ним ориентироваться.

Формула массива обрежет лишние значения слева:
=ПСТР(C2;МИН(ЕСЛИ(КОДСИМВ(ПСТР(C2&ПОВТОР("я";100);СТРОКА($1:$100);1))>191;ЕСЛИ(КОДСИМВ(ПСТР(C2&ПОВТОР("я";100);СТРОКА($1:$100);1))<224;СТРОКА($1:$50))));100)

Дальше лень писать. Вручную. Преобразовать формулы в значения, НАЙТИ- " х*" (пробел буква звездочка), ЗАМЕНИТЬ - пусто. Пройтись по всем маленьким буквам. Останутся только слова с большой буквы.
 
добрый день,в данных бардак,вариант uuu1 в столбце G для Фио или uuu2 в H для первого слова
 
Код
Function uuu1$(t$)
 With CreateObject("VBScript.RegExp"): .Pattern = "[А-ЯЁ][а-яё]+ [А-Яё][а-яё\.]+ [А-ЯЁ][а-яё\.]+"
    If .test(t) Then uuu1 = .Execute(t)(0) Else uuu1 = ""
 End With
End Function
Изменено: sv2013 - 13.08.2016 18:13:17
 
Дед_Мазай,добавил в столбец H uuu3 для извлечения фирмы

Код
 Function uuu3$(t$)
   t = Replace(t, """", "")
 With CreateObject("VBScript.RegExp"): .Pattern = "(?:ООО|Общество с ограниченной ответственностью) [А-ЯЁ][а-яё]+"
    If .test(t) Then uuu3 = Split(.Execute(t)(0))(UBound(Split(.Execute(t)(0)))) Else uuu3 = ""
 End With
End Function
Изменено: sv2013 - 13.08.2016 19:29:17
 
Цитата
vikttur написал:  Удаляем слова, сокращения, словосочетания, цифры, лишние пробелы.
Подскажите как именно, пожалуйста. А то я попробовал, - и после действий получилась каша. А если не убирать - можно формулу написать?
Смотрел Ваш файл - вариантов из моего примера нет всех. Как подстроить под себя (например, там где слэш) - не знаю. Помогите, пожалуйста.

sv2013, к сожалению, нужна именно формула.
Изменено: Дед_Мазай - 13.08.2016 20:23:48
 
Ну, что же я сегодня добрый такой? Потому что ленивый :)
Хотите формулами? Получите. У кого нет желания заглядывать в файл, может заглянуть под спойлер.
слабонервным низ-з-зя! лучше добрые мультики смотреть


Цитата
вариантов из моего примера нет всех
Если после просмотра файла у Вас еще осталась капля энтузиазма для работы с формулами - сами, пожалуйста.
Цитата
можно формулу написать?
А хотите все одной формулой? Можно, даю авторское согласие )
 
vikttur,
Большое спасибо. Буду разбираться.
 
Мира вашему дому. Спасибо за проделанную работу. Подскажите почему в некоторых случаях появляется #н\д? И если получается как отделить из подобного рода текстов мужской пол и женский + прописывать их без склонения? Арсланханова А.Б.(Арсланханов Айнудин Батырович) = Арсланханов А.Б. //// Магидовой А.М. (Магидова Аминат Магомедовна) = Магидова А.М. ?  
Изменено: ITagir - 23.12.2019 14:23:40
 
В конце формулы:
...СТРОКА($1:$50))));100)
...СТРОКА($1:$100))));100)
 
В общем у меня тут какой-то глюк. Изменив $50 на $100 появляется ошибка #ЗНАЧ! и даже после того как возвращаю значение на $50? А на счет ошибки #н\д, она появляется из-за четвертой заглавной буквы в тексте "генерального директора Алиева М.М. действующего на основании решения общего собрания учредителей, Протокол от 03.08.2014г."
 
Цитата
ITagir написал: В общем у меня тут какой-то глюк.
Формула массива вводится тремя клавишами. Вот этого Вы не знали :)
 
Браво. Сильно. Ну магёте ;) . Всё что писал хорошее Омар Хаям - это про Вас. Спасибо.  
Страницы: 1
Читают тему
Наверх