ich suche nach einem möglichst effektiven Algorithmus (mögl. VBA) zum
Randomisieren von Arraywerten.
Kann mir jemand von Euch auf die Sprünge helfen?
merci
matthias
Sub zufall()
Dim rng As Range, rnall As Range
Dim irandomize As Integer
Set rngall = Range("A1:A6")
Randomize
rngall.ClearContents
For Each rng In rngall.Cells
irandomize = Int((6 * Rnd) + 1)
Do Until WorksheetFunction.CountIf(rngall, irandomize) = 0
irandomize = Int((6 * Rnd) + 1)
Loop
rng.Value = irandomize
Next rng
End Sub
Um ein Array in Excel in zufälliger Reihenfolge anzuzeigen, kannst du die folgenden Schritte befolgen. Diese Methode nutzt VBA, um die Werte zu randomisieren.
ALT + F11, um den VBA-Editor zu starten.Kopiere den folgenden Code in das Modul:
Sub zufall()
Dim rng As Range, rngall As Range
Dim irandomize As Integer
Set rngall = Range("A1:A6") ' Bereich anpassen, falls notwendig
Randomize
rngall.ClearContents
For Each rng In rngall.Cells
irandomize = Int((6 * Rnd) + 1)
Do Until WorksheetFunction.CountIf(rngall, irandomize) = 0
irandomize = Int((6 * Rnd) + 1)
Loop
rng.Value = irandomize
Next rng
End Sub
ALT + F8 drückst, das Makro auswählst und auf „Ausführen“ klickst.Jetzt hast du deine Werte in einer zufälligen Reihenfolge!
Fehler: Der Bereich wird nicht randomisiert.
Lösung: Stelle sicher, dass der in Set rngall = Range("A1:A6") angegebene Bereich korrekt ist und tatsächlich Werte enthält.
Fehler: Makro läuft nicht.
Lösung: Überprüfe, ob Makros in deinen Excel-Einstellungen aktiviert sind. Gehe zu „Datei“ > „Optionen“ > „Trust Center“ und aktiviere Makros.
Für diejenigen, die keine VBA-Lösung verwenden möchten, gibt es auch andere Möglichkeiten, die Excel-Zeilen zu randomisieren:
Zufallszahlen in einer Hilfsspalte:
Füge neben deinen Daten eine Spalte hinzu und verwende die Formel =RAND(), um eine zufällige Zahl zu generieren. Sortiere dann deine Daten nach dieser Spalte.
Einsatz von Excel-Funktionen:
Du kannst auch die Funktion SORTIEREN() in Excel 365 nutzen, um eine zufällige Reihenfolge zu erzeugen:
=SORTIEREN(A1:A6;ZUFALLSBEREICH(1;100))
Angenommen, du hast folgende Werte in den Zellen A1 bis A6:
| A |
|---|
| 10 |
| 20 |
| 30 |
| 40 |
| 50 |
| 60 |
Nach Ausführung des VBA-Codes oder der Sortiermethode könnte das Ergebnis in zufälliger Reihenfolge folgendermaßen aussehen:
| A |
|---|
| 30 |
| 10 |
| 50 |
| 20 |
| 60 |
| 40 |
1. Wie kann ich die Größe des Arrays anpassen?
Ändere einfach den Bereich in der Zeile Set rngall = Range("A1:A6") auf die gewünschte Größe.
2. Funktioniert das auch in Excel Online?
VBA wird in Excel Online nicht unterstützt. Für eine Online-Lösung musst du die Funktion mit Zufallszahlen und Sortierung verwenden.
3. Was, wenn ich Duplikate in meinem Array habe?
Die vorgeschlagene Methode berücksichtigt keine Duplikate. Wenn Duplikate vorhanden sind, kann die Zufallsverteilung ungleichmäßig sein. Du könntest eine zusätzliche Logik einbauen, um dies zu handhaben.