Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1836to1840
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

gleiche Zeilen zusammenfassen und Anzahl

gleiche Zeilen zusammenfassen und Anzahl
16.07.2021 17:14:53
Anton
Hallo zusammen,
ich bin leider mal wieder auf eure Hilfe angewiesen,
Es würde mich freuen, wenn sich jemand für mein Problem kurz Zeit nimmt.
Ich möchte über den Button "Zusammenfassen" per VDA-Makro, wie in der Beispieltabelle (https://www.herber.de/bbs/user/147160.xlsm) dargestellt
die identischen Zeilen zusammenfassen, sprich eine Behalten und die Restlichen löschen.
Dafür in Spalte K den Bestand um jede gelöschte gleiche Zeile erhöhen.
Ich denke es macht keinen Unterschied falls manche Zellen der Zeile leer bleiben oder? (wie bei "Somat Spühlmaschinentaps")
Vielen Dank für die Hilfe
Beste Grüße
Anton

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: gleiche Zeilen zusammenfassen und Anzahl
16.07.2021 19:44:02
Steve
Hey,
für das Verständnis, müsste in Tabelle2 bei Bestand der Butter nicht 3 mal eine 1 stehen, damit in Tabelle1 der Bestand als 3 errechnet wird?
Leider habe ich kein Makro in der Datei gefunden.
AW: gleiche Zeilen zusammenfassen und Anzahl
16.07.2021 22:44:45
Anton
Hallo,
ich glaube da ist was mit der Beispieldatei schief gelaufen...
Anbei der richtige Link.
https://www.herber.de/bbs/user/147165.xlsm
Ich denke dann ist es verständlicher :D
Ein Makro ist nicht vorhanden da ich nicht weiß wie ich die Funktion umsetzen soll
Entschuldigung für die Umstände
Gruß Anton
Anzeige
AW: gleiche Zeilen zusammenfassen und Anzahl
17.07.2021 12:26:29
GraFro
Hallo
Nachstehender Code erzeugt Unikate und zählt diese, wie oft sie in Tabelle1 vorkommen. Ergebnis wird in Tabelle2 ausgegeben. Gesucht wird nach Übereinstimmung in 2 Spalten.
Gehr sicher etwas einfacher aber es funktioniert.

Option Explicit
Sub Gleiche_zusammenfssen()
Dim arrDaten As Variant, arrTmp As Variant
Dim n As Long, x As Long, z As Long
' alle Daten in das Array 'arrDaten' Beginn: arrDaten(1 to count(arrDaten), 1 to 11)
With ThisWorkbook.Worksheets("Tabelle1")
arrDaten = .Range("A3:K" & .Cells(.Rows.Count, 3).End(xlUp).Row)
End With
' Nach welche Kriterien soll verglichen werden
' in diesem Fall: Marke und Artikel werden in einen Stzring zusammengefasst
ReDim arrTmp(1 To UBound(arrDaten), 1 To 1)
For n = 1 To UBound(arrDaten)
arrTmp(n, 1) = arrDaten(n, 4) & "|" & arrDaten(n, 5)
Next n
Dim dicWare As Object
Set dicWare = CreateObject("Scripting.Dictionary")
' Keys enthält die verschiedenen Unkate und der Item wie oft sie vorkommen
For x = 1 To UBound(arrTmp)
dicWare(arrTmp(x, 1)) = dicWare(arrTmp(x, 1)) + 1
Next
Dim arrErg As Variant
ReDim arrErg(1 To dicWare.Count, 1 To 11)
Dim dicItems As Variant: dicItems = dicWare.Items
Dim dicKeys As Variant: dicKeys = dicWare.keys
Dim arrSplit As Variant
For n = 0 To dicWare.Count - 1
arrSplit = Split(dicKeys(n), "|")
For x = 1 To UBound(arrDaten)
If arrDaten(x, 4) = arrSplit(0) And arrDaten(x, 5) = arrSplit(1) Then
' Marke und Artikel stimmen überein ---> Ergebnis in arrErg
For z = 1 To 10
arrErg(n + 1, z) = arrDaten(x, z)
Next z
arrErg(n + 1, 11) = dicItems(n) '---> wie oft kommen sie vor
Exit For
End If
Next x
Next n
' Ausgabe beginnend bei Zelle A2 im Tabellenblat 'Tabelle2'
With Sheets("Tabelle2")
.Range("A3").Resize(UBound(arrErg, 1) - LBound(arrErg, 1) + 1, UBound(arrErg, 2) - LBound(arrErg, 2) + 1) = arrErg
End With
End Sub
mfg GraFri
Anzeige
AW: gleiche Zeilen zusammenfassen und Anzahl
17.07.2021 17:38:51
Anton
Hallo GraFro,
das gefällt mir sehr gut, wäre es möglich alle spalten auf Übereinstimmung zu überprüfen?
Um 100% sicher zu gehen oder ist der Code dann zu aufwendig?
Vielen Dank für die Hilfe
Gruß
Anton
AW: gleiche Zeilen zusammenfassen und Anzahl
17.07.2021 20:28:50
GraFri
Hallo
Ist eigentlich einfacher.

Option Explicit
Sub Gleiche_zusammenfassen_2()
Dim arrDaten As Variant, arrTmp As Variant
Dim n As Long, x As Long
' alle Daten in das Array 'arrDaten' Beginn: arrDaten(1 to count(arrDaten), 1 to 11)
With ThisWorkbook.Worksheets("Tabelle1")
arrDaten = .Range("A3:K" & .Cells(.Rows.Count, 3).End(xlUp).Row)
End With
' Nach welche Kriterien soll verglichen werden
' in diesem Fall: Spalte A bis J werden verglichen
ReDim arrTmp(1 To UBound(arrDaten), 1 To 1)
For n = 1 To UBound(arrDaten)
For x = 1 To 10
arrTmp(n, 1) = arrTmp(n, 1) & arrDaten(n, x) & "|"
Next x
Next n
Dim dicWare As Object
Set dicWare = CreateObject("Scripting.Dictionary")
' Keys enthält die verschiedenen Unkate und der Item wie oft sie vorkommen
For x = 1 To UBound(arrTmp)
dicWare(arrTmp(x, 1)) = dicWare(arrTmp(x, 1)) + 1
Next
Dim arrErg As Variant
ReDim arrErg(1 To dicWare.Count, 1 To 11)
Dim dicItems As Variant: dicItems = dicWare.Items
Dim dicKeys As Variant: dicKeys = dicWare.keys
For n = 0 To dicWare.Count - 1
For x = 1 To 10
arrErg(n + 1, x) = Split(dicKeys(n), "|")(x - 1)
Next x
arrErg(n + 1, 11) = dicItems(n) '---> wie oft kommen sie vor
Next n
' Ausgabe beginnend bei Zelle A2 im Tabellenblat 'Tabelle2'
With Sheets("Tabelle2")
.Range("A3").Resize(UBound(arrErg, 1) - LBound(arrErg, 1) + 1, UBound(arrErg, 2) - LBound(arrErg, 2) + 1) = arrErg
End With
End Sub
mfg GraFri
Anzeige
AW: gleiche Zeilen zusammenfassen und Anzahl
17.07.2021 21:23:55
Anton
Perfekt, viele Dank für die Hilfe
Gruß
Anton

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige