Страницы: 1
RSS
Разделение имени и отчества от фамилии
 
Здравствуйте форумчане! Вопрос: в одной ячейке есть ФИО человека. Например Иванов Пётр Александрович. А в другую ячейку нужно добавить только его Имя и отчество. Людей ооочень много. Можно ли как-то это автоматизировать? Спасибо.
 
=ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(" ";A1))
 
{quote}{login=}{date=10.09.2009 02:35}{thema=}{post}=ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(" ";A1)){/post}{/quote}  
Не понятен ответ. Не известно же сколько в какой ячейке нужно брать символов. Каждая фамилия имеет разную длину.  
Пример в файле
 
{quote}{login=}{date=10.09.2009 02:48}{thema=Re: }{post}{quote}{login=}{date=10.09.2009 02:35}{thema=}{post}=ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(" ";A1)){/post}{/quote}  
Не понятен ответ. Не известно же сколько в какой ячейке нужно брать символов. Каждая фамилия имеет разную длину.  
Пример в файле{/post}{/quote}  
вы формулу попробовать не хотите для начала? Потом проанализировать почему она-таки работает, хоть заранее неизвестна длинна текста. Ну и потом задавайте конкретные вопросы по формуле :-)
KL
 
{quote}{login=KL}{date=10.09.2009 03:01}{thema=Re: Re: }{post}{quote}{login=}{date=10.09.2009 02:48}{thema=Re: }{post}{quote}{login=}{date=10.09.2009 02:35}{thema=}{post}=ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(" ";A1)){/post}{/quote}  
Не понятен ответ. Не известно же сколько в какой ячейке нужно брать символов. Каждая фамилия имеет разную длину.  
Пример в файле{/post}{/quote}  
вы формулу попробовать не хотите для начала? Потом проанализировать почему она-таки работает, хоть заранее неизвестна длинна текста. Ну и потом задавайте конкретные вопросы по формуле :-){/post}{/quote}  
Прошу прощение. Было попробовано, но перепутали номер строки, поэтому ничего не получалось:) Спасибо огромное!!!
 
Извиняться незачто ;-) А благодарность - анониму, который ответил формулой :-)
KL
 
{quote}{login=}{date=10.09.2009 02:35}{thema=}{post}=ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(" ";A1)){/post}{/quote}  
 
А как найти второй пробел? Если нужно отсечь только отчество...
 
{quote}{login=Владимир}{date=10.09.2009 07:20}{thema=Re: }{post}{quote}{login=}{date=10.09.2009 02:35}{thema=}{post}=ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(" ";A1)){/post}{/quote}  
... нужно отсечь только отчество...{/post}{/quote}  
1) Разгоните по "столбам", первых два удалить, останется "отчество" (но проверить на "оглы", "аги", "улы", "кызы" и пр., если они раздельно).  
ЗЫ Поиск общий, в приемах - выбор слова по порядку...
 
Повтор из-за глюка на форуме при цитировании:  
"1) Разгоните по "столбам", первых два удалить, останется "отчество" (но проверить на "оглы", "аги", "улы", "кызы" и пр., если они раздельно).  
ЗЫ Поиск общий, в приемах - выбор слова по порядку..."
 
Текст по столбцам, как посоветовал Вам Z.  
Или в формуле найти() добавить пропущенный аргумент [нач позиция]:
=НАЙТИ(" ";A1;НАЙТИ(" ";A1)+1) - позиция второго пробела в строке.
Bite my shiny metal ass!      
 
{quote}{login=Лузер™}{date=10.09.2009 08:44}{thema=}{post}Текст по столбцам, как посоветовал Вам Z.  
Или в формуле найти() добавить пропущенный аргумент [нач позиция]:
=НАЙТИ(" ";A1;НАЙТИ(" ";A1)+1) - позиция второго пробела в строке.{/post}{/quote}  
 
Не получилось, Лузер™, у меня получилось число 16, а должно было _Алексеевич_.  
...Текст по столбцам знаю как делать, мне интересно формулой.
 
{quote}{login=}{date=10.09.2009 02:21}{thema=Разделение имени и отчества от фамилии}{post}Здравствуйте форумчане! Вопрос: в одной ячейке есть ФИО человека. Например Иванов Пётр Александрович. А в другую ячейку нужно добавить только его Имя и отчество. Людей ооочень много. Можно ли как-то это автоматизировать? Спасибо.{/post}{/quote}  
 
Я бы разделила три столбца с помощью "текст по столбцам" по пробелу, а потом имя и отчество слепила с помощью конкатенации - имя & " " & отчество.  
&
 
{quote}{login=The_Prist}{date=10.09.2009 12:08}{thema=}{post}=ПСТР(A1;НАЙТИ(" ";A1)+1;НАЙТИ(" ";A1;НАЙТИ(" ";A1)+1)-НАЙТИ(" ";A1)){/post}{/quote}  
 
The_Prist, у вас только имя выделилось, что и в данной формуле получалось - =ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(" ";A1))
 
Прошу прощения в этой =ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(" ";A1)) только имя и отчество...
 
А самому "повыпендриваться" с предложенными формулами - понять, довернуть?  
Или в приемы заглянуть хоты бы - "http://www.planetaexcel.ru/tip.php?aid=33", "http://www.planetaexcel.ru/tip.php?aid=54" и т.д., и т.п.
 
{quote}{login=The_Prist}{date=10.09.2009 12:31}{thema=}{post}А может у Вас Написано в таком формате?  
Иванов Иван Иванович  
т.к. формула выдергивает именно второе слово.{/post}{/quote}  
 
Точно, в таком формате.
 
Владимир!  
Почитайте в справке все про текстовые функции, узнаете много интересного.  
Моя формула, это я безымянно пробегал перед сном, с предложением "Лузера" должна выглядеть так: =ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(" ";A1;НАЙТИ(" ";A1;НАЙТИ(" ";A1)+1))).  
С уважением, Александр.
 
{quote}{login=Z}{date=10.09.2009 12:40}{thema=}{post}А самому "повыпендриваться" с предложенными формулами - понять, довернуть?  
Или в приемы заглянуть хоты бы - "http://www.planetaexcel.ru/tip.php?aid=33", "http://www.planetaexcel.ru/tip.php?aid=54" и т.д., и т.п.{/post}{/quote}  
 
...пытался, не получается пока. Не макросом, а формулой хочу.
 
{quote}{login=Sh_Alex}{date=10.09.2009 12:44}{thema=}{post}Владимир!  
Почитайте в справке все про текстовые функции, узнаете много интересного.  
Моя формула, это я безымянно пробегал перед сном, с предложением "Лузера" должна выглядеть так: =ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(" ";A1;НАЙТИ(" ";A1;НАЙТИ(" ";A1)+1))).  
С уважением, Александр.{/post}{/quote}  
 
Спасибо, Александр.
 
{quote}{login=Владимир}{date=10.09.2009 11:57}{thema=Re: }{post}  
Не получилось, Лузер™, у меня получилось число 16, а должно было _Алексеевич_.  
{/post}{/quote}Не должно быть _Алексеевич_. Должно быть 16. Вы спрашивали: "А как найти второй пробел?"
Bite my shiny metal ass!      
 
{quote}{login=Лузер™}{date=10.09.2009 12:55}{thema=Re: Re: }{post}{quote}{login=Владимир}{date=10.09.2009 11:57}{thema=Re: }{post}  
Не получилось, Лузер™, у меня получилось число 16, а должно было _Алексеевич_.  
{/post}{/quote}Не должно быть _Алексеевич_. Должно быть 16. Вы спрашивали: "А как найти второй пробел?"{/post}{/quote}  
Я полагаю так, что эта формула находит первый пробел и всё что справа копирует на другую ячейку. Попытался сам найти второй пробел, но для меня ДЛСТР, НАЙТИ  - эти функции, тёмный лес...
 
Владимир, в справке по этим формулам написано все доступнее, чем мы здесь скажем.  
И главное: "формула находит первый пробел" - это может. "и всё что справа копирует на другую ячейку" - а вот это нет. Формула не может копировать.
Bite my shiny metal ass!      
 
мини совет всем, кто решает подобные задачи (с ФИО)  
в общем, из опыта..  
иногда бывает, что написано так:  
" Власов Петр  Петрович"  
или    
"Сомов   Влад Янович "  
так что советую ввести во все такого рода формулы СЖПРОБЕЛЫ()  
)
 
{quote}{login=Лузер™}{date=10.09.2009 01:33}{thema=}{post}"и всё что справа копирует на другую ячейку" - а вот это нет. Формула не может копировать.{/post}{/quote}  
Ну, это я образно...
 
Вот пример с первоначальной формулой для ИО, нехитрой и экономной формулой для Ф и с учетом комментария Excel-ok
KL
 
{quote}{login=The_Prist}{date=10.09.2009 12:28}{thema=}{post}To Люся:  
{quote}{login=Владимир}{date=10.09.2009 11:57}{thema=Re: }{post}Текст по столбцам знаю как делать, мне интересно формулой.{/post}{/quote}{/post}{/quote}  
 
Можно и формулами:  
=ПСТР(СЖПРОБЕЛЫ(B2);НАЙТИ(" ";B2;1)+1;ДЛСТР(B2))
 
Хмм... ответ как-то странно записался.    
 
Вот что я отправляла:  
 
Можно и формулами разделить:    
 
=ПСТР(СЖПРОБЕЛЫ(B2);НАЙТИ(" ";B2;1)+1;ДЛСТР(B2))
 
Вернее, вот так  
 
=ПСТР(СЖПРОБЕЛЫ(B2);НАЙТИ(" ";СЖПРОБЕЛЫ(B2);1)+1;ДЛСТР(СЖПРОБЕЛЫ(B2)))
 
А вот если вдруг попалось имя : Карлос де Меренга Лос Анхелес эль Лохо Педрильо ди Москит Алибабаевич  
Тогда можно воспользоваться такой формулой для извлечения отчества:  
{=ПСТР(A1;МАКС(ЕСЛИ(ЕОШИБКА(((КОДСИМВ(ПСТР(A1;СТРОКА($1:$1000);1)))=32)*СТРОКА($1:$1000));"";((КОДСИМВ(ПСТР(A1;СТРОКА($1:$1000);1)))=32)*СТРОКА($1:$1000)))+1;1000)}
 
или так:  
 
=ПСТР(A1;НАЙТИ("|";ПОДСТАВИТЬ(A1;" ";"|";ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;" ";""))))+1;32000)
KL
Страницы: 1
Читают тему
Наверх