Excel: Automatisch generierte eindeutige Zahl

mschrak

Commander
Registriert
Sep. 2009
Beiträge
2.311
Hallo zusammen,

ich bastel mir gerade ein Tool, um Bestellungen zu erstellen.
Auf jeder Bestellung möchte ich eine eindeutige (nicht wiederkehrende) Bestellnummer erfassen. Diese möchte ich aber nicht bei jeder Bestellung immer um "1" hochsetzen müssen (händische Erfassung).
Ein Automatismus für eine fortlaufende Nummer ist aus meiner Sicht nicht möglich, da ich keinen "Vorgang" habe, der mir als Auslöser für die Erhöhung dienen könnte (lediglich der Druckvorgang des betreffenden Blattes kommt in Betracht, ist aber auch blöd, weil ich vielleicht eine Bestellung auch mehrfach ausdrucken möchte.

Daher habe ich an einen "verkürzten" Timecode gedacht. Wenn ich also eine Bestellung heute (11.2.15 um 12:30:22 Uhr) auslöse, dann generiere ich eine Bestellnummer wie zB: "150211123022).

Weiss jemand, wie ich so etwas hinbekomme? Oder habt Ihr vielleicht Alternativen, die ich noch nicht bedacht habe? Der Timecode ist halt sehr lang, bei der Rechnungsprüfung müsste ich dann immer diese Nummer vergleichen...

Über Euren Input würde ich mich sehr freuen.

Danke schon mal im Voraus,

Martin
 
Wie sieht es mit einem Macro aus, dass immer dann eine neue Nummer in die entsprechende Zelle einträgt (z.B. als fortlaufende Nummer), wenn du beginnst die Daten der Bestellung einzugeben?

Also wäre das Auslösen das Füllen einer bestimmten anderen Zelle.
 
Folgende Herangehensweise:

Du möchtest IDs erzeugen, aber die dürfen sich nicht doppeln (logisch).
Spontan fallen mir diese Möglichkeiten ein:
  • du lässt den Wert immer um eins erhöhen (so wird es klassischerweise in relationalen Datenbanken gemacht); hast du im Beispiel ausgeschlossen
  • du erzeugst einen kurzen Zufallswert und gleichst ihn mit der Liste der vorhandenen IDs ab, um Dopplungen zu vermeiden
  • du erzeugst einen sehr langen Zufallswert, der mit einer sehr hohen Wahrscheinlichkeit nicht doppelt vorkommt (Stichwort GUID), der aber beim Abtippen wirklich ätzend wäre
  • du bleibst beim Ansatz Timestamp, was von der Länge her zwischen den letzten beiden Ansätzen liegt

Jetzt darfst du entscheiden, was für dich das einfachste ist.
Der Ansatz über GUID ist denke ich zu lang zum Tippen. Du kannst mit eigenen Algorithmen kürzer gehen auf Kosten der Wahrscheinlichkeit für Dopplungen. Um eine ID abzugleichen, brauchst du eine Liste aller anderen Bestellungen. Dann kannst du aber auch gleich die größte ID nehmen und um 1 erhöhen.
Über Timestamps hast du ja selber gesehen, dass die auch schon recht lang werden. Folgende Überlegung? Wird das Tool später selbständig arbeiten und Kundenbestellungen entgegennehmen? Oder bedienst du das manuell?
Das dient zur Überlegung: Muss ich z.B. Sekunden aufnehmen? Minuten? Stunden (kommt nur eine Bestellung am Tag)? Muss man gar auf Millisekunden gehen?

Vielleicht ist es am Ende doch einfacher eine kleine Datenbankinstanz aufzubauen, die Auto-Increment für die Datensatz-IDs hat und die die Verwaltung überlässt.

Soweit meine Gedanken, schau mal ob die dich weiterbringen.

Gruß vom Physikbuddha
 
Zurück
Oben