2016-07-13 1 views
1

if(), VBA 또는 배열 수식을 통해 동일한 제목의 셀을 병합/합산하는 더 쉬운 방법이 있는지 알고 싶습니다. . 내가 원하는 것은 이름이 일치하면 하나의 셀에서 ID를 ","와 병합 한 다음 방과 SF를 함께 한 행에 합치는 것입니다.둘 이상의 셀을 다른 셀에 동일한 내용으로 병합하는 방법

ID     Name     Rooms Sf 
00000121856000000 Dreadfall Apartments 123  44000 
00000121865000000 Dreadfall Apartments 115  40000 
00000121898000000 Clear Creek    22  11500 
00000121897000000 Clear Creek    22  11500 
00000121541000000 Clear Creek    23  12500 

내가 그것을 모양을 원하는 :

|00000121856000000, 00000121865000000     | Dreadfall Apartments | 238 | 84000 
|00000121898000000,00000121897000000, 00000121541000000| Clear Creek   | 67 | 58500 

는 "ID"를 가정 A1 및 "SF"입니다 D1이다. 미리 감사드립니다.

+0

스택 오버플로에 오신 것을 환영합니다. 그래서 나 사이트에 대한 코드가 아니며 사이트 코드를 가르쳐주지 않습니다. 너 뭐 해봤 니? Office 365 Excel 2016을 사용하는 경우에는 배열 수식 또는 2와 일부 SUMIFS()를 사용하면됩니다. 그렇지 않으면 수식을 수행하기 위해 데이터를 정렬하고 도우미 열을 사용해야합니다. 그 중 아무도 작동하지 않으면 당신은 VBA에 붙어 있습니다. –

답변

0

이렇게하면됩니다!

Sub Macro() 
Dim lngRow As Long 
For lngRow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row To 2 Step -1 
If StrComp(Range("B" & lngRow), Range("B" & lngRow - 1), vbTextCompare) = 0 Then 
If Range("C" & lngRow) <> "" Then 
Range("A" & lngRow - 1) = Range("A" & lngRow - 1) & ";" & Range("A" & lngRow) 
Range("C" & lngRow - 1) = Range("C" & lngRow - 1) + Range("C" & lngRow) 
Range("D" & lngRow - 1) = Range("D" & lngRow - 1) + Range("D" & lngRow) 
End If 
Rows(lngRow).Delete 
End If 
Next 
End Sub