Autor Thema: [Excel 2013] Kann man eine Formel statt dem Ergebnis davon rüberziehen?  (Gelesen 2256 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline Space Pirate Hondo

  • Famous Hero
  • ******
  • Beiträge: 2.057
  • Geschlecht: Männlich
  • Username: Kingpin000
Hallo zusammen,
ich bastel grade für meine The Expanse Kampagne eine Tabelle, mit der man Felsplaneten/Monde generieren kann, inkl. Größe, Schwerkraft, Atmosphäre usw (die Vorlage habe ich mir aus dem WOIN NEW Buch geklaut). Auf jeden Fall habe ich die Würfeltabellen auf eine Tabellenseite gepackt und die Erzeugungsliste (mit SVERWEISen) auf eine andere.

Jetzt hat aber jede Größenkategorie eigene Formeln, um die gesuchten Werte zu erzeugen. Diese Formeln, werden jedoch von Excel schon im Vorwege ausgerechnet und der SVERWEIS auf der anderen Seite zieht sich nur die Ergebnisse, wodurch in der Liste dann identische Werte bei mehreren Planeten stehen, wenn die Größenkategorie die gleiche ist.

Hat da einer nen Tipp?

Zusatzfrage: Kann man ZUFALLBEREICH dazu bringen nur einmal eine Zahl zu erzeugen und nicht jedes Mal neu rechnet, wenn man irgendwo Enter drückt?

Offline Sarakin

  • Adventurer
  • ****
  • Beiträge: 936
  • Geschlecht: Männlich
  • Username: Sarakin
Bei der eigentlichen Frage hab ich jetzt nicht ganz verstanden, wie die Formeln aussehen... kannst du das noch etwas erläutern?

Zu der Zufallsbereichs-Frage:
Es gibt grundsätzlich zwei Möglichkeiten.
1. Sobald die Zufallsfunktion eine Zahl ausgegeben hat, das Ergebnis als Zellwert nehmen.
2. Den Aufruf in einer Makro-Funktion kapseln (siehe hier)
Don't lie to me! I'm totally using Sense Motive on you!

Offline Imion

  • Legend
  • *******
  • GURPShead
  • Beiträge: 4.866
  • Username: Imion
Hallo zusammen,
ich bastel grade für meine The Expanse Kampagne eine Tabelle, mit der man Felsplaneten/Monde generieren kann, inkl. Größe, Schwerkraft, Atmosphäre usw (die Vorlage habe ich mir aus dem WOIN NEW Buch geklaut). Auf jeden Fall habe ich die Würfeltabellen auf eine Tabellenseite gepackt und die Erzeugungsliste (mit SVERWEISen) auf eine andere.

Jetzt hat aber jede Größenkategorie eigene Formeln, um die gesuchten Werte zu erzeugen. Diese Formeln, werden jedoch von Excel schon im Vorwege ausgerechnet und der SVERWEIS auf der anderen Seite zieht sich nur die Ergebnisse, wodurch in der Liste dann identische Werte bei mehreren Planeten stehen, wenn die Größenkategorie die gleiche ist.

Hat da einer nen Tipp?

Wenn man nicht mit VBasic/Makros arbeiten will dann kann man zB mehrere Zellen mit der Generierungsformel einfügen und dann nach zB Orbitalreihenfolge des Planeten ansprechen.

Zitat
Zusatzfrage: Kann man ZUFALLBEREICH dazu bringen nur einmal eine Zahl zu erzeugen und nicht jedes Mal neu rechnet, wenn man irgendwo Enter drückt?

Excel-Optionen/Formeln/Arbeitsmappenberechnung auf Manuell.
If the internet has shown us anything... anything... it has shown us that there is no such thing as "too batshit crazy to operate a computer."

Everybody's a book of blood. Wherever we're opened, we're red.

Außerirdische sind nicht rechtsfähige, bewegliche, herrenlose Sachen. Wer sie findet und mitnimmt darf sie behalten.

Offline Space Pirate Hondo

  • Famous Hero
  • ******
  • Beiträge: 2.057
  • Geschlecht: Männlich
  • Username: Kingpin000
Bei der eigentlichen Frage hab ich jetzt nicht ganz verstanden, wie die Formeln aussehen... kannst du das noch etwas erläutern?

Die Formeln funktionieren wunderbar, sie werden aber sie werden im Vorwege schon ausgerechnet, sodass ich da nur noch die Endwerte stehen habe. Sie sollen erst ausgelöst werden, wenn ich sie in meine Erzeugungstabelle ziehe.

Offline K!aus

  • Fashion-Police
  • Famous Hero
  • ******
  • Beiträge: 3.785
  • Geschlecht: Männlich
  • Username: Crazy_DM
Hi,
Jetzt hat aber jede Größenkategorie eigene Formeln, um die gesuchten Werte zu erzeugen. Diese Formeln, werden jedoch von Excel schon im Vorwege ausgerechnet und der SVERWEIS auf der anderen Seite zieht sich nur die Ergebnisse, wodurch in der Liste dann identische Werte bei mehreren Planeten stehen, wenn die Größenkategorie die gleiche ist.

Hat da einer nen Tipp?
Ich verstehe das Problem nicht so recht. Wenn mehrere Planeten von der selben Größenordnung sind, sollten sie dann nicht "gleich" sein?

Ich vermute es gibt für jede Größenkartegorie aber verschiedene Möglichkeiten, z.B. kann ein Planet der Größe M einen Radius von r_1 bis r_n  haben und würde dennoch als M klassifiziert werden, oder? Dann müsstest du wie die anderen aufzeigen aus den Eigenschaften (zufällig?) auswählen, oder?  :think:
GURPS Deathwatch
[FFG] Star Wars Jedi Ritter, Rebellen
Mein biete Thread - schau doch mal rein. :)

Offline Space Pirate Hondo

  • Famous Hero
  • ******
  • Beiträge: 2.057
  • Geschlecht: Männlich
  • Username: Kingpin000
Ich vermute es gibt für jede Größenkartegorie aber verschiedene Möglichkeiten, z.B. kann ein Planet der Größe M einen Radius von r_1 bis r_n  haben und würde dennoch als M klassifiziert werden, oder? Dann müsstest du wie die anderen aufzeigen aus den Eigenschaften (zufällig?) auswählen, oder?  :think:

Genau, z.B. die Größe hat einen bestimmen ZUFALLSBEREICH, der sich nicht mit den anderen Größenkategorien überschneidet. Er soll aber die Formel ziehen und sie dann auslösen. Standardmäíg rechnet Excel ja alles gleich aus, was man da eingibt.

Offline K!aus

  • Fashion-Police
  • Famous Hero
  • ******
  • Beiträge: 3.785
  • Geschlecht: Männlich
  • Username: Crazy_DM
Genau, z.B. die Größe hat einen bestimmen ZUFALLSBEREICH, der sich nicht mit den anderen Größenkategorien überschneidet. Er soll aber die Formel ziehen und sie dann auslösen. Standardmäíg rechnet Excel ja alles gleich aus, was man da eingibt.
Vielleicht stellst du einfach mal deine Excel Tabelle (oder einen Ausschnitt) irgendwo bereit?

Ich glaube ja nicht, dass du eine "Formel ziehen" willst, unter der Annahme, dass diese über alle Planetentypen hinweg gleich ist - sondern ja nach Planetentyp der Formel einen anderen (zufälligen) Eingabebereich zur Verfügung stellen willst. :)
GURPS Deathwatch
[FFG] Star Wars Jedi Ritter, Rebellen
Mein biete Thread - schau doch mal rein. :)

Offline Space Pirate Hondo

  • Famous Hero
  • ******
  • Beiträge: 2.057
  • Geschlecht: Männlich
  • Username: Kingpin000

Offline Sarakin

  • Adventurer
  • ****
  • Beiträge: 936
  • Geschlecht: Männlich
  • Username: Sarakin
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.

[gelöscht durch Administrator]
Don't lie to me! I'm totally using Sense Motive on you!

Offline K!aus

  • Fashion-Police
  • Famous Hero
  • ******
  • Beiträge: 3.785
  • Geschlecht: Männlich
  • Username: Crazy_DM
Okay.  :think:

Ich hatte tatsächlich mit einem Makro begonnen, den ich an einen Button hefte (LibreOffice Notation):
Sub GenerateRandomNumber()

ThisWorkbook.Worksheets("Data").Activate

Range("C11").Value = Rnd

End Sub

Dann kannst du z.B. den Radius für Dwarf wie folgt transformieren =300 + ROUND(C11*1500;0) und jedes Mal wenn du dir per Klick eine Zufallszahl erzeugen lässt, kriegst du einen neuen Radius. :)
« Letzte Änderung: 29.12.2019 | 16:47 von K!aus »
GURPS Deathwatch
[FFG] Star Wars Jedi Ritter, Rebellen
Mein biete Thread - schau doch mal rein. :)

Offline Space Pirate Hondo

  • Famous Hero
  • ******
  • Beiträge: 2.057
  • Geschlecht: Männlich
  • Username: Kingpin000
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.

Da steht, dass ich die Datei nicht als Archiv öffnen kann.

Offline Sarakin

  • Adventurer
  • ****
  • Beiträge: 936
  • Geschlecht: Männlich
  • Username: Sarakin
Hm... komisch. Ist ein normales rar... Ich stell's nachher, wenn ich wieder zu Hause bin, nochmal als zip ein.
Don't lie to me! I'm totally using Sense Motive on you!

Offline Sarakin

  • Adventurer
  • ****
  • Beiträge: 936
  • Geschlecht: Männlich
  • Username: Sarakin
So, jetzt nochmal als Zip.

[gelöscht durch Administrator]
Don't lie to me! I'm totally using Sense Motive on you!

Offline Space Pirate Hondo

  • Famous Hero
  • ******
  • Beiträge: 2.057
  • Geschlecht: Männlich
  • Username: Kingpin000
So, jetzt nochmal als Zip.

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...
« Letzte Änderung: 29.12.2019 | 20:10 von Kingpin000 »

Offline Sarakin

  • Adventurer
  • ****
  • Beiträge: 936
  • Geschlecht: Männlich
  • Username: 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:
=ZUFALLSBEREICH(300;1800)Nachher:
RANDBETWEEN(300,1800)
- auf dem Creation-Sheet um die entsprechenden SVERWEIS-Formeln ein EVAL drumrumsetzen. Siehe die beiden ersten Spalten.

Beispiel am Radius in Zeile 2:
Vorher:
=SVERWEIS(B2;Data!$A$1:$C$7;3;FALSCH)Nachher:
=EVAL(SVERWEIS(B2;Data!$A$1:$C$7;3;FALSCH))
Falls es die Funktion im VBA-Editor - aus welchem Grund auch immer - nicht mitgenommen hat:
Sie sieht folgendermaßen aus:
Function Eval(s)
    Application.Volatile
    Eval = Evaluate("=" & s)
End Function
« Letzte Änderung: 29.12.2019 | 20:10 von Sarakin »
Don't lie to me! I'm totally using Sense Motive on you!

Offline Space Pirate Hondo

  • Famous Hero
  • ******
  • Beiträge: 2.057
  • Geschlecht: Männlich
  • Username: Kingpin000
Hat jetzt geklappt, aber ich habe noch ein paar Formeln, wo ZUFALLSBEREICH eingebaut ist. Da wird der neue Ersatz nicht akzeptiert...

Offline Sarakin

  • Adventurer
  • ****
  • Beiträge: 936
  • Geschlecht: Männlich
  • Username: Sarakin
Welche Zellen?
Don't lie to me! I'm totally using Sense Motive on you!

Offline Space Pirate Hondo

  • Famous Hero
  • ******
  • Beiträge: 2.057
  • Geschlecht: Männlich
  • Username: Kingpin000
Welche Zellen?

Data G4-7, J2-12

Creation H2, J2, L2, K2
« Letzte Änderung: 29.12.2019 | 23:47 von Kingpin000 »

Offline Sarakin

  • Adventurer
  • ****
  • Beiträge: 936
  • Geschlecht: Männlich
  • Username: Sarakin
Data G4+G5
IF(RANDBETWEEN(1,6)=1,"Yes","No")Data G6
IF(RANDBETWEEN(1,6)>=3,"Yes","No")Data G7
IF(RANDBETWEEN(1,6)>=4,"Yes","No")
Data J2-J12
RANDBETWEEN(3,18)
SUM(RANDBETWEEN(2,12),3)
RANDBETWEEN(3,18)
RANDBETWEEN(3,18)
SUM(RANDBETWEEN(2,12),3)
RANDBETWEEN(2,12)
RANDBETWEEN(2,12)
RANDBETWEEN(3,18)
SUM(RANDBETWEEN(2,12),5)
SUM(RANDBETWEEN(2,12),5)
SUM(RANDBETWEEN(2,12),3)

Creation H2
=EVAL(SVERWEIS(B2;Data!$A$1:$G$7;7;FALSCH))Creation K2
=SVERWEIS(WENN(E2>=1,6;SUMME(EVAL(SVERWEIS(I2;Data!$H$2:$J$12;3;FALSCH));2);WENN(E2<=0,6;SUMME(EVAL(SVERWEIS(I2;Data!$H$2:$J$12;3;FALSCH));-2);EVAL(SVERWEIS(I2;Data!$H$2:$J$12;3;FALSCH))));Data!$K$2:$L$21;2;FALSCH)
Creation J2 und L2 solltest du nicht anpassen müssen, da hier die Zufallsfunktion ja nicht in dem SVERWEIS-Bereich ist, sondern in der Formel in J2/L2 selbst. Die Anpassung muss immer dann gemacht werden, wenn du über SVERWEIS auf eine andere Zelle referenzieren willst, in der ein eine Zahl über eine andere Funktion - in unserem Fall Zufallsbereich - erzeugt wird.
« Letzte Änderung: 30.12.2019 | 00:03 von Sarakin »
Don't lie to me! I'm totally using Sense Motive on you!

Offline Space Pirate Hondo

  • Famous Hero
  • ******
  • Beiträge: 2.057
  • Geschlecht: Männlich
  • Username: Kingpin000
So, die Tabelle funktioniert jetzt wunderbar. Vielen Dank nochmal an Sarkin für die große Hilfe dabei!

Für die neugiergen Leser, habe ich die fertige Datei an diesen Post gehängt!

[gelöscht durch Administrator]