Zufällige, einmalige Auswahl aus einem Array in Excel
Schritt-für-Schritt-Anleitung
Um zufällige, einmalige Zahlen zwischen 1 und 54 in Excel zu erzeugen, kannst du den folgenden VBA-Code verwenden. Dieser Code sorgt dafür, dass jede Zahl nur einmal vorkommt.
- Öffne Excel und drücke
ALT + F11
, um den VBA-Editor zu öffnen.
- Füge ein neues Modul hinzu:
Einfügen
> Modul
.
- Kopiere den folgenden Code in das Modul:
Sub Zufallszahlen()
Dim vektor(1 To 54) As Integer
Dim Z As Integer
Dim Random As Integer
Dim Anzahl As Integer
' Array mit Werten füllen
For Z = 1 To 54
vektor(Z) = Z
Next Z
' Zufallszahlen generieren
Randomize
While Application.WorksheetFunction.Sum(vektor) > 0
Random = Int((54 * Rnd) + 1)
If vektor(Random) > 0 Then
Cells(2, Random).Value = vektor(Random)
vektor(Random) = 0
Anzahl = Anzahl + 1
End If
Wend
End Sub
- Schließe den VBA-Editor und gehe zurück zu Excel.
- Führe das Makro
Zufallszahlen
aus, um die Werte in der zweiten Zeile deines Arbeitsblatts zu sehen.
Häufige Fehler und Lösungen
- Error 9: Dieser Fehler tritt häufig auf, wenn auf einen nicht definierten Array-Index zugegriffen wird. Stelle sicher, dass der Index zwischen 1 und 54 liegt.
- Falsche Zufallszahlen: Achte darauf,
Randomize
am Anfang des Codes zu verwenden, um unterschiedliche Zufallszahlen zu generieren.
- Doppelte Zahlen: Wenn du zufällige Zahlen ohne Wiederholungen benötigst, musst du ein Array verwenden, das die Zahlen verwaltet und bereits verwendete Zahlen auf 0 setzt.
Alternative Methoden
Eine einfache Methode, um zufällige Zahlen in Excel zu generieren, besteht darin, die Funktion =ZUFALLSZAHL()
zu verwenden. Hierbei kannst du:
- In einer Hilfsspalte die Formel
=ZUFALLSZAHL()
für die Zellen A1 bis A54 eingeben.
- Sortiere die Ergebnisse anschließend, um eine zufällige Reihenfolge zu erhalten.
Diese Methode ist besonders nützlich, wenn du nicht mit VBA arbeiten möchtest.
Praktische Beispiele
Angenommen, du möchtest 5 zufällige Zahlen zwischen 1 und 54:
- Erstelle ein Array mit den Zahlen 1 bis 54.
- Verwende die oben gezeigte VBA-Methode, um die 5 ersten Werte zu extrahieren.
- Oder nutze die Formel
=INDEX(A$1:A$54; RANG(E1; B$1:B$54; 0))
, um die Werte aus einer sortierten Liste zu ziehen.
Tipps für Profis
- Verwende
Option Explicit
am Anfang deines Codes, um sicherzustellen, dass alle Variablen deklariert sind. Das hilft, Fehler zu vermeiden.
- Überlege, wie viele Zufallszahlen du benötigst, und passe deinen Code entsprechend an.
- Nutze die
WorksheetFunction.RandBetween(1, 54)
, wenn du Excel 2007 oder höher hast, um Zufallszahlen direkt zu erzeugen, ohne VBA zu verwenden.
FAQ: Häufige Fragen
1. Wie stelle ich sicher, dass die Zufallszahlen immer unterschiedlich sind?
Indem du die verwendeten Zahlen in einem Array auf 0 setzt, nachdem du sie genutzt hast, verhinderst du, dass sie erneut ausgewählt werden.
2. Kann ich die Zufallszahlen in eine bestimmte Zelle schreiben?
Ja, ändere im VBA-Code die Cells(2, Random).Value
-Zeile, um die gewünschte Zelle anzupassen.
3. Funktioniert das auch in Excel Online?
Der VBA-Code funktioniert nur in Desktop-Versionen von Excel. Für Excel Online musst du alternative Methoden wie die ZUFALLSZAHL()
-Funktion verwenden.