Ergebnis per Zufallszahl bestimmen, mit Wahrscheinlichkeiten

BeneEdgar

Cadet 2nd Year
Registriert
Apr. 2021
Beiträge
19
Gude,
ich habe aktuell wieder ein Problem. Ich habe mir eine größere Formel aufgestellt. In den Zellen W2 bis AG2, insgesamt 11 Zellen, stehen bestimmte Namen. In AS2 will ich jetzt per Zufall einen dieser Namen haben. Dabei ist aber wichtig das ich einstellen kann das z.B. AF2 und AG2 eine höhere Wahrscheinlichkeit haben als W2. Eine Möglichkeit wäre in AS2 eine Zufallszahl berechnen zu lassen und dann in AT2 diese Zufallszahl durchlaufen zu lassen und zu schauen bei wem sie dann sagt er ist es, ähnlich wie beim SVerweis. Da ich aber noch einige Male unterschiedliche Namen berechnen lassen will würde das so sehr viel Platz einnehmen. Das alles in eine Zelle kommt fiel mir bisher sehr schwer, da ich dabei mehrmals Zufallszahl in der Zelle hätte und die immer neu berechnet wird, also in der Zelle selbst dann unterschiedliche Zufallszahlen sind.

Ziel insgesamt: Ich Versuche das ich eine Formel haben, die nur in eine Zelle muss und dann per Zufall verschiedene Namen aus spuckt mit verschiedenen Wahrscheinlichkeiten.

Danke schonmal für eure Hilfe, ich hoffe man versteht mein Anliegen. Ich weiß nicht ob es möglich ist, aber ich wollte es zumindest versuchen.
 
Bin mir nicht sicher ob ichs ganz richtig verstanden habe, aber ich denke eine Mischung aus INDEX() und ZUFALLSBEREICH() kann dich zum Ziel bringen.

Schaue mal hier:

Da fehlt dann nur die Gewichtung/WSK, aber die kannst du dann ja sicher selbst noch durch einfache Multiplikation mit einbauen.
 
Ähnliche Idee wie @Superior1337 bzw. dadurch noch erweiterbar/zu vereinfachen (habe da nur die genaue Code-Struktur mit Zelladressierungen nicht mehr im Kopf - Stichwort =SEQUENZ(...)
Zufallsbereich hat halt nur Ganzzahlige Werte, sodass du da evtl. zu Verschiebungen kommst (Grenzen bei Breite = 0 zB).
Ein anderer Ansatz ist, dass du jedem Namen eine Gewichtung mitgibst (zB in der Zelle darüber aber auch hart codebar) und dann mit "=Zufallszahl()*SUMME(Bereich_der_Gewichte)" eine Zahl daraus auswählst.
Den Abgleich mit dem Namen kannst du dann durch verschachtelte "=Wenn(..) machen, oder du baust noch eine Zeile ein, in der du die Gewichte von Anfang bis zur gewünschten Zelle aufaddierst und dann mit "=WVerweis(...)" abgleichst.
Und wie gesagt, mit INDEX, SEQUENZ, ... kannst du das auch irgendwie in eine einzelne Zelle packen.
SEQUENZ erzeugt dir die Matrix (wie eine for-Schleife) und mit INDEX kannst du dann die Zellen Adressieren.
Um etwas Schreibarbeit zu sparen, kann man (wie ich) auch mit =LET(...) eine Variable einführen, welche dann durchzählt. zB. =LET(x;SEQUENZ(1;5;1;3);Funktion_in_x) erstellt eine Matrix mit 1 Zeile, 5 Spalten, Startet bei x=1 und zählt in 3-er Schritten hoch.....aber das nur als Anregung dazu :cool_alt:
Codeschnipsel.png
Code:
//Zufallszahl im Bereich 0 bis SUMME
=ZUFALLSZAHL()*SUMME(A1:E1)

//WVerweis mit/auf Teilsummenzeile
=WVERWEIS(A5;A1:E3;3;WAHR)

//kombiniert in einen Befehl
=WVERWEIS(ZUFALLSZAHL()*SUMME(A1:E1);A1:E3;3;WAHR)

//...und als Wenn-Dann-Sonst (mit Variable z)
'=LET(z;ZUFALLSZAHL()*SUMME(A1:E1);WENN(z<=A1;A3;WENN(z<=SUMME(A1:B1);B3;WENN(z<=SUMME(A1:C1);C3;WENN(z<=SUMME(A1:D1);D3;WENN(z<=SUMME(A1:E1);E3))))))

Hoffe, da ist was passendes bei bzw trifft auf das Problem zu.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: aroxx und SaxnPaule
Zurück
Oben