Alphanummerische Codes erzeugen
Hallo alle zusammen...
Ich brauche Hilfe und zwar schnell und kompetent.
Ich muss für ein Projekt nennen wir es mal "Gewinnspiel" Codes erzeugen. Diese müssen Alphanummerisch sein und aus 6 Zeichen bestehen.
Kann ich das mit Excel oder irgend einer Kostenlosen Software machen? Ich brauche so um die 1.000.000 Stück von dem zeug.
2 Antworten
Vielleicht geht es eleganter, aber mit dieser simpel gestrickten Formel bekommst Du das gewollte Ergebnis.
Ich hoffe Du hast Excel 2007 oder 2010, sonst wird es etwas komplizierter, da es vorher ZUFALLSBEREICH noch nicht gab. Nicht erschrecken wegen der Länge, das ist sechsmal der gleiche Schnipsel.
Um die Häufigkeit Zahl/ Buchstabe zu beeinflussen brauchst Du nur die 0,5 gegen 0 (Zahl) oder gegen 1 (Buchstabe) zu "verschieben":
=ZEICHEN(WENN(ZUFALLSZAHL()>0,5;ZUFALLSBEREICH(48;57);ZUFALLSBEREICH(65;90))) & ZEICHEN(WENN(ZUFALLSZAHL()>0,5;ZUFALLSBEREICH(48;57);ZUFALLSBEREICH(65;90)))&ZEICHEN(WENN(ZUFALLSZAHL()>0,5;ZUFALLSBEREICH(48;57);ZUFALLSBEREICH(65;90))) & ZEICHEN(WENN(ZUFALLSZAHL()>0,5;ZUFALLSBEREICH(48;57);ZUFALLSBEREICH(65;90)))&ZEICHEN(WENN(ZUFALLSZAHL()>0,5;ZUFALLSBEREICH(48;57);ZUFALLSBEREICH(65;90))) & ZEICHEN(WENN(ZUFALLSZAHL()>0,5;ZUFALLSBEREICH(48;57);ZUFALLSBEREICH(65;90)))
Als Code ist es wohl besser lesbar (hoffe ich):
=ZEICHEN(WENN(ZUFALLSZAHL()>0,5;ZUFALLSBEREICH(48;57);ZUFALLSBEREICH(65;90))) & ZEICHEN(WENN(ZUFALLSZAHL()>0,5;ZUFALLSBEREICH(48;57);ZUFALLSBEREICH(65;90)))&ZEICHEN(WENN(ZUFALLSZAHL()>0,5;ZUFALLSBEREICH(48;57);ZUFALLSBEREICH(65;90))) & ZEICHEN(WENN(ZUFALLSZAHL()>0,5;ZUFALLSBEREICH(48;57);ZUFALLSBEREICH(65;90)))&ZEICHEN(WENN(ZUFALLSZAHL()>0,5;ZUFALLSBEREICH(48;57);ZUFALLSBEREICH(65;90))) & ZEICHEN(WENN(ZUFALLSZAHL()>0,5;ZUFALLSBEREICH(48;57);ZUFALLSBEREICH(65;90)))
ich dachte, ich kanns kürzer, aber nachdem ich das Missverständnis mit den Ziffern korrigiert hatte, ists doch länger geworden, wenn auch nur knapp. xls2003 akzeptiert übrigens Deine Formel! Nur die Häufigkeit der Verteilung müsstest Du noch anpassen, damits wirklich "zufällig" wird.
Probiers mal mit =ZEICHEN(65+GANZZAHL(ZUFALLSZAHL()26))&ZEICHEN(65+GANZZAHL(ZUFALLSZAHL()26))&ZEICHEN(65+GANZZAHL(ZUFALLSZAHL()26))&ZEICHEN(65+GANZZAHL(ZUFALLSZAHL()26))&ZEICHEN(65+GANZZAHL(ZUFALLSZAHL()26))&ZEICHEN(65+GANZZAHL(ZUFALLSZAHL()26)) eine Zelle kopieren, eine ganze Spalte markieren und einfügen. In xls 2003 rd. 65.000 pro Spalte. Spalte kopieren, in andere Spalte Bearbeiten-inhalte einfügen- Werte. Also 17-18 Spalten Hab nicht ausprobiert, ob xls das vom Umfang her verkraftet, evtl auf mehrere Dateien verteilen.
irgendwie ist da bei der Formel oben eine 36,3 anstelle 36 reingekommen, ist zwar kein großer fehler, aber der Ordnung halber: die Formel lautet richtig:
=ZEICHEN(WENN(ZUFALLSZAHL()>10/36;65+GANZZAHL(ZUFALLSZAHL()26);48+GANZZAHL(ZUFALLSZAHL()10)))&ZEICHEN(WENN(ZUFALLSZAHL()>10/36;65+GANZZAHL(ZUFALLSZAHL()26);48+GANZZAHL(ZUFALLSZAHL()10)))&ZEICHEN(WENN(ZUFALLSZAHL()>10/36;65+GANZZAHL(ZUFALLSZAHL()26);48+GANZZAHL(ZUFALLSZAHL()10)))&ZEICHEN(WENN(ZUFALLSZAHL()>10/36;65+GANZZAHL(ZUFALLSZAHL()26);48+GANZZAHL(ZUFALLSZAHL()10)))&ZEICHEN(WENN(ZUFALLSZAHL()>10/36;65+GANZZAHL(ZUFALLSZAHL()26);48+GANZZAHL(ZUFALLSZAHL()10)))&ZEICHEN(WENN(ZUFALLSZAHL()>10/36;65+GANZZAHL(ZUFALLSZAHL()26);48+GANZZAHL(ZUFALLSZAHL()10)))
es geht noch ein bisschen kürzer (einmal Ganzzahl() ausgeklammert:
=ZEICHEN(GANZZAHL(WENN(ZUFALLSZAHL()>10/36;65+ZUFALLSZAHL()26;48+ZUFALLSZAHL()10)))&ZEICHEN(GANZZAHL(WENN(ZUFALLSZAHL()>10/36;65+ZUFALLSZAHL()26;48+ZUFALLSZAHL()10)))&ZEICHEN(GANZZAHL(WENN(ZUFALLSZAHL()>10/36;65+ZUFALLSZAHL()26;48+ZUFALLSZAHL()10)))&ZEICHEN(GANZZAHL(WENN(ZUFALLSZAHL()>10/36;65+ZUFALLSZAHL()26;48+ZUFALLSZAHL()10)))&ZEICHEN(GANZZAHL(WENN(ZUFALLSZAHL()>10/36;65+ZUFALLSZAHL()26;48+ZUFALLSZAHL()10)))&ZEICHEN(GANZZAHL(WENN(ZUFALLSZAHL()>10/36;65+ZUFALLSZAHL()26;48+ZUFALLSZAHL()10)))
Wie gesagt, GF(=Großer Fehler?) verschluckt das Malzeichen nach Zufallszahl(), aber das ist die erste Excel-Fehlerkorrektur-Option, diese also annehmen.
Es geht auch ganz ohne Ganzzahl (kürzeste Fassung), aber ich vermute, dass sich dann die Häufigkeit von A und Z und die von 0 und 9 unterscheiden.
=ZEICHEN(WENN(ZUFALLSZAHL()>10/36;65+ZUFALLSZAHL()26;48+ZUFALLSZAHL()10))&ZEICHEN(WENN(ZUFALLSZAHL()>10/36;65+ZUFALLSZAHL()26;48+ZUFALLSZAHL()10))&ZEICHEN(WENN(ZUFALLSZAHL()>10/36;65+ZUFALLSZAHL()26;48+ZUFALLSZAHL()10))&ZEICHEN(WENN(ZUFALLSZAHL()>10/36;65+ZUFALLSZAHL()26;48+ZUFALLSZAHL()10))&ZEICHEN(WENN(ZUFALLSZAHL()>10/36;65+ZUFALLSZAHL()26;48+ZUFALLSZAHL()10))&ZEICHEN(WENN(ZUFALLSZAHL()>10/36;65+ZUFALLSZAHL()26;48+ZUFALLSZAHL()10))
ist Dir bewusst, dass bei 1 Mio ausgegebenen Zahlen und 2,18E+09 Möglichkeiten Du ca 500 Doppel bekommst?
Wenn Du das nicht willst, müsstest Du noch eine Zählenwenn-Spalte daneben machen, die Dir anzeigt, wann wein Wert zum zweitenmal auftritt!
(diesen 2. dann ausschließen) zB so, Formel in Z.3, Liste beginne in A1:
=zählenwenn(A$1:A3;A3)-1
das ergibt Dir 0 bei einfachem Auftreten, die Zahl der Wiederholungen bei mehrfachem Auftreten.
Kreierst Du nun ein benutzerdefiniertes Format wie zB.
0;[Rot]-0;[Farbe7]—
und fett, so erhältst Du magentafarbene, ansonsten unauffällige Langstriche beim einfachen Auftreten und eine sichtbare 1 beim Doppel bzw 2 beim Tripel Kannst das natürlich auch über ein benutzerdefiniertes Zellformat machen oder beides! bei mehreren Spalten alle Spalten einbeziehen!
DAS ist auf jeden Fall zu beachten. Ein WICHTIGER Einwand. Mal sehen ob es noch eine Rückmeldung gibt.
Um Doppelter Werte einmalig aus einer Liste zu entfernen nutze ICH immer den Spezialfilter:
Spalte markieren/ Spezialfilter/ Häkchen bei keine Duplikate / Gefilterte Daten kopieren und in eine leere Spalte einfügen/ Fertig.
Die Aufgabenstellung hat mich nochmals interessiert, deshalb nachgegrast: Habe mit der Formel eine ganze Spalte gefüllt: kein Problem. Spalte kopiert und als Werte eingefügt: xl braucht sehr lange, um das umzusetzen, geht aber. Bei jeder Spalte länger! Bis P:P, da warens gut 3 min. für diese Aktion. Andererseits habe ich mich bei der Zahl der Doppel verrechnet. Da Statistik aber ohnehin nicht meine Stärke ist: keine neue Aussage. Die Kontrollformel (die ich doch brauche, weil das Spezialfilter ja nur eine Spalte abdeckt) in Q1:
=ZÄHLENWENN($A:$A:$P:$P;A1)-1
aber ging überhaupt nicht für eine ganze Spalte einzufügen! Habs für mehrere Zeilen gemacht, da ists kein Problem.
Die Datei hat im Endeffekt gut 25 MB.
Ich genke, da wäre doch ein Makro besser, das jeweils vielleicht 100 Codes neue generiert, gleich kontrolliert und dann einträgt. Man braucht normalerweise ja nicht alle Zahlen auf einmal!
Unter Einbeziehung von Ziffern:
=ZEICHEN(WENN(ZUFALLSZAHL()>10/36,3;65+GANZZAHL(ZUFALLSZAHL()26);48+GANZZAHL(ZUFALLSZAHL()10)))&ZEICHEN(WENN(ZUFALLSZAHL()>10/36,3;65+GANZZAHL(ZUFALLSZAHL()26);48+GANZZAHL(ZUFALLSZAHL()10)))&ZEICHEN(WENN(ZUFALLSZAHL()>10/36,3;65+GANZZAHL(ZUFALLSZAHL()26);48+GANZZAHL(ZUFALLSZAHL()10)))&ZEICHEN(WENN(ZUFALLSZAHL()>10/36,3;65+GANZZAHL(ZUFALLSZAHL()26);48+GANZZAHL(ZUFALLSZAHL()10)))&ZEICHEN(WENN(ZUFALLSZAHL()>10/36,3;65+GANZZAHL(ZUFALLSZAHL()26);48+GANZZAHL(ZUFALLSZAHL()10)))&ZEICHEN(WENN(ZUFALLSZAHL()>10/36,3;65+GANZZAHL(ZUFALLSZAHL()26);48+GANZZAHL(ZUFALLSZAHL()10)))
hier sind auch die Ziffern 0-9 und jedes Zeichen in gleicher Häufigkeit (1/(26+10) vertreten.
Zumindest ist es als Code besser kopierbar.
Diese Formel kannst Du in eine Zelle schreiben und dann 'runterkopieren.
Mit F9 ändern sich alle Zahlen.
Um sich zu verwenden kannst Du sie am besten kopieren und dann mit Inhalte einfügen... / Werte in eine neu Spalte einfügen.
Klappt es?