@Nick에서 제공하는 링크는 원래 데이터를 그대로 유지하려는 경우 비 VBA 솔루션을 제공합니다.
병합 된 행만 남기도록 데이터를 수정하려면 VBA 솔루션이 필요합니다.
다음은 병합을 수행 할 매크로입니다.
참고 : 그것은 시트에 다른 유용한 데이터가없는 가정
. 그럴 경우 삭제되거나 덮어 쓰기됩니다.
이 활성 시트
그것은 메모리 변형 배열의 합병이 resonable 속도를 제공하기 위해 않습니다에서 작동합니다. 셀/행을 반복하면 간단한 코드가 생성되지만 훨씬 느리게 실행됩니다.
원본 데이터를 보관하고 다른 곳을 요약하려면
Sub MergeRows()
Dim rng As Range
Dim vSrc As Variant
Dim vDst() As Variant
Dim i As Long, j As Long
' Assumes data starts at cell A2 and extends down with no empty cells
Set rng = Range([A2], [A2].End(xlDown))
' Count unique values in column A
j = Application.Evaluate("SUM(IF(FREQUENCY(" _
& rng.Address & "," & rng.Address & ")>0,1))")
ReDim vDst(1 To j, 1 To 2)
j = 1
' Get original data into an array
vSrc = rng.Resize(, 2)
' Create new array, one row for each unique value in column A
vDst(1, 1) = vSrc(1, 1)
vDst(1, 2) = "'" & vSrc(1, 2)
For i = 2 To UBound(vSrc, 1)
If vSrc(i - 1, 1) = vSrc(i, 1) Then
vDst(j, 2) = vDst(j, 2) & "," & vSrc(i, 2)
Else
j = j + 1
vDst(j, 1) = vSrc(i, 1)
vDst(j, 2) = "'" & vSrc(i, 2)
End If
Next
' Remove old data
rng.EntireRow.Delete
' Put new data in sheet
Set rng = [A2].Resize(j, 2)
rng = vDst
End Sub
이 페이지를보십시오 : http://www.sqldrill.com/excel/programming-vba-vb-c-etc/344793-concatenate-group-rows.html –
나는 그것을 시도하고 잘 작동합니다. 그러나 작업의 마지막 단계에서 vlookup을 적용하는 방법을 이해하지 못합니다. 누군가 그것을 설명 할 수 있을까요? –
@nick : 'VLOOKUP (...)'은 오프라인 및 [온라인 설명서] (http://office.microsoft.com/en-us/excel-help/vlookup-HP005209335.aspx)에서 설명하지만 [이 이미지 ] (http://i.stack.imgur.com/X86UF.png)도 도움이 될 수 있습니다. – mousio