Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Gleiche Spalten summieren
#1
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


Angehängte Dateien
.xlsx   Tabelle.xlsx (Größe: 9,13 KB / Downloads: 4)
Antwortento top
#2
Hola,

da die Zieltabelle fehlt: schau dir Summewenns() an:
https://www.online-excel.de/excel//singsel.php?f=188

Gruß,
steve1da
Antwortento top
#3
Vergessen zu schreiben die Zeilen sollen auch gelöscht werden und nur Summenzeile soll bleiben.
Antwortento top
#4
Hallöchen,

Du könntest das Makro dazu aufzeichnen. Summen kopieren, als Werte einfügen, rest löschen. Siehe dazu Excel-Word-Makrorekorder
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
Antwortento top
#5
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.
Antwortento top
#6
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"
   
Antwortento top
#7
Hallo WS User, hast Du meine Antwort oder ich Deine Frage nicht verstanden? Gruss Raoul.
Antwortento top
#8
Genau die Frage hatten wir heute schon mal.
Antwortento top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste