Доброго времени суток))) в ячейке текст содержится в следующем формате:
Иванов Петр Сергеевич (50%); Петров Сидр Анафьевич (30%); Сидоров Иван Степанович (10%);
хочу привести в нормальный вид, чтобы ФИО и проценты были каждый в разной ячейке, но не могу по отдельности это все выдернуть, пока получилось только до определенного символа, а полностью весь текст не удается перебрать, помогите пожалуйста) [moder]Нужен файл с примером в соответствии с Правилами форума[/moder]
Доброго времени суток))) в ячейке текст содержится в следующем формате:
Иванов Петр Сергеевич (50%); Петров Сидр Анафьевич (30%); Сидоров Иван Степанович (10%);
хочу привести в нормальный вид, чтобы ФИО и проценты были каждый в разной ячейке, но не могу по отдельности это все выдернуть, пока получилось только до определенного символа, а полностью весь текст не удается перебрать, помогите пожалуйста) [moder]Нужен файл с примером в соответствии с Правилами форума[/moder]nono4ka
Так нужно? Обращаю Внимание, что везде текстовый формат, чтобы сохранить (50%) в отдельную ячейку. Был чутка переработан чужой код. Честно говоря не помню чей...) [moder]Файл удален. Вопрос задан с нарушением Правил форума[/moder] [moder]Roman777, можете прикрепить свой ответ[/moder]
Так нужно? Обращаю Внимание, что везде текстовый формат, чтобы сохранить (50%) в отдельную ячейку. Был чутка переработан чужой код. Честно говоря не помню чей...) [moder]Файл удален. Вопрос задан с нарушением Правил форума[/moder] [moder]Roman777, можете прикрепить свой ответ[/moder]Roman777
Много чего не знаю!!!!
Сообщение отредактировал Pelena - Четверг, 26.03.2015, 08:43
Данные - Текст по столбцам - разделитель пробел [moder]Ответ скрыт. Вопрос задан с нарушением Правил форума[/moder] [moder]Открыла ответ[/moder]
Данные - Текст по столбцам - разделитель пробел [moder]Ответ скрыт. Вопрос задан с нарушением Правил форума[/moder] [moder]Открыла ответ[/moder]Kuzmich
Сообщение отредактировал Pelena - Четверг, 26.03.2015, 08:41
я поднакидал алгоритм: 1. определяем количество строк в ячейке 2. по порядку в каждой строке вытаскиваем значения между: 2.1 началом и символами " (" 2.2 символами "(" и "%)"
но тут нужна оговорка: 1.возможно после ФИО стоит сразу же "(" без пробела 2.после значения в скобках может не быть "%"
я так думаю это через условие можно прописать, проблема в следующем: я не знаю как посчитать количество строк в ячейке, потом по очереди обратится к каждой ячейке и вытащить значения между символами т.е. пункт 2.2
я поднакидал алгоритм: 1. определяем количество строк в ячейке 2. по порядку в каждой строке вытаскиваем значения между: 2.1 началом и символами " (" 2.2 символами "(" и "%)"
но тут нужна оговорка: 1.возможно после ФИО стоит сразу же "(" без пробела 2.после значения в скобках может не быть "%"
я так думаю это через условие можно прописать, проблема в следующем: я не знаю как посчитать количество строк в ячейке, потом по очереди обратится к каждой ячейке и вытащить значения между символами т.е. пункт 2.2nono4ka
nono4ka, Судя по файлу, у вас в ячейке используется символ "красной строки", если и все остальные строки аналогичны, то в коде этот символ chr(13). То есть натыкаясь на этот символ, вы можете скидывать на следующую строку. Единственное, я посмотрел, у вас вот объединённые ячейки, и в 2-х объединённых ячейках прописано 3 разных имени. То есть при таком подходе, имена не будут соответствовать строкам таблицы. Я чуть-чуть подправил код ранее выкладываемый. Но в нём всё ещё есть недочёты, судя по вашим добавленным условиям " 1.возможно после ФИО стоит сразу же "(" без пробела 2.после значения в скобках может не быть "%"".
nono4ka, Судя по файлу, у вас в ячейке используется символ "красной строки", если и все остальные строки аналогичны, то в коде этот символ chr(13). То есть натыкаясь на этот символ, вы можете скидывать на следующую строку. Единственное, я посмотрел, у вас вот объединённые ячейки, и в 2-х объединённых ячейках прописано 3 разных имени. То есть при таком подходе, имена не будут соответствовать строкам таблицы. Я чуть-чуть подправил код ранее выкладываемый. Но в нём всё ещё есть недочёты, судя по вашим добавленным условиям " 1.возможно после ФИО стоит сразу же "(" без пробела 2.после значения в скобках может не быть "%"".Roman777
Sub Raznesti() Dim i As Long Dim n As Integer Dim j As Integer Dim MyArr Dim MyArr1 For i = 2 To Cells(Rows.Count, 7).End(xlUp).Row If Cells(i, 7).MergeCells Then n = Cells(i, 7).MergeArea.Count MyArr = Split(Cells(i, 7), ";") For j = 0 To UBound(MyArr) MyArr1 = Split(MyArr(j), " ") Cells(i + j, 8) = MyArr1(0) Cells(i + j, 9) = MyArr1(1) Cells(i + j, 10) = MyArr1(2) Cells(i + j, 11) = Mid(Split(MyArr1(3), ")")(0), 2) Next i = i + n - 1 Else MyArr1 = Split(Cells(i, 7), " ") Cells(i, 8) = MyArr1(0) Cells(i, 9) = MyArr1(1) Cells(i, 10) = MyArr1(2) Cells(i, 11) = Mid(Split(MyArr1(3), ")")(0), 2) End If Next End Sub
[/vba]
[vba]
Код
Sub Raznesti() Dim i As Long Dim n As Integer Dim j As Integer Dim MyArr Dim MyArr1 For i = 2 To Cells(Rows.Count, 7).End(xlUp).Row If Cells(i, 7).MergeCells Then n = Cells(i, 7).MergeArea.Count MyArr = Split(Cells(i, 7), ";") For j = 0 To UBound(MyArr) MyArr1 = Split(MyArr(j), " ") Cells(i + j, 8) = MyArr1(0) Cells(i + j, 9) = MyArr1(1) Cells(i + j, 10) = MyArr1(2) Cells(i + j, 11) = Mid(Split(MyArr1(3), ")")(0), 2) Next i = i + n - 1 Else MyArr1 = Split(Cells(i, 7), " ") Cells(i, 8) = MyArr1(0) Cells(i, 9) = MyArr1(1) Cells(i, 10) = MyArr1(2) Cells(i, 11) = Mid(Split(MyArr1(3), ")")(0), 2) End If Next End Sub