Аналогично этому: Excel - сводные значения в одной ячейке (в виде значения через запятую)

За исключением того, что это может быть решение VBA, и у меня нет дубликатов в столбце А. Вместо этого под каждым значением есть пустые строки:

Name1|Fact1
------|Fact2
------|Fact3
------|Fact4
Name2|Fact1
------|Fact2
Name3|Fact1

Как и в вопросе, который я цитирую, я хотел бы добиться:

Name1|Fact1, Fact2, Fact3, Fact4
Name2|Fact1, Fact2
Name3|Fact1

Количество фактов для каждого имени не является одинаковым, поэтому простая формула, перенесенная вниз, не будет работать.

Все значения являются строками.

Я бы предпочел использовать макрос для решения этой проблемы, а не решение, приведенное в вопросе, который я цитирую.

2 ответа2

1

Это должно сделать это

Sub test()
Dim s As String
Dim i As Integer
For i = 1 To 100
    start:
    If Cells(i, 1) <> "" And Cells(i + 1, 1) = "" And Cells(i + 1, 2) <> "" Then
        s = Cells(i, 2).Value & "," & Cells(i + 1, 2).Value
        Cells(i, 2) = s
        Cells(i + 1, 1).EntireRow.Delete
        GoTo start
    End If

Next

End Sub
0

Вы утверждаете, что «Количество фактов для каждого имени не является одинаковым, поэтому простая формула, перетащенная вниз, не будет работать».

Однако, что вы можете сделать, чтобы вставить формулу во все эти пустые ячейки:

  1. В ячейку A2 введите формулу = A1
  2. Скопируйте формулу в ячейку A2
  3. Выделите весь диапазон в ячейках A1:B7.
  4. Нажмите CTRL+G.
  5. Выбери "особенный".
  6. Выберите "заготовки"; "ХОРОШО".
  7. Нажмите CTRL+V, чтобы вставить формулы в выделенные пустые ячейки.
  8. Теперь вы можете скопировать и вставить специальные значения для удаления формул.

Затем вы можете продолжить с методом, показанным в вашей ссылке выше.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .