Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Fortlaufende Nummerierung aller Duplikate

Forumthread: Fortlaufende Nummerierung aller Duplikate

Fortlaufende Nummerierung aller Duplikate
27.07.2017 14:52:52
Luka
Moin Moin,
ich habe folgendes Problem, welches ich nach stundenlanger Forenrecherche leider noch nicht lösen konnte:
Ich habe eine Liste mit hunderten Variablen, wovon einige Duplikate sind.
Beispiel:
System Mark Bit - 1
System Mark Bit - 1
System Mark Bit - 1
System Mark Bit - 1
System Mark Bit - 1
278C00
278E00
278C00
Header4 - 1
Header4 - 1
Header4 - 1
Header4 - 1
Header4 - 1
Ich benötige nun - zum Handling in einem externen Programm - eine Durchnummerierung die folgendermaßen aussieht:
System Mark Bit - 1
System Mark Bit - 1_2
System Mark Bit - 1_3
System Mark Bit - 1_4
System Mark Bit - 1_5
278C00
278E00
278C00
Header4 - 1
Header4 - 1_6
Header4 - 1_7
Header4 - 1-8
Header4 - 1_9
Es soll also, sobald ein neues Duplikat erkannt wurde, das nächste mit einer fortlaufenden Ziffer nummeriert werden.
Danke schonmal im Voraus für eure Hilfe!
LG
Luka
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fortlaufende Nummerierung aller Duplikate
27.07.2017 15:15:45
mmat

Sub AutoNumber()
'Spalte mit Duplikaten ist "A". Diese ist ununterbrochen mit werten gefüllt.
Dim x As Long, r As Long, c As Long, rr As Long, s As String
r = 1
c = 1
x = 2
While Cells(r, c)  ""
If Cells(r, c) = Cells(r + 1, c) Then
rr = r + 1
While Cells(r, c) = Cells(rr, c)
Cells(rr, c) = Cells(rr, c) + "_" + CStr(x)
x = x + 1
rr = rr + 1
Wend
r = rr
Else
r = r + 1
End If
Wend
End Sub

Anzeige
AW: Fortlaufende Nummerierung aller Duplikate
27.07.2017 15:21:19
Luka
WOW, vielen vielen Dank mmat. Das ging fix!
Das hätte bei mir noch einige Wochen gedauert :D
;
Anzeige
Anzeige

Infobox / Tutorial

Fortlaufende Nummerierung aller Duplikate in Excel


Schritt-für-Schritt-Anleitung

Um eine fortlaufende Nummerierung für alle Duplikate in Excel zu erstellen, kannst Du das folgende VBA-Skript verwenden. Diese Methode eignet sich besonders gut, wenn Du mit einer großen Liste arbeitest, die mehrere Duplikate enthält, wie in Deinem Beispiel mit Variablen wie "System Mark Bit - 1" oder "278C00".

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Gehe zu Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Kopiere den folgenden Code in das Modul:

    Sub AutoNumber()
       ' Spalte mit Duplikaten ist "A". Diese ist ununterbrochen mit Werten gefüllt.
       Dim x As Long, r As Long, c As Long, rr As Long
       r = 1
       c = 1
       x = 2
       While Cells(r, c) <> ""
           If Cells(r, c) = Cells(r + 1, c) Then
               rr = r + 1
               While Cells(r, c) = Cells(rr, c)
                   Cells(rr, c) = Cells(rr, c) & "_" & CStr(x)
                   x = x + 1
                   rr = rr + 1
               Wend
               r = rr
           Else
               r = r + 1
           End If
       Wend
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Drücke ALT + F8, wähle AutoNumber aus und klicke auf Ausführen.

Dieses Skript wird alle Duplikate in der ersten Spalte der aktiven Arbeitsblatt durchnummerieren, wie Du es benötigst.


Häufige Fehler und Lösungen

  • Fehler: Das Skript läuft nicht.

    • Lösung: Stelle sicher, dass Du die richtigen Berechtigungen hast, um Makros auszuführen. Aktiviere Makros in den Excel-Optionen.
  • Fehler: Die Nummerierung wird nicht korrekt angezeigt.

    • Lösung: Überprüfe, ob die Liste in der richtigen Spalte (Standard ist Spalte A) steht und ob keine leeren Zellen vorhanden sind.
  • Fehler: Das Skript ergänzt nicht alle Duplikate.

    • Lösung: Stelle sicher, dass die Duplikate direkt übereinander stehen und keine Leerzeilen dazwischen sind.

Alternative Methoden

Wenn Du nicht mit VBA arbeiten möchtest, kannst Du auch die Funktion ZÄHLENWENN nutzen, um die Duplikate manuell zu nummerieren:

  1. Füge in der benachbarten Spalte eine Formel ein, die die Anzahl der vorhergehenden Duplikate zählt. Beispiel: =A1 & "_" & ZÄHLENWENN($A$1:A1, A1).
  2. Ziehe die Formel nach unten, um sie auf alle relevanten Zellen anzuwenden.

Diese Methode ist weniger automatisiert, kann jedoch für kleinere Listen ausreichen.


Praktische Beispiele

Nehmen wir an, Du hast die folgende Liste:

A
System Mark Bit - 1
System Mark Bit - 1
System Mark Bit - 1
278C00
278C00
Header4 - 1
Header4 - 1

Nach dem Ausführen des VBA-Skripts wird die Liste wie folgt aussehen:

A
System Mark Bit - 1
System Mark Bit - 1_2
System Mark Bit - 1_3
278C00
278C00_4
Header4 - 1
Header4 - 1_5

Tipps für Profis

  • Verwende die Formatierung: Um die Sichtbarkeit zu erhöhen, kannst Du bedingte Formatierungen nutzen, um Duplikate farblich hervorzuheben, bevor Du die Nummerierung vornimmst.
  • Backup erstellen: Mach stets eine Sicherheitskopie Deiner Excel-Datei, bevor Du Makros ausführst, um Verlust von Daten zu vermeiden.
  • Testen: Probiere das Skript zuerst an einer kleinen Testliste aus, bevor Du es auf große Datenmengen anwendest.

FAQ: Häufige Fragen

1. Wie kann ich das Skript anpassen, um eine andere Spalte zu verwenden? Du kannst die Variable c im Skript ändern, um eine andere Spalte auszuwählen (z. B. c = 2 für Spalte B).

2. Funktioniert das Skript in allen Excel-Versionen? Ja, das Skript sollte in allen modernen Excel-Versionen (z.B. Excel 2010, 2013, 2016 und 2019) ohne Probleme funktionieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige