Microsoft Office Forum [ www.Office-Fragen.de ] >> READONLY <<

Microsoft Office 2003-2019 => Excel => Thema gestartet von: AriGoldsta am September 25, 2012, 09:47:26 Vormittag

Titel: 1. Spalte Zahl, 2. Name, wenn gleicher Name Zahlen aufzählen
Beitrag von: AriGoldsta am September 25, 2012, 09:47:26 Vormittag
Guten Morgen,

Folgendes Problem: Ich habe eine Exceltabelle, mit 2 Spalten. In der ersten Spalte steht in jeder Spalte eine Zahl (Nummer einer Kategorie), in der 2. steht der NAme des Unternehmens. Wenn ein Unternehmen nun mehreren Kategorien angehört, so steht es mehrmals hintereinander, da immer nur 1 Kategorie pro Zeile angegeben ist. 5 Kategorien, 5 Zeilen mit verschiedenen Zahlen, aber Jedes mal das gleiche Unternehmen.
Ich würde es gerne so formatieren, dass jedes Unternehmen nur 1 mal da Steht und alle Zahlen in der gleichen Zeile aufgezählt werden. So dass jedes nternehmen nur noch 1 Zeile erhält.
Habe zur zeit etwa 700 Unternehmen und 3000 Zeilen.
Also eine Funktion die sagt, wenn name Spalte2 gleich, dann Zahlen aus Spalte 1 aufzählen (vll sortiert, damit identisch).
Und super wäre dann doppelte Einträge noch löschen, sodass ich Pro Unternehemen eine Zeile habe mit Spalte1 alle Kategorien aufgezählt (durch kommata getrennt) und in Spalte2 wie gahabt der Name. Dann müsste ich auch nciht von Hand löschen.

Hoffe es ist einigermaßen verständlich
Danke euch schonmal im Voraus
Titel: Antw: 1. Spalte Zahl, 2. Name, wenn gleicher Name Zahlen aufzählen
Beitrag von: Beverly am September 26, 2012, 09:56:51 Vormittag
Hi,

versuche es mal mit folgendem Code (Achtung, vorher Kope der Originaldaten anlegen!!):

Sub Zusammenfassen()
   Dim lngZeile As Long
   Dim lngStart As Long
   Application.DisplayAlerts = False
   For lngZeile = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count) To 2 Step -1
      lngStart = lngZeile
      If Application.CountIf(Columns(2), Cells(lngZeile, 2)) > 1 Then
         Do
            Cells(lngStart - 1, 1) = Cells(lngStart - 1, 1) & ", " & Cells(lngStart, 1)
            Rows(lngStart).Delete
            lngStart = lngStart - 1
            If lngStart = 1 Then Exit Do
            If Cells(lngStart - 1, 2) <> Cells(lngStart, 2) Then Exit Do
         Loop
         lngZeile = lngStart
      End If
   Next lngZeile
   Application.DisplayAlerts = False
End Sub

Bis später,
Karin
Titel: Antw: 1. Spalte Zahl, 2. Name, wenn gleicher Name Zahlen aufzählen
Beitrag von: AriGoldsta am September 28, 2012, 11:08:53 Vormittag
VIELE DANK!!!!! funktioniert wunderbar!!!!!!
Titel: Antw: 1. Spalte Zahl, 2. Name, wenn gleicher Name Zahlen aufzählen
Beitrag von: excelnova.org am Oktober 09, 2012, 09:39:25 Vormittag
Hi AriGoldsta,

Obwohl bereits gelöst hat mich Dein Problem nicht losgelassen. Die Lösung von Beverly ist natürlich sehr elegant, aber ich dachte mir es muss auch ohne VBA gehen.

Habe darüber auf meinem Blog ein spezifischen http://excelnova.org/2012/10/wie-man-daten-mit-text-verdichtet/  (http://excelnova.org/2012/10/wie-man-daten-mit-text-verdichtet/) dazu geschrieben.


Gruss,
ExcelNova.org