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

Вход

Регистрация

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

 

= Мир MS Excel/Разнести текст из одной ячейки по разным - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Разнести текст из одной ячейки по разным
nono4ka Дата: Среда, 25.03.2015, 15:49 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Доброго времени суток)))
в ячейке текст содержится в следующем формате:

Иванов Петр Сергеевич (50%);
Петров Сидр Анафьевич (30%);
Сидоров Иван Степанович (10%);

хочу привести в нормальный вид, чтобы ФИО и проценты были каждый в разной ячейке, но не могу по отдельности это все выдернуть, пока получилось только до определенного символа, а полностью весь текст не удается перебрать, помогите пожалуйста)
[moder]Нужен файл с примером в соответствии с Правилами форума[/moder]
 
Ответить
СообщениеДоброго времени суток)))
в ячейке текст содержится в следующем формате:

Иванов Петр Сергеевич (50%);
Петров Сидр Анафьевич (30%);
Сидоров Иван Степанович (10%);

хочу привести в нормальный вид, чтобы ФИО и проценты были каждый в разной ячейке, но не могу по отдельности это все выдернуть, пока получилось только до определенного символа, а полностью весь текст не удается перебрать, помогите пожалуйста)
[moder]Нужен файл с примером в соответствии с Правилами форума[/moder]

Автор - nono4ka
Дата добавления - 25.03.2015 в 15:49
Roman777 Дата: Среда, 25.03.2015, 16:30 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
Так нужно?
Обращаю Внимание, что везде текстовый формат, чтобы сохранить (50%) в отдельную ячейку.
Был чутка переработан чужой код. Честно говоря не помню чей...)
[moder]Файл удален. Вопрос задан с нарушением Правил форума[/moder]
[moder]Roman777, можете прикрепить свой ответ[/moder]


Много чего не знаю!!!!

Сообщение отредактировал Pelena - Четверг, 26.03.2015, 08:43
 
Ответить
СообщениеТак нужно?
Обращаю Внимание, что везде текстовый формат, чтобы сохранить (50%) в отдельную ячейку.
Был чутка переработан чужой код. Честно говоря не помню чей...)
[moder]Файл удален. Вопрос задан с нарушением Правил форума[/moder]
[moder]Roman777, можете прикрепить свой ответ[/moder]

Автор - Roman777
Дата добавления - 25.03.2015 в 16:30
Kuzmich Дата: Среда, 25.03.2015, 16:50 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 715
Репутация: 157 ±
Замечаний: 0% ±

Excel 2003
Данные - Текст по столбцам - разделитель пробел
[moder]Ответ скрыт. Вопрос задан с нарушением Правил форума[/moder]
[moder]Открыла ответ[/moder]


Сообщение отредактировал Pelena - Четверг, 26.03.2015, 08:41
 
Ответить
СообщениеДанные - Текст по столбцам - разделитель пробел
[moder]Ответ скрыт. Вопрос задан с нарушением Правил форума[/moder]
[moder]Открыла ответ[/moder]

Автор - Kuzmich
Дата добавления - 25.03.2015 в 16:50
nono4ka Дата: Четверг, 26.03.2015, 06:45 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Необходимый столбец для разбития "G"
К сообщению приложен файл: 4948004.xlsx (10.1 Kb)
 
Ответить
СообщениеНеобходимый столбец для разбития "G"

Автор - nono4ka
Дата добавления - 26.03.2015 в 06:45
nono4ka Дата: Четверг, 26.03.2015, 08:33 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
я поднакидал алгоритм:
1. определяем количество строк в ячейке
2. по порядку в каждой строке вытаскиваем значения между:
2.1 началом и символами " ("
2.2 символами "(" и "%)"

но тут нужна оговорка:
1.возможно после ФИО стоит сразу же "(" без пробела
2.после значения в скобках может не быть "%"

я так думаю это через условие можно прописать, проблема в следующем: я не знаю как посчитать количество строк в ячейке, потом по очереди обратится к каждой ячейке и вытащить значения между символами т.е. пункт 2.2
 
Ответить
Сообщениея поднакидал алгоритм:
1. определяем количество строк в ячейке
2. по порядку в каждой строке вытаскиваем значения между:
2.1 началом и символами " ("
2.2 символами "(" и "%)"

но тут нужна оговорка:
1.возможно после ФИО стоит сразу же "(" без пробела
2.после значения в скобках может не быть "%"

я так думаю это через условие можно прописать, проблема в следующем: я не знаю как посчитать количество строк в ячейке, потом по очереди обратится к каждой ячейке и вытащить значения между символами т.е. пункт 2.2

Автор - nono4ka
Дата добавления - 26.03.2015 в 08:33
Pelena Дата: Четверг, 26.03.2015, 08:41 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 19572
Репутация: 4646 ±
Замечаний: ±

Excel 365 & Mac Excel
nono4ka, почему нельзя исполнителей записать в разных ячейках. Было бы гораздо проще вытащить %.
И второй вопрос: нужен именно макрос?


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщениеnono4ka, почему нельзя исполнителей записать в разных ячейках. Было бы гораздо проще вытащить %.
И второй вопрос: нужен именно макрос?

Автор - Pelena
Дата добавления - 26.03.2015 в 08:41
Roman777 Дата: Четверг, 26.03.2015, 09:28 | Сообщение № 7
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
nono4ka, Судя по файлу, у вас в ячейке используется символ "красной строки", если и все остальные строки аналогичны, то в коде этот символ chr(13). То есть натыкаясь на этот символ, вы можете скидывать на следующую строку. Единственное, я посмотрел, у вас вот объединённые ячейки, и в 2-х объединённых ячейках прописано 3 разных имени. То есть при таком подходе, имена не будут соответствовать строкам таблицы. Я чуть-чуть подправил код ранее выкладываемый. Но в нём всё ещё есть недочёты, судя по вашим добавленным условиям " 1.возможно после ФИО стоит сразу же "(" без пробела 2.после значения в скобках может не быть "%"".
К сообщению приложен файл: 1119371.xlsm (20.4 Kb)


Много чего не знаю!!!!
 
Ответить
Сообщениеnono4ka, Судя по файлу, у вас в ячейке используется символ "красной строки", если и все остальные строки аналогичны, то в коде этот символ chr(13). То есть натыкаясь на этот символ, вы можете скидывать на следующую строку. Единственное, я посмотрел, у вас вот объединённые ячейки, и в 2-х объединённых ячейках прописано 3 разных имени. То есть при таком подходе, имена не будут соответствовать строкам таблицы. Я чуть-чуть подправил код ранее выкладываемый. Но в нём всё ещё есть недочёты, судя по вашим добавленным условиям " 1.возможно после ФИО стоит сразу же "(" без пробела 2.после значения в скобках может не быть "%"".

Автор - Roman777
Дата добавления - 26.03.2015 в 09:28
Kuzmich Дата: Четверг, 26.03.2015, 11:16 | Сообщение № 8
Группа: Проверенные
Ранг: Ветеран
Сообщений: 715
Репутация: 157 ±
Замечаний: 0% ±

Excel 2003
[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
[/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
[/vba]

Автор - Kuzmich
Дата добавления - 26.03.2015 в 11:16
  • Страница 1 из 1
  • 1
Поиск:

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