Medien & Phantastik > Windows
[Excel 2013] Kann man eine Formel statt dem Ergebnis davon rüberziehen?
Space Pirate Hondo:
--- Zitat von: Sarakin am 29.12.2019 | 16:01 ---Ok, ich glaub, ich hab's.
Das Problem ist, dass die Zufallszahl einmalig erzeugt wird und die SVERWEISE dann auf diese eine Zufallszahl zurückgreifen.
Du müsstest also pro Aufruf die Funktion erneut aufrufen.
Es gibt eine Funktion =FORMELTEXT, die die Formel einer Zelle als Text zurückgibt. Den anderen Weg, also eine Formel als Text irgendwo definieren und dann diese Formel beispielsweise über einen SVERWEIS abhängig von anderen Werten aufrufen, gibt es meines Wissens out of the Box nach nicht.
Aber es gibt einen kleinen Workaround.
Ich hab im angehängten rar das Workbook als xslm angehängt. An der Endung sieht man, dass ich VBA-Code eingefügt habe. Und zwar gibt es in VBA eine Funktion namens EVALUATE, die einen Text als Formel interpretiert und das Ergebnis zurückgibt. Diese Funktion hab ich als neue Formel dem Workbook als EVAL bekanntgemacht, damit man sie als normale Formel im Format =EVAL(Bezug) nutzen kann. Den Code kann man sich über alt+F11 anschauen.
Kleiner Wermutstropfen: EVALUATE erwartet englische Formeln, also RANDBETWEEN statt ZUFALLSBEREICH, Kommata als Trenner statt Semikolons und Dezimal-Punkte statt Dezimal-Kommata. Ich hab's mal für die ersten beiden Spalten vorgemacht.
--- Ende Zitat ---
Da steht, dass ich die Datei nicht als Archiv öffnen kann.
Sarakin:
Hm... komisch. Ist ein normales rar... Ich stell's nachher, wenn ich wieder zu Hause bin, nochmal als zip ein.
Sarakin:
So, jetzt nochmal als Zip.
[gelöscht durch Administrator]
Space Pirate Hondo:
--- Zitat von: Sarakin am 29.12.2019 | 19:17 ---So, jetzt nochmal als Zip.
--- Ende Zitat ---
Also die ersten beiden Werte funktionieren jetzt wie gewünscht! :d Jedoch hatte ich versucht auf Rotation zu übertragen und zeigt er mir nur #Wert an. Ich kann auch nicht den Code sehen, sondern habe da nur leere Code-Blätter im VBA-Editior.
Edit: Hat doch geklappt. Wobei ich habe noch Formeln, wo ich ZUFALLSBEREICH mittendrin reingeschrieben habe. Da funktioniert das ersetzen leider nicht so gut...
Sarakin:
Im VBA-Editor musst du nichts mehr machen. Die Funktion ist fertig und muss nicht mehr angepasst werden.
Du musst zwei Sachen ändern:
- auf dem Data-Sheet musst du die deutschen durch die englischen Formeln ersetzen und das =-Zeichen vorne entfernen
Beispiel am Radius von der Dwarf-Größe:
Vorher:
--- Code: ---=ZUFALLSBEREICH(300;1800)
--- Ende Code ---
Nachher:
--- Code: ---RANDBETWEEN(300,1800)
--- Ende Code ---
- auf dem Creation-Sheet um die entsprechenden SVERWEIS-Formeln ein EVAL drumrumsetzen. Siehe die beiden ersten Spalten.
Beispiel am Radius in Zeile 2:
Vorher:
--- Code: ---=SVERWEIS(B2;Data!$A$1:$C$7;3;FALSCH)
--- Ende Code ---
Nachher:
--- Code: ---=EVAL(SVERWEIS(B2;Data!$A$1:$C$7;3;FALSCH))
--- Ende Code ---
Falls es die Funktion im VBA-Editor - aus welchem Grund auch immer - nicht mitgenommen hat:
Sie sieht folgendermaßen aus:
--- Code: ---Function Eval(s)
Application.Volatile
Eval = Evaluate("=" & s)
End Function
--- Ende Code ---
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln