Inhaltsverzeichnis
In diesem Artikel werden wir einige verschiedene Formeln für die Zufallsgenerierung in Excel besprechen, ohne dass sich die Zahlen wiederholen, und einen universellen Zufallsgenerator vorstellen, der eine Liste von Zufallszahlen, Datumsangaben und Zeichenfolgen ohne Wiederholungen erstellen kann.
Wie Sie wahrscheinlich wissen, verfügt Microsoft Excel über mehrere Funktionen zur Generierung von Zufallszahlen, wie z. B. RAND, RANDBETWEEN und RANDARRAY. Es gibt jedoch keine Garantie dafür, dass das Ergebnis jeder Funktion frei von Duplikaten ist.
Bitte beachten Sie, dass einige Formeln nur in der neuesten Version von Excel 365 und 2021 funktionieren, während andere in jeder Version von Excel 2019, Excel 2016, Excel 2013 und früher verwendet werden können.
Abrufen einer Liste eindeutiger Zufallszahlen mit vordefiniertem Schritt
Funktioniert nur in Excel 365 und Excel 2021, die dynamische Arrays unterstützen.
Wenn Sie die neueste Excel-Version haben, ist es am einfachsten, wenn Sie eine Liste mit eindeutigen Zufallszahlen ist es, 3 neue dynamische Array-Funktionen zu kombinieren: SORTBY, SEQUENCE und RANDARRAY:
SORTBY(REIHENFOLGE( n ), RANDARRAY( n ))Wo n ist die Anzahl der Zufallswerte, die Sie erhalten möchten.
Um zum Beispiel eine Liste mit 5 Zufallszahlen zu erstellen, verwenden Sie 5 für n :
=SORTBY(SEQUENCE(5), RANDARRAY(5))
Geben Sie die Formel in die oberste Zelle ein, drücken Sie die Eingabetaste, und die Ergebnisse verteilen sich automatisch auf die angegebene Anzahl von Zellen.
Wie Sie in der Abbildung unten sehen können, ist diese Formel tatsächlich sortiert Zahlen von 1 bis 5 in zufälliger Reihenfolge Wenn Sie einen klassischen Zufallszahlengenerator ohne Wiederholungen benötigen, dann sehen Sie sich bitte die folgenden Beispiele an.
In der obigen Formel legen Sie nur fest, wie viele Zeilen gefüllt werden sollen. Alle anderen Argumente werden auf ihren Standardwerten belassen, d.h. die Liste beginnt bei 1 und wird um 1 erhöht. Wenn Sie eine andere erste Zahl und eine andere Erhöhung wünschen, setzen Sie Ihre eigenen Werte für die 3 ( Start ) und 4. ( Schritt ) Argumente der Funktion SEQUENCE.
Um zum Beispiel bei 100 zu beginnen und um 10 zu erhöhen, verwenden Sie diese Formel:
=SORTBY(SEQUENCE(5, , 100, 10), RANDARRAY(5))
Wie diese Formel funktioniert:
Die Formel wirkt von innen nach außen und ist folgendermaßen aufgebaut:
- Die Funktion SEQUENCE erzeugt ein Array von aufeinanderfolgenden Zahlen, die auf dem angegebenen oder voreingestellten Startwert und der inkrementellen Schrittweite basieren. Diese Sequenz geht an die Array Argument von SORTBY.
- Die Funktion RANDARRAY erzeugt ein Array mit Zufallszahlen in der gleichen Größe wie die Sequenz (5 Zeilen, 1 Spalte in unserem Fall). Der Minimal- und Maximalwert spielt keine Rolle, so dass wir diese auf den Standardwerten belassen können. Dieses Array wird in die by_array Argument von SORTBY.
- Die Funktion SORTBY sortiert die von SEQUENCE erzeugten fortlaufenden Zahlen unter Verwendung eines von RANDARRAY erzeugten Arrays von Zufallszahlen.
Bitte beachten Sie, dass diese einfache Formel eine Liste von sich nicht wiederholenden Zufallszahlen mit einer vordefinierter Schritt Um diese Einschränkung zu umgehen, verwenden Sie eine erweiterte Version der unten beschriebenen Formel.
Erzeugen einer Liste von Zufallszahlen ohne Duplikate
Funktioniert nur in Excel 365 und Excel 2021, die dynamische Arrays unterstützen.
Um Zufallszahlen in Excel ohne Duplikate zu generieren, verwenden Sie eine der folgenden allgemeinen Formeln.
Zufällige ganze Zahlen :
INDEX(UNIQUE(RANDARRAY( n ^2, 1, min , max , TRUE)), SEQUENCE( n ))Zufällige Dezimalzahlen :
INDEX(UNIQUE(RANDARRAY( n ^2, 1, min , max , FALSE)), SEQUENCE( n ))Wo:
- N ist die Anzahl der zu erzeugenden Werte.
- Min ist der Mindestwert.
- Max ist der Höchstwert.
Um zum Beispiel eine Liste von 5 willkürliche Ganzzahlen von 1 bis 100, ohne Wiederholungen, verwenden Sie diese Formel:
=INDEX(UNIQUE(RANDARRAY(5^2, 1, 1, 100, TRUE)), SEQUENCE(5))
Um 5 eindeutige Zufallszahlen zu erzeugen Dezimalzahlen setzen Sie FALSE in das letzte Argument von RANDARRAY oder lassen Sie dieses Argument weg:
=INDEX(UNIQUE(RANDARRAY(5^2, 1, 1, 100)), SEQUENCE(5))
Wie diese Formel funktioniert:
Auf den ersten Blick mag die Formel etwas knifflig erscheinen, aber bei näherer Betrachtung ist ihre Logik sehr geradlinig:
- Die Funktion RANDARRAY erstellt ein Array mit Zufallszahlen auf der Grundlage der von Ihnen angegebenen Minimal- und Maximalwerte. Um zu bestimmen, wie viele Werte generiert werden sollen, erhöhen Sie die gewünschte Anzahl der Unikate auf eine Potenz von 2. Da das resultierende Array möglicherweise nicht weiß, wie viele Duplikate es hat, müssen Sie ein ausreichendes Array mit Werten bereitstellen, aus denen UNIQUE wählen kann. In diesem Beispiel benötigen wir nur 5 UnikateZufallszahlen, aber wir weisen RANDARRAY an, 25 (5^2) zu erzeugen.
- Die UNIQUE-Funktion entfernt alle Duplikate und "füttert" INDEX mit einem duplikatfreien Array.
- Aus dem von UNIQUE übergebenen Array extrahiert die Funktion INDEX die erste n Da die Werte bereits in zufälliger Reihenfolge vorliegen, spielt es keine Rolle, welche Werte überleben.
Hinweis: Bei sehr großen Arrays kann diese Formel etwas langsam sein. Um beispielsweise eine Liste mit 1.000 eindeutigen Zahlen als Endergebnis zu erhalten, müsste RANDARRAY intern ein Array mit 1.000.000 Zufallszahlen (1000^2) generieren. In solchen Situationen können Sie statt der Potenzierung auch multiplizieren n Bitte denken Sie daran, dass je kleiner das Array ist, das an die UNIQUE-Funktion übergeben wird (klein im Verhältnis zur gewünschten Anzahl eindeutiger Zufallswerte), desto größer ist die Wahrscheinlichkeit, dass nicht alle Zellen im Überlaufbereich mit den Ergebnissen gefüllt werden.
Erstellen eines Bereichs von sich nicht wiederholenden Zufallszahlen in Excel
Funktioniert nur in Excel 365 und Excel 2021, die dynamische Arrays unterstützen.
Um eine Reihe von Zufallszahlen zu erzeugen, die sich nicht wiederholen, können Sie diese Formel verwenden:
INDEX(UNIQUE(RANDARRAY( n ^2, 1, min , max )), SEQUENCE( Zeilen , Spalten ))Wo:
- n ist die Anzahl der zu füllenden Zellen. Um manuelle Berechnungen zu vermeiden, können Sie sie als (Anzahl der Zeilen * Anzahl der Spalten) angeben. Um z. B. 10 Zeilen und 5 Spalten zu füllen, verwenden Sie 50^2 oder (10*5)^2.
- Zeilen ist die Anzahl der zu füllenden Zeilen.
- Rubriken ist die Anzahl der zu füllenden Spalten.
- Min ist der niedrigste Wert.
- Max ist der höchste Wert.
Der einzige Unterschied ist die Funktion SEQUENCE, die in diesem Fall sowohl die Anzahl der Zeilen als auch der Spalten definiert.
Um zum Beispiel einen Bereich von 10 Zeilen und 3 Spalten mit eindeutigen Zufallszahlen von 1 bis 100 zu füllen, verwenden Sie diese Formel:
=INDEX(UNIQUE(RANDARRAY(30^2, 1, 1, 100)), SEQUENCE(10, 3))
Und es wird eine Reihe von zufälligen Dezimalzahlen ohne Zahlenwiederholungen erzeugt:
Wenn Sie ganze Zahlen benötigen, dann setzen Sie das letzte Argument von RANDARRAY auf TRUE:
=INDEX(UNIQUE(RANDARRAY(30^2, 1, 1, 100, TRUE)), SEQUENCE(10,3))
So erzeugen Sie eindeutige Zufallszahlen in Excel 2019, 2016 und früher
Da keine andere Version als Excel 365 und 2021 dynamische Arrays unterstützt, funktioniert keine der oben genannten Lösungen in früheren Versionen von Excel. Das bedeutet jedoch nicht, dass es überhaupt keine Lösung gibt, Sie müssen nur ein paar weitere Schritte durchführen:
- Erstellen Sie eine Liste mit Zufallszahlen, die Sie je nach Bedarf verwenden können:
- Die Funktion RAND, um zufällige Dezimalzahlen zwischen 0 und 1 zu erzeugen, oder
- Die Funktion RANDBETWEEN, um zufällige ganze Zahlen in dem von Ihnen angegebenen Bereich zu erzeugen.
Achten Sie darauf, dass Sie mehr Werte generieren, als Sie tatsächlich benötigen, denn einige werden doppelt vorhanden sein und Sie werden sie später löschen.
In diesem Beispiel erstellen wir eine Liste mit 10 zufälligen ganzen Zahlen zwischen 1 und 20, indem wir die folgende Formel verwenden:
=RANDBETWEEN(1,20)
Um die Formel in mehrere Zellen auf einmal einzugeben, markieren Sie alle Zellen (in unserem Beispiel A2:A15), geben die Formel in die Formelleiste ein und drücken Strg + Enter. Oder Sie geben die Formel wie gewohnt in die erste Zelle ein und ziehen sie dann nach unten in so viele Zellen wie nötig.
Auf jeden Fall wird das Ergebnis in etwa so aussehen:
Wie Sie vielleicht bemerken, haben wir die Formel in 14 Zellen eingegeben, obwohl wir letztendlich nur 10 eindeutige Zufallszahlen benötigen.
- Ändern Sie Formeln in Werte. Da sowohl RAND als auch RANDBETWEEN bei jeder Änderung auf dem Arbeitsblatt neu berechnet werden, ändert sich Ihre Liste der Zufallszahlen ständig. Um dies zu verhindern, verwenden Sie Einfügen Spezial> Werte um Formeln in Werte umzuwandeln, wie in Wie man die Neuberechnung von Zufallszahlen stoppt erklärt.
Um sicherzugehen, dass Sie es richtig gemacht haben, wählen Sie eine beliebige Zahl aus und sehen Sie sich die Formelleiste an. Sie sollte jetzt einen Wert und keine Formel anzeigen:
- Um dies zu tun, markieren Sie alle Nummern, gehen Sie zum Menüpunkt Daten tab> Daten-Tools Gruppe, und klicken Sie auf Duplikate entfernen In der Duplikate entfernen Klicken Sie im daraufhin angezeigten Dialogfeld einfach auf OK, ohne etwas zu ändern. Detaillierte Schritte finden Sie unter Entfernen von Duplikaten in Excel.
Alle Duplikate sind verschwunden, und Sie können nun die überzähligen Nummern löschen.
Tipp: Anstelle des in Excel integrierten Tools können Sie auch unseren erweiterten Duplikatentferner für Excel verwenden.
Wie man die Änderung von Zufallszahlen verhindert
Alle Zufallsfunktionen in Excel, einschließlich RAND, RANDBETWEEN und RANDARRAY, sind flüchtig, d. h. sie werden bei jeder Änderung des Arbeitsblatts neu berechnet. Daher werden bei jeder Änderung neue Zufallswerte erzeugt. Um zu verhindern, dass automatisch neue Zahlen generiert werden, verwenden Sie die Funktion Einfügen Spezial> Werte, um Formeln durch statische Werte zu ersetzen. So geht's:
- Markieren Sie alle Zellen mit Ihrer Zufallsformel und drücken Sie Strg + C, um sie zu kopieren.
- Klicken Sie mit der rechten Maustaste auf den ausgewählten Bereich und dann auf Einfügen Spezial > Werte Alternativ können Sie auch die Tastenkombination Umschalt + F10 und dann V drücken, die als Abkürzung für diese Option dient.
Ausführliche Informationen finden Sie unter Ändern von Formeln in Werte in Excel.
Zufallszahlengenerator für Excel ohne Wiederholungen
Die Benutzer unserer Ultimate Suite benötigen keine der oben genannten Lösungen, da sie bereits einen universellen Zufallsgenerator in ihrem Excel haben. Dieses Tool kann ganz einfach eine Liste mit sich nicht wiederholenden ganzen Zahlen, Dezimalzahlen, Datumsangaben und eindeutigen Kennwörtern erstellen. So geht's:
- Auf der Ablebits Tools Registerkarte, klicken Sie auf Randomisieren > Zufallsgenerator .
- Wählen Sie den Bereich aus, der mit Zufallszahlen gefüllt werden soll.
- Auf der Zufallsgenerator gehen Sie wie folgt vor:
- Wählen Sie den gewünschten Wertetyp: Ganzzahl, reelle Zahl, Datum, Boolescher Wert, benutzerdefinierte Liste oder Zeichenkette (ideal für die Erstellung starker, eindeutiger Kennwörter!).
- Richten Sie die Von und An Werte.
- Wählen Sie die Einzigartige Werte Kontrollkästchen.
- Klicken Sie auf Erzeugen Sie .
Das war's! Der ausgewählte Bereich wird auf einmal mit sich nicht wiederholenden Zufallszahlen gefüllt:
Wenn Sie neugierig sind, dieses Tool auszuprobieren und weitere faszinierende Funktionen unserer Ultimate Suite zu entdecken, können Sie gerne eine Testversion herunterladen.
So funktioniert die Zufallsgenerierung von Zahlen in Excel ohne Duplikate. Ich danke Ihnen für die Lektüre und hoffe, Sie nächste Woche in unserem Blog begrüßen zu dürfen!
Übungsheft zum Herunterladen
Generieren Sie eindeutige Zufallszahlen in Excel (.xlsx-Datei)