Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.01.2010, 17:27   #1
PetrovS
Новичок
Джуниор
 
Регистрация: 02.01.2010
Сообщений: 1
По умолчанию разделение текста

с НГ всех!
у меня такая проблемка:
Пусть в ячейка A1 находится текст "Петров Сергей Владимирович".
Сотрудники , что б были они не ладны, забили это все в одну ячейку, а надо было в 3 : "Фамилия" "имя" "отчество".
т.е. посути нужно текст из одной ячейки разделить на 3.
PetrovS вне форума Ответить с цитированием
Старый 02.01.2010, 18:26   #2
Volodshan
Форумчанин
 
Регистрация: 20.05.2008
Сообщений: 241
По умолчанию

Вариант: Данные - Текст по столбцам - Разделитель "пробел", текстовый, поместить - в следующее поле...
Volodshan вне форума Ответить с цитированием
Старый 02.01.2010, 18:51   #3
Serge 007
Участник клуба
 
Аватар для Serge 007
 
Регистрация: 15.12.2009
Сообщений: 1,448
По умолчанию

Или попроще :-) , формулами :

ФИО в ячейке А1

Фамилия =ЛЕВСИМВ(A1;ПОИСК(" ";A1;1)-1)
Имя =ЛЕВСИМВ(ПСТР(A1;ПОИСК(" ";A1;1);ДЛСТР(A1)+1-ПОИСК(" ";A1;1));НАЙТИ(" ";ПСТР(A1;ПОИСК(" ";A1;1);ДЛСТР(A1)+1-ПОИСК(" ";A1;1));2)-1)Отчество =ПСТР(ПСТР(A1;ПОИСК(" ";A1;1);ДЛСТР(A1)+1-ПОИСК(" ";A1;1));НАЙТИ(" ";ПСТР(A1;ПОИСК(" ";A1;1);ДЛСТР(A1)+1-ПОИСК(" ";A1;1));2);ДЛСТР(ПСТР(A1;ПОИСК (" ";A1;1);ДЛСТР(A1)+1-ПОИСК(" ";A1;1))))
Бесплатная помощь: www.excelworld.ru
Платная помощь: serge_007.planetaexcel@mail.ru
https://yoomoney.ru: 41001419691823
Serge 007 вне форума Ответить с цитированием
Старый 02.01.2010, 20:18   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Ну а ещё можно воспользоваться простейшим макросом
(который переберёт все заполненные ячейки в первом столбце, и разобъёт ФИО на отдельные слова, поместив их в столбцы B,C и D):

Код:
Sub test()
    Dim cell As Range: Application.ScreenUpdating = False
    For Each cell In Range([A1], Range("A" & Rows.Count).End(xlUp)).Cells
        cell.Next.Resize(, 3) = Split(cell, " ")
    Next cell
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 03.01.2010, 18:48   #5
DV68
Форумчанин
 
Регистрация: 05.08.2009
Сообщений: 465
По умолчанию

Цитата:
Сообщение от Serge 007 Посмотреть сообщение
Или попроще :-) , формулами :

ФИО в ячейке А1

Фамилия =ЛЕВСИМВ(A1;ПОИСК(" ";A1;1)-1)
Имя =ЛЕВСИМВ(ПСТР(A1;ПОИСК(" ";A1;1);ДЛСТР(A1)+1-ПОИСК(" ";A1;1));НАЙТИ(" ";ПСТР(A1;ПОИСК(" ";A1;1);ДЛСТР(A1)+1-ПОИСК(" ";A1;1));2)-1)Отчество =ПСТР(ПСТР(A1;ПОИСК(" ";A1;1);ДЛСТР(A1)+1-ПОИСК(" ";A1;1));НАЙТИ(" ";ПСТР(A1;ПОИСК(" ";A1;1);ДЛСТР(A1)+1-ПОИСК(" ";A1;1));2);ДЛСТР(ПСТР(A1;ПОИСК (" ";A1;1);ДЛСТР(A1)+1-ПОИСК(" ";A1;1))))
Формулами можно и покороче
А1 - ФИО
В1 - Фамилия (формула короткая, норм)
С1 - Имя =ПСТР(A1;ПОИСК(" ";A1)+1;ПОИСК(" ";ПСТР(A1;ПОИСК(" ";A1)+1;33);1)-1)
D1 - Отчество =ЗАМЕНИТЬ(A1;1;ДЛСТР(B1)+ДЛСТР(C1)+ 2;"")
"Все следует делать настолько простым, насколько это возможно, но не проще." Альберт Эйнштейн

Последний раз редактировалось DV68; 03.01.2010 в 19:05.
DV68 вне форума Ответить с цитированием
Старый 03.01.2010, 19:21   #6
Serge 007
Участник клуба
 
Аватар для Serge 007
 
Регистрация: 15.12.2009
Сообщений: 1,448
По умолчанию

Цитата:
Сообщение от DV68 Посмотреть сообщение
Формулами можно и покороче
А1 - ФИО
В1 - Фамилия (формула короткая, норм)
С1 - Имя =ПСТР(A1;ПОИСК(" ";A1)+1;ПОИСК(" ";ПСТР(A1;ПОИСК(" ";A1)+1;33);1)-1)
D1 - Отчество =ЗАМЕНИТЬ(A1;1;ДЛСТР(B1)+ДЛСТР(C1)+ 2;"")
Не вижу разницы
Кроме того что мои формулы не зависят друг от друга.
Бесплатная помощь: www.excelworld.ru
Платная помощь: serge_007.planetaexcel@mail.ru
https://yoomoney.ru: 41001419691823
Serge 007 вне форума Ответить с цитированием
Старый 03.01.2010, 23:24   #7
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Вот тоже независящие друг от друга формулы, но покороче:
В А1 = Иванов Иван Иванович
Фамилия(трудно придумать формулу проще, так что без изменений)
Код:
=ПСТР(A1;1;ПОИСК(" ";A1)-1)
Имя
Код:
=ПСТР(A1;ПОИСК(" ";A1)+1;ПОИСК(" ";A1;ПОИСК(" ";A1)+1)-ПОИСК(" ";A1))
Отчество
Код:
=ПСТР(A1;ПОИСК(" ";A1;ПОИСК(" ";A1)+1);32000)
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разделение строки текста alex2read Microsoft Office Excel 10 18.05.2010 10:17
разделение программы world12_tk Помощь студентам 2 30.03.2009 20:05
Разделение файла Antik163RUS Помощь студентам 9 01.07.2008 12:23
Разделение строки xTANATOSx Общие вопросы Delphi 3 31.10.2007 21:27