Lücken in Zahlenfolgen füllen

Lücken in IDs, Kundennummern, … füllen


Video auf YouTubeHin­weis:
Die Arbeitss­chritte dieses Beitrages sind in einem kleinen Video doku­men­tiert. Das unter­stützende Begleit-Video find­en Sie auf YouTube an dieser Stelle.


Prinzip­iell soll­ten durch Löschen ent­standen Lück­en in IDs, Auf­tragsnum­mern, etc. nicht wieder aufge­füllt wer­den. Mitunter ist es aber der Wun­sch oder auch unumgänglich, dass aus ein­er „gebroch­enen” Liste von eigentlich fort­laufend­en Zahlen eine Auf­stel­lung gestellt wird, wo beispiel­sweise jede ID oder andere numerische Wert lück­en­los aufge­führt ist, die dazuge­höri­gen Werte jedoch leer sind.

Bei eini­gen weni­gen Daten­sätzen wie in dieser Musterta­belle ist das prinzip­iell kein Prob­lem, einige Zeilen einzufü­gen. Bei sehr umfan­gre­ichen Lis­ten kann das so aufwendig sein, dass eine Lösung auf dem genan­nten Wege nicht rentabel ist. In jedem Fall lässt sich so etwas per VBA/Makro lösen. Begin­nend mit der Ver­sion Excel 2010 ste­ht Ihnen das Add-In Pow­er Query zur Ver­fü­gung. Damit ist ein Erfolg rasch und ohne eine Zeile Code gegeben.

Wenn Sie die Mus­ter­datei geladen haben wer­den Sie erken­nen, dass diverse Num­mern fehlen. In Anlehnung an das Prinzip „2 Tabellen ver­gle­ichen” kön­nen Sie in weni­gen Schrit­ten eine neue Tabelle mit fort­laufend­en, lück­en­losen IDs (oder entsprechend Kun­den­num­mern, Rech­nungsnum­mern, …) erstellen, wo die einge­fügten Zeilen auss­chließlich die bis­lang fehlende Num­mer enthal­ten. Gehen Sie dazu so vor:

  • Falls noch nicht geschehen, for­matieren sie die Dat­en als Intel­li­gente Tabelle/Liste
  • Sortieren Sie erforder­lichen­falls die Spalte ID nach auf­steigen­den Werten
  • Merken Sie sich den niedrig­sten und den höch­sten Wert der ID
  • Lassen Sie eine Spalte frei und tra­gen Sie in die 1. Zeile (hier: E1) den Text ID2 als Über­schrift ein.
  • In E2 tra­gen sie den niedrig­sten Wert, hier im Beispiel also 1000 ein.
  • Markieren Sie erforder­lichen­falls noch ein­mal E2 und im Menü Start, Gruppe Bear­beit­en | Füll­bere­ich | Rei­he…, Rei­he in → Spal­ten und tra­gen bei Endw­ert den Wert der höch­sten ID ein. Alter­na­tive: Ziehen Sie ein­fach die Zelle mit gedrück­ter Taste Strg so weit nach unten, bis der Endw­ert erre­icht ist.
  • For­matieren Sie auch diesen Bere­ich als Tabelle.

Damit ist die Vor­bere­itung abgeschlossen. Markieren Sie eine Zelle in der Tabelle mit den fehlen­den Werten und öff­nen Sie diese entwed­er über den Menüpunkt Pow­er Query oder das Menü Dat­en, Auswahl Aus Tabelle, um die Dat­en im Abfrage-Edi­tor ver­ar­beit­en zu kön­nen. Änderun­gen sind hier nicht unbe­d­ingt erforder­lich, darum kön­nen Sie die Abfrage direkt wieder Schließen und laden. Natür­lich hät­ten sie vorher in der 3. Spalte Geburt­stag den Daten­typ auf Datum ändern kön­nen, damit nicht in jed­er Zeile die Uhrzeit angezeigt wird; Sie kön­nen das aber auch im näch­sten Schritt noch später machen.

Wech­seln Sie nun wieder zum ersten Tabel­len­blatt, markieren einen beliebi­gen Wert in der Tabelle mit der ID2 und öff­nen Sie diese auch im Abfrage Edi­tor. Wahrschein­lich sehen sie jet­zt im Edi­tor nur diese Abfrage. Falls Sie sich einen Überblick über die Gesamtheit der Abfra­gen dieser Mappe ver­schaf­fen wollen, Klick­en Sie auf das > ganz links im Fen­ster ober­halb des Textes Abfra­gen und Ihnen wer­den alle aktuellen Abfra­gen angezeigt:

Alle Abfragen anzeigen

Alle Abfra­gen anzeigen

Die aktuelle Abfrage ist hier durch grüne Hin­ter­legung markiert. – Wählen Sie nun im Menü das Sym­bol Kom­binieren | Abfra­gen zusam­men­führen. Im neuen Dialogfen­ster wählen Sie im leeren Drop­down Tabelle1 als zweite Abfrage aus:

Auswahl der zweiten Abfrage für das Zusammenführen

Auswahl der zweit­en Abfrage für das Zusam­men­führen

Übri­gens: Auch wenn dort immer „Tabelle#” ste­ht, es sind die Namen der jew­eili­gen Abfrage und nicht die ursprüngliche Tabelle. Nun markieren sie durch Klick jew­eils die Spal­ten ID und ID2, damit bei­de markiert sind. Ein Klick auf OK und das ganze sieht dann so aus:

Angefügte Abfrage, erster Schritt

Ange­fügte Abfrage, erster Schritt

Klick­en Sie in der Über­schrift New­Col­umn auf den Dop­pelpfeil rechts und ent­fer­nen Sie im Dialogfen­ster erst ein­mal das Häkchen bei ID. Zusät­zlich kön­nen Sie auch noch das Häkchen bei Ursprünglichen Spal­tenna­men als Prä­fix ver­wen­den löschen; das hat aber nur Ein­fluss auf die neue Über­schrift. Das Ergeb­nis ist nun genau das, was sie erwartet haben. Falls Sie es nicht schon von getan haben, soll­ten Sie nun in der Spalte Geburt­stag den Daten­typ auf Datum ändern. Vorzugsweise soll­ten Sie die Über­schrift ID2 auf ID ändern, weil dieses ja dem Orig­i­nal entspricht. Schließen und laden und im neuen Tabel­len­blatt erken­nen Sie eine Liste mit fort­laufend­en, lück­en­losen IDs und entsprechend leeren Feldern an den Posi­tio­nen, die hinzuge­fügt wor­den sind. Das Ziel ist erre­icht.

▲ nach oben …

Ref­er­ence: #4015

Dieser Beitrag wurde unter Allgemein, Verschiedenes, Daten zusammenführen, Musterlösungen, Ohne Makro/VBA, Power Query, Rechnen & Zahlen abgelegt und mit , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.