Frage von RoeCat, 53

Wörter mit unterschiedlicher Wahrscheinlichkeit auslosen?

Hallo!

Gibt es irgendein Programm oder eine andere Möglichkeit, aus z.B. 3 Wörtern eins auszulosen, während sie alle unterschiedliche Wahrscheinlichkeiten haben? Sagen wir mal Wort A tritt zu 30% auf, Wort B zu 10% und Wort C zu 60%. Und daraus wird dann entsprechend der Wahrscheinlichkeit ein Wort ausgelost. Ich habe im Internet bisher nur Seiten gefunden, die die Wörter mit der gleichen Wahrscheinlichkeit auslosen. Mit Excel kenne ich mich leider gar nicht aus, anscheinend soll das damit möglich sein, ich wüsste aber gar nicht, wie ich das eingeben sollte.

LG und Danke!

Expertenantwort
von Iamiam, Community-Experte für Excel, 23

am kürzesten:

=VERWEIS(ZUFALLSZAHL()*100;{0;30;40};{"WortA";"WortB";"WortC"})

Anstatt der {Vektoren} können auch Zellbereiche (vermutlich nur einzeilige bzw einspaltige) stehen, aber die Zahlen des ersten Vektors müssen steigend geordnet sein!

Wort C ergibt sich aus der Differenz von 40 und 100, kannst natürlich auch {0;30;90} schreiben und gleichzeitig Wort B und C vertauschen!

Kommentar von Iamiam ,

man kann sich sogar Ganzzahl() bzw. Kürzen(xx;0) sparen!

Trotzdem @ Jackie: DH! Hab jetzt erst festgestellt, dass praktisch das gleiche im Codefeld bei Dir "versteckt" war!

Expertenantwort
von Oubyi, Community-Experte für Excel, 31

Schreibe in A1:A3 jeweils das Wort A, in A4 das Wort B und in A5:A10 das Wort C.
In z.B. B1 diese Formel:

=INDEX($A$1:$A$10;ZUFALLSBEREICH(1;10))

Oder Du schreibst das ganze direkt in die Formel, z.B.:

=WAHL(ZUFALLSBEREICH(1;10);"Wort A";"Wort A";"Wort A";"Wort B";"Wort C";"Wort C";"Wort C";"Wort C";"Wort C";"Wort C")

Wäre das eine Lösung für Dich?

Kommentar von Jackie251 ,

Ich würde es so Optimieren

=INDEX(A1:A3;VERGLEICH(ZUFALLSBEREICH(0;100);B1:B3;1);1)

wobei in A1:A3 die Werte A bis C stehen und im Bereich B1:B3 die jeweilige Untergrenze der Wahrscheinlichkeit
Also A fängt bei 0 und => Untergrenze 0
und geht bis 30, daher ist die Untergrenze von B = 30
B geht dann von 30 bis 40, daher ist die Untergrenze von C = 40

Es ginge auch ohne Eingangsmatrix, wenn diese nicht variabel sein soll

=INDEX({"A";"B";"C"};VERGLEICH(ZUFALLSBEREICH(0;100);{0;30;40};1);1)
Kommentar von RoeCat ,

Excel zeigt mir für ZUFALLSBEREICH immer einen #NAME? Fehler an. Damit wird die ganze Formel ungültig. Woran kann das liegen?

Kommentar von Oubyi ,

Da liegt daran, dass Du ein veraltetes Excel hast, wahrscheinlich 2003.
Das ist also inzwischen über 13 Jahre alt und damit rechnet man hier erst mal nicht.
Du solltest also bei weiteren Excel-Fragen immer erwähnen, dass Du noch mit Excel 2003 arbeitest, denn ab Excel 2010 sind viele neue Funktionen hinzu gekommen, wie z.B. ZUFALLSBEREICH.
Jetzt zur Lösung des Problems:

Ersetze diesen Teil der Formeln:
ZUFALLSBEREICH(1;10)
hierdurch:
=(KÜRZEN(ZUFALLSZAHL()*10;0)+1)

Klappt es?

Kommentar von RoeCat ,

Entschuldige die verspätete Antwort. Es klappt jetzt wunderbar, vielen Dank!

Kommentar von Oubyi ,

Gern geschehen

Kommentar von Oubyi ,

@Jackie:DH!
Sehr schöne Lösung.
Merke ich mir.

Kommentar von Jackie251 ,

vielen dank für das lob

Antwort
von DerSchokokeks64, 38

Wenn du es ganz einfach haben willst könntest du 3 Mal Wort A, 1 Mal B und 6 Mal Wort C eintragen, das hat den selben Effekt. Ansonsten kenn ich da nix, außer eben selbst schreiben oder eben wie oben, wenn das geht.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten