2016-07-13 15 views
1

Ich wollte sehen, ob es einen einfacheren Weg durch eine if(), VBA oder Array-Formel zum Zusammenführen/Summen von Zellen mit dem gleichen Titel gibt . Was ich will ist, wenn der Name übereinstimmt, die IDs zusammen mit einem "," in einer Zelle zusammenzuführen, dann summieren Sie die Räume und SF zusammen in einer Zeile zusammen.Wie ich zwei oder mehr Zellen zusammenführen, wenn sie den gleichen Inhalt auf anderen Zellen haben

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 

Ich möchte es so aussehen:

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

Angenommen "ID" ist A1 und "Sf" ist D1. Vielen Dank im Voraus!

+0

Willkommen bei Stack Overflow. SO ist kein Code für mich Site noch ist es eine Lehre, um Website zu codieren. Was hast du probiert? Wenn Sie Office 365 Excel 2016 verwenden, kann dies höchstwahrscheinlich mit einer Matrixformel oder zwei und einigen SUMME() erfolgen. Andernfalls müssen Sie Ihre Daten sortieren und eine Hilfespalte verwenden, um Formeln auszuführen. Wenn keiner von denen funktioniert, dann sind Sie mit VBA fest. –

Antwort

0

Dies wird es für Sie tun!

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 
Verwandte Themen