@blainethemono

Как объеденить ячейки excel по условию?

Здравствуйте.

В первом столбце excel значения, во втором соответствующие им, но в разных строках:
96f16ab77e934baca5af511debb9196e.PNG

Нужно объединить все "a" в ячейку напротив 1, все b напротив 2 и т.д, причем с сохранением переноса строк:
1464c505a48d4646abb611fc7c2e9e28.PNG

Записей, естественно, тысячи.
Подскажите, пожалуйста, как это сделать?
  • Вопрос задан
  • 1298 просмотров
Решения вопроса 1
@tplus
Накидал без особых красивостей :)

Из минусов:
- между значениями после обработки остаются пустые строки, равные количеству элементов - 1 во втором столбце (соответственно конкатенированные значения); пустые строки в экселе подчистить не должно быть проблемой;
- начальная инициализация завязана на расположение элементов.

Не забудьте расширить диапазон Range() для цикла.

Sub concat()
    txt = Range("B1").Text
    Range("A1").Select
    Set hCell = ActiveCell
    For Each cell In Range("A1:A20")
        If cell.Value <> "" Or cell.Offset(0, 1).Value = "" Then
            hCell.Offset(0, 1).Value = txt
            cell.Select
            Set hCell = ActiveCell
            txt = ""
        End If
        
        If cell.Offset(0, 1).Value = "" Then
            Exit Sub
        End If
        
        txt = txt + vbCrLf + cell.Offset(0, 1).Text
        ' Очистка ячейки
        cell.Offset(0, 1).Value = ""
    Next
End Sub
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы