Microsoft Excel

Herbers Excel/VBA-Archiv

Matrixinhalt / Zellen zusammenfassen | Herbers Excel-Forum


Betrifft: Matrixinhalt / Zellen zusammenfassen von: Daniela
Geschrieben am: 30.01.2012 09:52:08

Hallo Zusammen,
ich hab ein kleines Problem. Ich hab einen Matrix:
A B
1 otto Ei
2 otto Apfel
3 otto Brot
4 otto Butter
5 paul Butter
6 paul Schinken
7 paul Brot
8 tina Marmelade
9 tina Ei

Ergebnis sollte so aussehen:
C D
1 otto = Ei, Apfel, Brot, Butter
2 paul = Butter, Schinken, Brot
3 tina = Marmelade, Ei

Ich bekomm das nicht hin, außer ich programmier das händisch (D1= B1&B2&B3&B4...usw). Das ist ziemlich mühsam und feherträchtig. Die Tabelle hat mehrere hundert Zeilen.
Ich habs auch schon mit einer Pivottabelle und Teilergebnissen versucht - das war ein erster Ansatz aber nicht die Lösung.
Vielleicht habt Ihr eine gute und pfiffige Idee.
VieleN Dank schon im Voraus.
Herzliche Grüße aus München
Daniela

  

Betrifft: VBA: Zellen zusammenfassen von: NoNet
Geschrieben am: 30.01.2012 11:53:22

Hallo Daniela,

hier eine VBA-Lösung zum Zusammenfassen der Zellen :

Sub TabelleZusammenfassung()
'Fasst Werte aus Spalten A und B in Spalten C und D zusammen
'30.01.2012, NoNet - www.excelei.de
Dim lngZ1 As Long, lngZ2 As Long, lngS1 As Long, lngS2 As Long

lngS1 = 1 '1 = Spalte A = Erste Spalte der Originalliste
lngS2 = 3 '3 = Spalte C = Erste Spalte der Zusammenfassung

For lngZ1 = 2 To Cells(Rows.Count, lngS1).End(xlUp).Row 'Spalte A : Bis letzte belegte Zeile
If Application.CountIf(Columns(lngS2), Cells(lngZ1, lngS1)) = 0 Then
lngZ2 = Cells(Rows.Count, lngS2).End(xlUp).Row + 1 'Neue Zeile in Spalte C
Cells(lngZ2, lngS2) = Cells(lngZ1, lngS1) 'Wert aus Spalte A nach Spalte C kopieren
Cells(lngZ2, lngS2 + 1) = Cells(lngZ1, lngS1 + 1) 'Wert aus Spalte B nach Spalte D kopieren
Else
'Wert aus Spalte A in Spalte C suchen
lngZ2 = Application.Match(Cells(lngZ1, lngS1), Columns(lngS2))
'Wert aus Spalte B in Spalte D anhängen
Cells(lngZ2, lngS2 + 1) = Cells(lngZ2, lngS2 + 1) & ", " & Cells(lngZ1, lngS1 + 1)
End If
Next
End Sub

Mit den Codezeilen lngS1=1 und lngS2=3 kannst Du festlegen, in welchen Spalten die Originalliste bzw. die Zielliste beginnt !

Hier das Ergebnis :

ABCD
1
2
3
4
5
6
7
8
9
10

Tabelle eingefügt mit Syntaxhighlighter 4.15

Gruß, NoNet


  

Betrifft: AW: VBA: Zellen zusammenfassen von: Daniela
Geschrieben am: 30.01.2012 12:56:12

Hallo NoNet,
klappt leider nicht. Ich bekomm eine völlig zusammenhanglose Liste.
Lieg vielleicht daran, dass in meiner ersten Spalte eine Zahl z.B. 4.1.2.1 steht.
Das sind Kapitel aus der Norm. Ich muss im Prinzip zeigen zu welchen Kapiteln (Paul, Otto,Tina) wir Dokumente haben (das ist Butter, Ei, Marmelade, Bot...). Und dann soll eben eine Liste rauskommen.
Ist echt schwer :-(
GLG Daniela


Beiträge aus den Excel-Beispielen zum Thema "Matrixinhalt / Zellen zusammenfassen "