Hey,
Dein Problem ist gut nachvollziehbar und lässt sich mit einem Makro in Excel recht einfach lösen. Ich gebe dir ein Makro, das dir hilft, die doppelten Einträge zusammenzufassen und die Gutschriften korrekt zu summieren. Dabei gehen wir davon aus, dass die Namen in Spalte A stehen und die Gutschriften in Spalte H.
Hier ist ein einfaches Makro, das du anpassen kannst, um die gewünschten Ergebnisse zu erzielen:
Code: Alles auswählen
Sub GutschriftenZusammenfassen()
Dim ws As Worksheet
Dim lastRow As Long
Dim dict As Object
Dim i As Long
Dim name As String
Dim gutschrift As Double
Set ws = ThisWorkbook.Sheets("Sheet1") ' Passe den Sheet-Namen an
Set dict = CreateObject("Scripting.Dictionary")
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row ' Bestimmt die letzte Zeile der Tabelle
' Gehe die Zeilen durch und füge die Gutschriften pro Mitarbeiter zusammen
For i = 2 To lastRow ' assuming the first row is headers
name = ws.Cells(i, 1).Value ' Name in Spalte A
gutschrift = ws.Cells(i, 8).Value ' Gutschrift in Spalte H
' Falls der Name noch nicht im Dictionary ist, füge ihn hinzu
If Not dict.exists(name) Then
dict.Add name, gutschrift
Else
dict(name) = dict(name) + gutschrift ' Falls der Name bereits im Dictionary ist, summiere die Gutschrift
End If
Next i
' Lösche die alten Daten (außer der ersten Zeile)
ws.Range("A2:H" & lastRow).ClearContents
' Schreibe die gesammelten Daten zurück in die Tabelle
i = 2
For Each key In dict.keys
ws.Cells(i, 1).Value = key ' Name
ws.Cells(i, 8).Value = dict(key) ' Gutschrift
i = i + 1
Next key
MsgBox "Die Gutschriften wurden erfolgreich zusammengefasst!", vbInformation
End Sub
Erklärung:
Daten durchgehen: Das Makro geht alle Zeilen in der Tabelle durch, liest die Namen aus Spalte A und die Gutschriften aus Spalte H.
Werte im Dictionary speichern: Für jeden Mitarbeiter wird der Name als Schlüssel verwendet, und die Gutschrift wird entweder hinzugefügt oder als neue Zahl gespeichert, wenn der Name noch nicht existiert.
Alte Daten löschen: Nachdem alle Gutschriften zusammengefasst sind, löscht das Makro alle alten Werte, damit nur noch die zusammengefassten Werte übrig bleiben.
Daten zurückschreiben: Am Ende wird die Tabelle mit den gesammelten Gutschriften und den einzelnen Mitarbeitern neu ausgefüllt.
Anwendung:
Öffne Excel und drücke Alt + F11, um den VBA-Editor zu öffnen.
Füge das Makro in ein Modul ein (klicke auf "Einfügen" -> "Modul").
Schließe den Editor und führe das Makro aus (drücke Alt + F8, wähle GutschriftenZusammenfassen und klicke auf "Ausführen").
Das Makro wird die Namen in Spalte A durchsuchen, die Gutschriften in Spalte H zusammenfassen und die Ergebnisse in derselben Tabelle ausgeben.