Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Раскидать ФИО с одного столбца на несколько - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Раскидать ФИО с одного столбца на несколько
s7os7ed Дата: Среда, 08.03.2017, 07:40 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 24
Репутация: 1 ±
Замечаний: 0% ±

Excel 2013
Здравствуйте :)

При выгрузке сотрудников образуется список как в строке А1. Список бывает и через запятую и без нее, а так же что после инициалов вместо точки стоит запятая (мололи может это как повлияет, если поможете), но смысл в следующем.

Возможно ли раскидать этот список сотрудников по строкам, то есть чтобы ФИО каждого сотрудника какие выгружаются проставлялись отдельно. В столбце J1:J8 пример какой должен получится результат.
К сообщению приложен файл: 1234567.xlsx (10.3 Kb)
 
Ответить
СообщениеЗдравствуйте :)

При выгрузке сотрудников образуется список как в строке А1. Список бывает и через запятую и без нее, а так же что после инициалов вместо точки стоит запятая (мололи может это как повлияет, если поможете), но смысл в следующем.

Возможно ли раскидать этот список сотрудников по строкам, то есть чтобы ФИО каждого сотрудника какие выгружаются проставлялись отдельно. В столбце J1:J8 пример какой должен получится результат.

Автор - s7os7ed
Дата добавления - 08.03.2017 в 07:40
bmv98rus Дата: Среда, 08.03.2017, 09:43 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4147
Репутация: 772 ±
Замечаний: 0% ±

Excel 2013/2016
пока получился монстр массивный и точки у инициалов пока пропали.
Код
=REPLACE(LEFT(TRIM(SUBSTITUTE(SUBSTITUTE($A$1;".";" ");",";" "));IFERROR(SMALL(IF(MID(TRIM(SUBSTITUTE(SUBSTITUTE($A$1;".";" ");",";" "));ROW($A$1:INDEX(A:A;LEN(TRIM(SUBSTITUTE(SUBSTITUTE($A$1;".";" ");",";" ")))));1)=" ";ROW($A$1:INDEX(A:A;LEN(TRIM(SUBSTITUTE(SUBSTITUTE($A$1;".";" ");",";" ")))));9^9);ROWS(A$1:A1)*3);0)-1);1;IFERROR(SMALL(IF(MID(TRIM(SUBSTITUTE(SUBSTITUTE($A$1;".";" ");",";" "));ROW($A$1:INDEX(A:A;LEN(TRIM(SUBSTITUTE(SUBSTITUTE($A$1;".";" ");",";" ")))));1)=" ";ROW($A$1:INDEX(A:A;LEN(TRIM(SUBSTITUTE(SUBSTITUTE($A$1;".";" ");",";" ")))));9^9);ROWS(A$1:A1)*3-3);0);"")
К сообщению приложен файл: Copy_of_1234567.xlsx (11.1 Kb)


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Среда, 08.03.2017, 09:55
 
Ответить
Сообщениепока получился монстр массивный и точки у инициалов пока пропали.
Код
=REPLACE(LEFT(TRIM(SUBSTITUTE(SUBSTITUTE($A$1;".";" ");",";" "));IFERROR(SMALL(IF(MID(TRIM(SUBSTITUTE(SUBSTITUTE($A$1;".";" ");",";" "));ROW($A$1:INDEX(A:A;LEN(TRIM(SUBSTITUTE(SUBSTITUTE($A$1;".";" ");",";" ")))));1)=" ";ROW($A$1:INDEX(A:A;LEN(TRIM(SUBSTITUTE(SUBSTITUTE($A$1;".";" ");",";" ")))));9^9);ROWS(A$1:A1)*3);0)-1);1;IFERROR(SMALL(IF(MID(TRIM(SUBSTITUTE(SUBSTITUTE($A$1;".";" ");",";" "));ROW($A$1:INDEX(A:A;LEN(TRIM(SUBSTITUTE(SUBSTITUTE($A$1;".";" ");",";" ")))));1)=" ";ROW($A$1:INDEX(A:A;LEN(TRIM(SUBSTITUTE(SUBSTITUTE($A$1;".";" ");",";" ")))));9^9);ROWS(A$1:A1)*3-3);0);"")

Автор - bmv98rus
Дата добавления - 08.03.2017 в 09:43
AlexM Дата: Среда, 08.03.2017, 10:54 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1130 ±
Замечаний: 0% ±

Excel 2003
Функция пользователя[vba]
Код
Function FIO(iStr As String, N As Long) As String
    Dim a
    a = Split(WorksheetFunction.Trim(Replace(Replace(iStr, ".", " "), ",", " ")))
    On Error Resume Next
    FIO = a(3 * N - 3) & " " & a(3 * N - 2) & "." & a(3 * N - 1) & "."
End Function
[/vba]
К сообщению приложен файл: 1234567_02.xls (44.0 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеФункция пользователя[vba]
Код
Function FIO(iStr As String, N As Long) As String
    Dim a
    a = Split(WorksheetFunction.Trim(Replace(Replace(iStr, ".", " "), ",", " ")))
    On Error Resume Next
    FIO = a(3 * N - 3) & " " & a(3 * N - 2) & "." & a(3 * N - 1) & "."
End Function
[/vba]

Автор - AlexM
Дата добавления - 08.03.2017 в 10:54
bmv98rus Дата: Среда, 08.03.2017, 11:34 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4147
Репутация: 772 ±
Замечаний: 0% ±

Excel 2013/2016
AlexM,
Если честно, то ждал от Вас формульного варианта. Я серьезно. Каждый раз меня приятно удивляют предложенные решения.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеAlexM,
Если честно, то ждал от Вас формульного варианта. Я серьезно. Каждый раз меня приятно удивляют предложенные решения.

Автор - bmv98rus
Дата добавления - 08.03.2017 в 11:34
AlexM Дата: Среда, 08.03.2017, 11:47 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1130 ±
Замечаний: 0% ±

Excel 2003
У меня был вариант в две строки, в первой позиция начала каждой фамилии, а во второй сами фамилии, но мне не понравилось решение и поэтому сделал функцию.
К сообщению приложен файл: 1234567_01.xlsx (12.6 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.


Сообщение отредактировал AlexM - Среда, 08.03.2017, 11:48
 
Ответить
СообщениеУ меня был вариант в две строки, в первой позиция начала каждой фамилии, а во второй сами фамилии, но мне не понравилось решение и поэтому сделал функцию.

Автор - AlexM
Дата добавления - 08.03.2017 в 11:47
bmv98rus Дата: Среда, 08.03.2017, 12:11 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4147
Репутация: 772 ±
Замечаний: 0% ±

Excel 2013/2016
Можно подумать мне вот та длинная нравится. :-) . вариант в две строки, с удовольствием посмотрю


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Среда, 08.03.2017, 12:12
 
Ответить
СообщениеМожно подумать мне вот та длинная нравится. :-) . вариант в две строки, с удовольствием посмотрю

Автор - bmv98rus
Дата добавления - 08.03.2017 в 12:11
AlexM Дата: Среда, 08.03.2017, 12:27 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1130 ±
Замечаний: 0% ±

Excel 2003
Вот придумал в одну строку
Код
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ($A1;".";" ");",";" "));" ";ПОВТОР(" ";999));3*999*(СТОЛБЕЦ(A1)-1)+1;3*999))
К сообщению приложен файл: 1234567_03.xlsx (12.1 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.


Сообщение отредактировал AlexM - Среда, 08.03.2017, 12:28
 
Ответить
СообщениеВот придумал в одну строку
Код
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ($A1;".";" ");",";" "));" ";ПОВТОР(" ";999));3*999*(СТОЛБЕЦ(A1)-1)+1;3*999))

Автор - AlexM
Дата добавления - 08.03.2017 в 12:27
bmv98rus Дата: Среда, 08.03.2017, 12:48 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4147
Репутация: 772 ±
Замечаний: 0% ±

Excel 2013/2016
AlexM,
вот об этом я и гутарил, я каждый раз забываю об добавь ненужное (REPT(" ",999)), ) , потом обрезать проще.
Код
=TRIM(MID(SUBSTITUTE(TRIM(SUBSTITUTE(SUBSTITUTE($A$1;".";" ");",";" "));" ";REPT(" ";999));3*999*(ROW(A8)-1)+1;2*999))&"."&TRIM(MID(SUBSTITUTE(TRIM(SUBSTITUTE(SUBSTITUTE($A$1;".";" ");",";" "));" ";REPT(" ";999));3*999*(ROW(A8)-1)+1+2*999;1*999))&"."

Вернул точки (единственное, развернул в столбец).


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Среда, 08.03.2017, 12:50
 
Ответить
СообщениеAlexM,
вот об этом я и гутарил, я каждый раз забываю об добавь ненужное (REPT(" ",999)), ) , потом обрезать проще.
Код
=TRIM(MID(SUBSTITUTE(TRIM(SUBSTITUTE(SUBSTITUTE($A$1;".";" ");",";" "));" ";REPT(" ";999));3*999*(ROW(A8)-1)+1;2*999))&"."&TRIM(MID(SUBSTITUTE(TRIM(SUBSTITUTE(SUBSTITUTE($A$1;".";" ");",";" "));" ";REPT(" ";999));3*999*(ROW(A8)-1)+1+2*999;1*999))&"."

Вернул точки (единственное, развернул в столбец).

Автор - bmv98rus
Дата добавления - 08.03.2017 в 12:48
AlexM Дата: Среда, 08.03.2017, 13:37 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1130 ±
Замечаний: 0% ±

Excel 2003
С точками.
Код
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ($A1;".";" ");",";" "));" ";ПОВТОР(" ";999));999*3*(СТОЛБЕЦ(A1)-1)+1;2*999))&". "&СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ($A1;".";" ");",";" "));" ";ПОВТОР(" ";999));999*(3*СТОЛБЕЦ(A1)-1);999))&"."
К сообщению приложен файл: 1234567_04.xlsx (12.2 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.


Сообщение отредактировал AlexM - Среда, 08.03.2017, 13:38
 
Ответить
СообщениеС точками.
Код
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ($A1;".";" ");",";" "));" ";ПОВТОР(" ";999));999*3*(СТОЛБЕЦ(A1)-1)+1;2*999))&". "&СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ($A1;".";" ");",";" "));" ";ПОВТОР(" ";999));999*(3*СТОЛБЕЦ(A1)-1);999))&"."

Автор - AlexM
Дата добавления - 08.03.2017 в 13:37
s7os7ed Дата: Среда, 08.03.2017, 21:47 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 24
Репутация: 1 ±
Замечаний: 0% ±

Excel 2013
Спасибо, все четко)))) :)
 
Ответить
СообщениеСпасибо, все четко)))) :)

Автор - s7os7ed
Дата добавления - 08.03.2017 в 21:47
Светлый Дата: Среда, 08.03.2017, 22:20 | Сообщение № 11
Группа: Друзья
Ранг: Старожил
Сообщений: 1868
Репутация: 536 ±
Замечаний: 0% ±

Excel 2013, 2016
Внесу свои пять копеек:
Код
=ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A$1;".";" ");",";" "));" ";ПОВТОР(" ";999));СТРОКА()*2997-2996;2997));" ";".";2)&"."


Программировать проще, чем писать стихи.
 
Ответить
СообщениеВнесу свои пять копеек:
Код
=ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A$1;".";" ");",";" "));" ";ПОВТОР(" ";999));СТРОКА()*2997-2996;2997));" ";".";2)&"."

Автор - Светлый
Дата добавления - 08.03.2017 в 22:20
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!