Я пытаюсь объединить строки, содержащие похожие данные, используя самый простой способ, но я предполагаю, что для этого потребуется некоторый VBA. Если бы кто-нибудь мог указать мне в правильном направлении, это было бы здорово.
Пример того, чего я пытаюсь достичь:
NAME | AGE| AREA
John | 32 | Portsmouth
Will | 32 | Portsmouth
Matt | 28 | Southampton
Dave | 32 | Portsmouth
Phil | 28 | Southampton
Tony | 25 | Winchester
Превратился в:
AGE| AREA | Name 1 | Name 2 | Name 3 |
32 | Portsmouth | John | Dave | Will |
28 | Southampton | Matt | Phil | |
25 | Winchester | Tony | | |
РЕДАКТИРОВАТЬ: мне удалось собрать воедино то, что мне нужно, однако кажется, что неповторяющиеся данные помещаются в один и тот же столбец, в отличие от моего предпочтительного Name 1 | Name 2 | Name 3
есть мысли об обновлении этого для заполнения отдельных ячеек, а не одного и того же?
Вот обновление:
Sub mergeCategoryValues()
Dim lngRow As Long
With ActiveSheet
Dim columnToMatch As Integer: columnToMatch = 2
Dim columnToConcatenate As Integer: columnToConcatenate = 1
lngRow = .Cells(65536, columnToMatch).End(xlUp).Row
.Cells(columnToMatch).CurrentRegion.Sort key1:=.Cells(columnToMatch), Header:=xlYes
Do
If .Cells(lngRow, columnToMatch) = .Cells(lngRow - 1, columnToMatch) Then
.Cells(lngRow - 1, columnToConcatenate) = .Cells(lngRow - 1, columnToConcatenate) & "; " & .Cells(lngRow, columnToConcatenate)
.Rows(lngRow).Delete
End If
lngRow = lngRow - 1
Loop Until lngRow = 1
End With
End Sub
point me in the right direction
. Что считаетсяright direction
в этом случае? Вы можете нанять фрилансера, если не знаете VBA, но если знаете, покажите свою попытку решить проблему, а затем расскажите нам, что не сработало и где именно вы застряли. В нынешнем виде ваш вопрос не относится к теме переполнения стека. Дополнительную информацию см. в справочном центре. - person   schedule 18.03.2014