Раскидать ФИО с одного столбца на несколько
s7os7ed
Дата: Среда, 08.03.2017, 07:40 |
Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 24
Репутация:
1
±
Замечаний:
0% ±
Excel 2013
Здравствуйте При выгрузке сотрудников образуется список как в строке А1. Список бывает и через запятую и без нее, а так же что после инициалов вместо точки стоит запятая (мололи может это как повлияет, если поможете), но смысл в следующем. Возможно ли раскидать этот список сотрудников по строкам, то есть чтобы ФИО каждого сотрудника какие выгружаются проставлялись отдельно. В столбце J1:J8 пример какой должен получится результат.
Здравствуйте При выгрузке сотрудников образуется список как в строке А1. Список бывает и через запятую и без нее, а так же что после инициалов вместо точки стоит запятая (мололи может это как повлияет, если поможете), но смысл в следующем. Возможно ли раскидать этот список сотрудников по строкам, то есть чтобы ФИО каждого сотрудника какие выгружаются проставлялись отдельно. В столбце J1:J8 пример какой должен получится результат. s7os7ed
Ответить
Сообщение Здравствуйте При выгрузке сотрудников образуется список как в строке А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);"")
пока получился монстр массивный и точки у инициалов пока пропали.Код
=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
Замечательный Временно просто медведь , процентов на 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]
Функция пользователя[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
Номер мобильного модема (без голосовой связи) 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 , Если честно, то ждал от Вас формульного варианта. Я серьезно. Каждый раз меня приятно удивляют предложенные решения.
AlexM , Если честно, то ждал от Вас формульного варианта. Я серьезно. Каждый раз меня приятно удивляют предложенные решения.bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Ответить
Сообщение AlexM , Если честно, то ждал от Вас формульного варианта. Я серьезно. Каждый раз меня приятно удивляют предложенные решения.Автор - bmv98rus Дата добавления - 08.03.2017 в 11:34
AlexM
Дата: Среда, 08.03.2017, 11:47 |
Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация:
1130
±
Замечаний:
0% ±
Excel 2003
У меня был вариант в две строки, в первой позиция начала каждой фамилии, а во второй сами фамилии, но мне не понравилось решение и поэтому сделал функцию.
У меня был вариант в две строки, в первой позиция начала каждой фамилии, а во второй сами фамилии, но мне не понравилось решение и поэтому сделал функцию. AlexM
Номер мобильного модема (без голосовой связи) 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
Можно подумать мне вот та длинная нравится. :-) . вариант в две строки, с удовольствием посмотрю
Можно подумать мне вот та длинная нравится. :-) . вариант в две строки, с удовольствием посмотрю bmv98rus
Замечательный Временно просто медведь , процентов на 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))
Вот придумал в одну строкуКод
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ($A1;".";" ");",";" "));" ";ПОВТОР(" ";999));3*999*(СТОЛБЕЦ(A1)-1)+1;3*999))
AlexM
Номер мобильного модема (без голосовой связи) 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))&"."
Вернул точки (единственное, развернул в столбец).
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
Замечательный Временно просто медведь , процентов на 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))&"."
С точками.Код
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ($A1;".";" ");",";" "));" ";ПОВТОР(" ";999));999*3*(СТОЛБЕЦ(A1)-1)+1;2*999))&". "&СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ($A1;".";" ");",";" "));" ";ПОВТОР(" ";999));999*(3*СТОЛБЕЦ(A1)-1);999))&"."
AlexM
Номер мобильного модема (без голосовой связи) 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)&"."
Светлый
Программировать проще, чем писать стихи.
Ответить
Сообщение Внесу свои пять копеек:Код
=ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A$1;".";" ");",";" "));" ";ПОВТОР(" ";999));СТРОКА()*2997-2996;2997));" ";".";2)&"."
Автор - Светлый Дата добавления - 08.03.2017 в 22:20