
Does anyone know if it's possible to replace the probability reference in a RAND command with a cell reference to another worksheet?
I am using the basic formula below for weighted randomised text selection. The idea is that I can just drag the cells down to fill out a sheet.
On another sheet, I have created a calculator that adds up the cumulative probability for each entry.
As I have to manually edit the formula to update the probabilities. What would be a time saver is if I could replace the probabilities in the curly brackets with the cell reference from the calculator sheet – ie, {0,Calc!C3,Calc!C4,Calc!C5, etc…
Is that possible? I've tried, but just got errors.
Bitte beachten Sie: Ich verfüge nicht über fortgeschrittene Excel-Kenntnisse. Dies ist das Komplizierteste, was ich je in Excel versucht habe.
Der Code
=CHOOSE(MATCH(RAND(),{0,0.05,0.15,0.3,0.54,0.74,0.79,0.89,0.99,1}),"One","Two","Three","Four","Five","Six","Seven","Eight","Nine")
Die Arbeitsmappe– dies ist der Dropbox-Link zum eigentlichen Arbeitsblatt. Es ist geekig: Ich habe es für das Rollenspiel Werewolf The Apocalypse gemacht.
Antwort1
Ich kann Ihre Frage am besten nachvollziehen und schlage folgende Lösung vor. Überprüfen Sie sie vor Ort und bestätigen Sie, ob sie Ihren Anforderungen entspricht.
Ich sehe, dass Sie die Wahrscheinlichkeit als Bereich betrachten, etwa 0 – 0,4, 0,4 – 0,65 usw. Der letzte Wert sollte automatisch 1 sein, da RAND auch eine Zahl zwischen 0 und <1 generiert.
Erstellen Sie in Ihrem Blatt beispielsweise „Wahrscheinlichkeiten einstufen“ eine Tabelle wie diese. Ich hoffe, das ist selbsterklärend. Sie beginnen mit 0 oben und beziehen sich dann in den Zellen darunter jeweils auf den vorherigen Wert in der ursprünglichen Wahrscheinlichkeitsspalte.
Geben Sie in Ihrem Hauptblatt, z. B. „Sept“, die folgende Formel in die Zellen D2 und darunter ein.
=CHOOSE(MATCH(RAND(),TRANSPOSE('Rank probabilities'!$D$2:$D$7)),"1","2","3","4","5","6")
Drücken Sie nun in der Formelleiste CTRL+ SHIFT+, ENTERum eine Array-Formel zu erstellen. Die Formel wird nun in geschweifte Klammern eingeschlossen, um anzuzeigen, dass es sich um eine Array-Formel handelt.
Kopieren Sie es nach unten entlang der gewünschten Zeilen und drücken Sie dann F9, um manuell zu berechnen. TRANSPOSE transponiert die vertikale Wahrscheinlichkeitsspalte in ein horizontales Array und ersetzt Ihr manuelles Zahlenarray in Ihrer Formel.
Sehen Sie sich den untenstehenden Screenshot von „Screen to GIF“ an. Testen Sie ihn selbst und bestätigen Sie, ob es für Sie funktioniert. In diesem Beispiel wird nur die Spalte D des Blatts „Sept“ geändert, um den Formelansatz widerzuspiegeln. Sie können dasselbe auch für andere Fälle wiederholen.