Страницы: 1
RSS
Разбить данные по столбцам
 
Уважаемые форумчане, помогите пожалуйста со следующей задачей:
Нужно разбить имя фамилию отчество по разным столбцам, трудность в том что текст написан без пробелов, но с множеством переносов. Файл по ссылке https://yadi.sk/i/Mz-mNHZqpGKFlQ
 
У Вас трудность с тем, чтобы создать небольшой пример и прикрепить его к сообщению.
 
Не проходит файл более 100 Кб
Изменено: serega89 - 06.11.2019 12:49:20
 
serega89,
Цитата
vikttur написал:
создать небольшой пример и прикрепить его к сообщению.
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
А зачем гонять народ по ссылкам? Ведь можно же было прикрепить файл к сообщению.
См. вариант. Но в исходных данных есть ошибки, поэтому и результат будет с ошибками.
 
Цитата
serega89 написал:
трудность в том что текст написан без пробелов, но с множеством переносов
А какой символ отделяет слова (ФИО) друг от друга?
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
10
 
Цитата
Юрий М написал:
10
Эт понятно :) Я хотел это от создателя темы услышать. Хотел вот это же "...Но в исходных данных есть ошибки,..." по-другому сказать. Всё, ушел.....
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Нужно (в моём варианте) добавить проверку: если более двух разделителей, то удалять их справа, пока не останется два ))
 
Цитата
Юрий М написал: если более двух разделителей, то удалять их справа, пока не останется два ))
... или использовать в ф-ции Split аргумент "Limit". Только это всё равно не поможет, т.к.
Цитата
Юрий М написал:
в исходных данных есть ошибки
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Можно еще так. Но из-за
Цитата
Михаил Лебедев написал:
.Но в исходных данных есть ошибки
так же не идеал. Но хоть что-то, а далее глазками.
Код
Sub main()
    Dim arr(), ikey, srow&, sarr$(), j&
    arr = [a1].CurrentRegion.Value
    For Each ikey In arr
        i = i + 1
        ikey = Replace(ikey, Chr(10), " ")
        sarr = Split(ikey, " ", 3)
        For j = 0 To UBound(sarr)
            sarr(j) = Trim(Replace(sarr(j), " ", ""))
        Next j
        Cells(i, "b").Resize(, 3).Value = sarr
    Next ikey
End Sub
"Все гениальное просто, а все простое гениально!!!"
Страницы: 1
Наверх