Ich suche nach einer Möglichkeit, eine Zufallszahl einmal in Excel zu berechnen. So berechnet es das erste Mal, dass es aufgerufen wird, aber dann ändert es sich nicht danach.
Wenn ich zum Beispiel in B1 RANDONCE(A1)
so etwas hätte, würde ich beim ersten Mal, wenn ich einen Wert in A1 schreibe, einen zufälligen Wert berechnen, aber dann würde es sich nicht wieder ändern. Oder zumindest nicht bis ich A1 wieder geändert habe.
Ich möchte dies tun, ohne B1 manuell zu replizieren, um es von einer Formel zu einem Wert wie beschrieben zu machen hier . Die Verwendung von Makros ist in Ordnung.
Sie benötigen eine UDF mit Speicher, damit sie weiß, ob sich die Zelle geändert hat
Diese benutzerdefinierte Funktion gibt einen neuen zufälligen Wert zurück, wenn sich der aufgerufene Aufruf ändert, andernfalls gibt sie den letzten zufälligen Wert (dh keine Änderung) zurück Geben Sie auch leer zurück, wenn die Quellzelle leer ist (möglicherweise oder möglicherweise nicht das, was Sie benötigen?)
Hinweis: Es besteht das Problem, dass die Static
-Werte beim Schließen des Blattes verloren gehen. Daher ändert sich der Wert jedes Mal, wenn das Blatt geöffnet wird.
Ich denke, ich habe einen viel einfacheren Weg, dies zu tun. Vervollständigen Sie Ihre Tabelle und wenden Sie dann die Funktion = RANDBETWEEN für diese Zahlenspalte an. Dann mach das:
Jetzt haben Sie die zuletzt erstellten Werte und sie sind statisch.
Sie können eine benutzerdefinierte Funktion (UDF) erstellen:
%Vor%In der Zelle, in der das Ergebnis angezeigt werden soll, können Sie Folgendes eingeben:
%Vor% Der Wert wird nur dann geändert (tatsächlich wird er neu berechnet), wenn sich der Quellwert ändert (aka A1
).
Sie können auch Zirkelverweise verwenden, um einen rein formelgesteuerten "Kippschalter" zu erstellen, der es dem Benutzer ermöglicht, einen Satz von Zufallszahlen zu berechnen und dann weitere Neuberechnungen auszuschalten. Rundschreiben-Referenzwarnungen deaktivieren , und dann lege diese Formel in Zelle B3:
%Vor%Wenn Zelle B1 "JA" enthält, generiert B3 eine neue Zufallszahl mit jeder Neuberechnung des Arbeitsblatts; Wenn B1 einen anderen Wert enthält, wird der aktuelle Wert von B3 beibehalten.
Dies ist natürlich nicht die beste Lösung, wenn Sie viele Zellen verfolgen müssen, aber wenn es nur A1 ist, die Sie nach Änderungen verfolgen müssen, können Sie ein Ereignis verwenden, um Ihre Funktion in B1 auszuführen Geben Sie dann am Ende den Wert an, den Sie erhalten haben. Ich finde dies die einfachste Lösung und es funktioniert so, wie Sie es benötigen.
Beispiel:
%Vor%Tags und Links excel excel-vba excel-formula