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

Вход

Регистрация

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

 

= Мир MS Excel/Объединить строки при условии - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Объединить строки при условии (Макросы/Sub)
Объединить строки при условии
user0 Дата: Среда, 28.12.2016, 03:18 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 152
Репутация: 8 ±
Замечаний: 0% ±

Excel 2013, 2016
Добрый день,

Еще один вопрос про объединение )

Есть дамп с базы данных, где есть номер материала (выделено желтым), его краткое описание (зеленым) и длинное (красным) разбитое на несколько строк.

Подскажите, пожалуйста, как собрать это длинное описание в следующем столбце, напротив краткого (разделять символом ";").
Там еще через каждые 57 строк лишняя информация появляется (report/user/date), но она не мешает так как не заносится в поле с номером/описанием.
К сообщению приложен файл: combine.xlsx (16.3 Kb)
 
Ответить
СообщениеДобрый день,

Еще один вопрос про объединение )

Есть дамп с базы данных, где есть номер материала (выделено желтым), его краткое описание (зеленым) и длинное (красным) разбитое на несколько строк.

Подскажите, пожалуйста, как собрать это длинное описание в следующем столбце, напротив краткого (разделять символом ";").
Там еще через каждые 57 строк лишняя информация появляется (report/user/date), но она не мешает так как не заносится в поле с номером/описанием.

Автор - user0
Дата добавления - 28.12.2016 в 03:18
lFJl Дата: Среда, 28.12.2016, 06:27 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 236
Репутация: 6 ±
Замечаний: 0% ±

Excel 2013
Так?
К сообщению приложен файл: combine.xlsm (24.7 Kb)
 
Ответить
СообщениеТак?

Автор - lFJl
Дата добавления - 28.12.2016 в 06:27
user0 Дата: Среда, 28.12.2016, 07:29 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 152
Репутация: 8 ±
Замечаний: 0% ±

Excel 2013, 2016
Не совсем.
У вас сейчас копируется содержимое зеленой клетки n+1 раз в соседний столбец.
Мне же необходимо, чтобы объединялось только то что в красных ячейках. Очищать потом красные ячейки не обязательно.

ps: там две вкладки - data (как оно выглядит в начале) и result (то как должно получиться в итоге).

pps: могу почистить и обновить файл примера, если нужно.


Сообщение отредактировал user0 - Среда, 28.12.2016, 07:52
 
Ответить
СообщениеНе совсем.
У вас сейчас копируется содержимое зеленой клетки n+1 раз в соседний столбец.
Мне же необходимо, чтобы объединялось только то что в красных ячейках. Очищать потом красные ячейки не обязательно.

ps: там две вкладки - data (как оно выглядит в начале) и result (то как должно получиться в итоге).

pps: могу почистить и обновить файл примера, если нужно.

Автор - user0
Дата добавления - 28.12.2016 в 07:29
lFJl Дата: Среда, 28.12.2016, 07:59 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 236
Репутация: 6 ±
Замечаний: 0% ±

Excel 2013
сорян :)
исправил
К сообщению приложен файл: 8564230.xlsm (24.9 Kb)


Сообщение отредактировал lFJl - Среда, 28.12.2016, 07:59
 
Ответить
Сообщениесорян :)
исправил

Автор - lFJl
Дата добавления - 28.12.2016 в 07:59
nilem Дата: Среда, 28.12.2016, 08:08 | Сообщение № 5
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
как вариант
[vba]
Код
Sub ertert()
Dim r As Range
On Error Resume Next
For Each r In Range("B1:B" & Cells(Rows.Count, "F").End(xlUp).Row).SpecialCells(xlCellTypeBlanks).Areas
    If r.Count > 1 Then
        r(0, 6).Value = Replace(Replace(Join(Filter(Split("~" & _
                    Join(Application.Transpose(r.Offset(, 4).Value), _
                    "~|~") & "~", "|"), "~~", False), "|"), "~", ""), "|", "; ")
    Else
        r(0, 6).Value = r(1, 5).Value
    End If
Next r
End Sub
[/vba]


Яндекс.Деньги 4100159601573
 
Ответить
Сообщениекак вариант
[vba]
Код
Sub ertert()
Dim r As Range
On Error Resume Next
For Each r In Range("B1:B" & Cells(Rows.Count, "F").End(xlUp).Row).SpecialCells(xlCellTypeBlanks).Areas
    If r.Count > 1 Then
        r(0, 6).Value = Replace(Replace(Join(Filter(Split("~" & _
                    Join(Application.Transpose(r.Offset(, 4).Value), _
                    "~|~") & "~", "|"), "~~", False), "|"), "~", ""), "|", "; ")
    Else
        r(0, 6).Value = r(1, 5).Value
    End If
Next r
End Sub
[/vba]

Автор - nilem
Дата добавления - 28.12.2016 в 08:08
user0 Дата: Среда, 28.12.2016, 08:15 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 152
Репутация: 8 ±
Замечаний: 0% ±

Excel 2013, 2016
lFJl
Да, то что надо. Спасибо )

nilem
Так тоже работает. Спасибо и вам большое.


Сообщение отредактировал user0 - Среда, 28.12.2016, 08:22
 
Ответить
СообщениеlFJl
Да, то что надо. Спасибо )

nilem
Так тоже работает. Спасибо и вам большое.

Автор - user0
Дата добавления - 28.12.2016 в 08:15
yellsamara Дата: Воскресенье, 24.09.2017, 01:17 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Помогите допилить ваш макрос под мои цели, смысл тот же, только ничего удалять и пропускать не надо... я попытался но какая то лажа получается...
К сообщению приложен файл: 2590845.xlsx (20.0 Kb)
 
Ответить
СообщениеПомогите допилить ваш макрос под мои цели, смысл тот же, только ничего удалять и пропускать не надо... я попытался но какая то лажа получается...

Автор - yellsamara
Дата добавления - 24.09.2017 в 01:17
Pelena Дата: Воскресенье, 24.09.2017, 07:39 | Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 19184
Репутация: 4420 ±
Замечаний: ±

Excel 365 & Mac Excel
yellsamara, прочитайте Правила форума, создайте свою тему и опишите подробнее задачу. Эта тема закрыта.
смысл тот же
Вы же не думаете, что спустя почти год кто-то помнит этот смысл


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщениеyellsamara, прочитайте Правила форума, создайте свою тему и опишите подробнее задачу. Эта тема закрыта.
смысл тот же
Вы же не думаете, что спустя почти год кто-то помнит этот смысл

Автор - Pelena
Дата добавления - 24.09.2017 в 07:39
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Объединить строки при условии (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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