Hallo Zusammen
bin am suchen nach einer Lösung für folgendes Problem:
Makro für
Tabelle:
A B C D
Artiknr Charge Menge Gewicht
10031 1111 10 10
10031 2222 5 5
10055 5555 5 5
10066 6666 10 10
10066 6666 5 5
10066 7777 10 10
Es sollen Spalte A und B mit anderen Zeilen verglichen werden und bei Gleichheit von A und B Spalte C und D aufsummiert.
Das soll herauskommen
A B C D
Artiknr Charge Menge Gewicht
10031 1111 10 10
10031 2222 5 5
10055 5555 5 5
10066 6666 15 15
10066 7777 10 10
Mein Problem ich bekomme derzeit nur die Überprüfung einer Spalte hin "A" und dann summiert es mir alle anderen auf.
Kann mir hier eventuell jemand helfen.
Danke
Vergessen zu schreiben die Zeilen sollen auch gelöscht werden und nur Summenzeile soll bleiben.
Hallöchen,
Du könntest das Makro dazu aufzeichnen. Summen kopieren, als Werte einfügen, rest löschen. Siehe dazu
Excel-Word-Makrorekorder
Probier mal:
Code:
Sub DuplikatzeilenSummieren()
Dim Bereich As Range
Dim a As Variant, c As Variant, e As Variant
Dim b As Long
Set Bereich = Range("A1").CurrentRegion
a = Bereich
With CreateObject("Scripting.Dictionary")
For b = 1 To UBound(a)
c = a(b, 1) & a(b, 2)
If .Exists(c) Then
e = .Item(c) 'e wird zum Summieren herausgehoben
e(3) = e(3) + WorksheetFunction.Index(a, b, 3)
e(4) = e(4) + WorksheetFunction.Index(a, b, 4)
.Item(c) = e 'Summenvektor wird wieder zurückgestellt
Else
.Item(c) = WorksheetFunction.Index(a, b, 0)
End If
Next b
a = WorksheetFunction.Index(.Items, 0, 0)
End With
Bereich.Clear
Bereich(1).Resize(UBound(a, 1), UBound(a, 2)) = a
End Sub
Alle Zeilen, die den selben Text ergeben, wenn man jeweils Artikel- und Chargen-Nr. verkettet, werden wie gewünscht zusammengefasst. Diese müssen nicht unbedingt untereinander stehen.
LG Raoul
Nachtrag: Eine Pivot-Tabelle kann das auch. Berichtslayout: Tabellenformat, Teilergebnisse nicht anzeigen.
Warum keine Musterdatei?
Das geht mit Powerquery relativ simpel, wenn der Screenshot das Ergebnis sein soll.
Code:
let
Source = Excel.CurrentWorkbook(){[Name="tabData"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Artikelnr", Int64.Type}, {"Charge", Int64.Type}, {"Menge", Int64.Type}, {"Gewicht", Int64.Type}}),
#"Grouped Rows" = Table.Group(#"Changed Type", {"Artikelnr", "Charge"}, {{"Menge", each List.Sum([Menge]), type nullable number}, {"Gewicht", each List.Sum([Gewicht]), type nullable number}, {"Rows", each Table.RowCount(_), Int64.Type}}),
#"Filtered Rows" = Table.SelectRows(#"Grouped Rows", each [Rows] > 1),
#"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Rows"})
in
#"Removed Columns"
[
attachment=35218]
Hallo WS User, hast Du meine Antwort oder ich Deine Frage nicht verstanden? Gruss Raoul.