OpenOffice: zufällige Zahl aus einer festen Reihe wählen lassen?
Ich möchte OpenOffice Calc eine zufällige Zahl aus einer von mir bestimmten Spalte mit - unterschiedlichen nichtzusammenhängenden- Zahlen wählen lassen. Das scheint mit Zufallszahl() und Zufallsbereich() nicht zu funktionieren.
Diese zufällig gewählten Zahlen sollen auch noch unter bestimmten verschiedenen Warscheinlichkeiten im Zufall erscheinen. .
Also z.B:
Zahl A: passiert doppelt so häufig wie Zahl B Zahl B: passiert halb so oft wie Zahl A Zahl C: passiert am seltesten.
Zufallszahlen also etwa . . . A A B A A B C A B A A A B C
Ist das möglich oder sprenge ich damit die Möglichkeiten des Programms? Diese Simulation wäre sehr nützlich. Ich würde mich freuen wenn mir jemand einen Weg zeigen könnte. Vielen Dank
2 Antworten
Bezugnehmend auf deinen Kommentar bei Oubyi (DH!): Irgendwo musst du festlegen, wie die 70 Werte gewichtet werden sollen. Wenn man so viele Werte hat, ist es besser, diesen tabellarisch einen Anteil zuzuweisen, dann braucht man keine Bandwurmformeln. Ich hab das mal beispielhaft hier dargestellt für 4 Werte http://fs5.directupload.net/images/user/170219/tz7g36rd.png
In Spalte A stehen die Werte, in B der jeweilige Anteil, der herauskommen soll. In C werden die Anteile addiert, wobei man hier die jeweilige Untergrenze braucht. Der erste Wert ist deswegen 0, der zweite (C3) ist =SUMME(B$2:B2) und wird nach unten kopiert.
In Spalte E wird mit =ZUFALLSZAHL() eine Zahl zwischen 0 und 1 erzeugt, bei mir als % formatiert.
In Spalte F wird der zugehörige Wert ermittelt mit der Formel
=INDEX($A$2:$A$5;VERGLEICH(E1;$C$2:$C$5;1))
In Spalte G und H habe ich dann lediglich nochmal die Werte aus Spalte F gezählt (ZÄHLENWENN).
Ich gehe mal von Excel aus, sollte aber auch in OO klappen.
Schreibe in Spalte A ab A1 z.B.:
A
A
A
A
B
B
C
Dann die Formel:
=INDEX($A$1:$A$7;ZUFALLSBEREICH(1;7))
Ich meine, da gab es auch noch etwas eleganteres, komme aber im Moment nicht drauf und finde es auch in meinem Archiv nicht.
Hier habe ich noch eine Hilfe dazu gefunden:
http://www.excelformeln.de/formeln.html?welcher=401
Sollte dann für Dich mit einem "Formel-Knallfrosch" so aussehen:
=INDEX({"C";"B";"A"};VERGLEICH(ZUFALLSZAHL();{0;0,1;0,4}))
Verteilung wie oben 60%, 30%, 10%.
Danke. Das sind wirklich gute Tipps. Leider sind A, B und C bei mir 70 verschiedene Prozentsätze mit 5 Stellen nach dem Komma.
Zwar lässt sich das sicher trotzem in eine gewaltige Formelpacken, aber ich muss wohl erst genauer die Funktionen INDEX und Vergleich kennen lernen. Danke für die Mühe!
Die Frage ist auch, was Priorität hat: die vorgegebene statistische Verteilung oder der gewichtete, aber pure Zufall: ich hab mit dieser Formel bei 3 "Probeknallern" unter anderem mal eine Verteilung von 40% A, 50% B und 10% C bekommen (20 Zellen) (hab aber noch keine Lösung dafür gefunden)
Mir ist eingefallen, dass OpenOffice bei INDEX-Formeln weniger tolerant ist als Excel, deswegen die angepasste Formel für F1 mit zusätzlichem Spaltenindex:
=INDEX($A$2:$A$5;VERGLEICH(E1;$C$2:$C$5;1);1)