Calc - vielfach wiederholte Rechnung

Hallo Liste,

ich habe folgendes Problem in Calc:

  * eine aufwendige Rechnung
    soll vielfach mit geänderten Eingangswerten
    wiederholt werden;
  * die geänderten ca. 30 Eingangswerte
    liegen in einer Tabelle vor,
    auf die mittels "sverweis"
    zugegriffen werden kann;
  * das jeweilige Ergebnis soll
    nach jedem Rechendurchlauf als Zahl
    in nebeneinanderliegende Zellen geschrieben werden,
    (zur späteren grafischen Darstellung).

Kennt jemand ein Verfahren,
mit dem ich das (teil-)automatisieren kann?

Mit Dank im voraus
Jörn

Hallo icetex@web.de,

  * eine aufwendige Rechnung
    soll vielfach mit geänderten Eingangswerten
    wiederholt werden;

Und diese aufwändige Rechnung lässt sich nicht in eine Formel gießen?

  * die geänderten ca. 30 Eingangswerte
    liegen in einer Tabelle vor,
    auf die mittels "sverweis"
    zugegriffen werden kann;
  * das jeweilige Ergebnis soll
    nach jedem Rechendurchlauf als Zahl
    in nebeneinanderliegende Zellen geschrieben werden,
    (zur späteren grafischen Darstellung).

Kennt jemand ein Verfahren,
mit dem ich das (teil-)automatisieren kann?

Mit Dank im voraus
Jörn

.... und tschüss

            Franklin

Hallo Franklin,

Hallo icetex@web.de,

   * eine aufwendige Rechnung
     soll vielfach mit geänderten Eingangswerten
     wiederholt werden;

Und diese aufwändige Rechnung lässt sich nicht in eine Formel gießen?

Nein, keine Chance,
der Rechengang hat ca. 100 Zeilen

Hallo icetex@web.de,

Hallo icetex@web.de,

   * eine aufwendige Rechnung
     soll vielfach mit geänderten Eingangswerten
     wiederholt werden;

Und diese aufwändige Rechnung lässt sich nicht in eine Formel gießen?

Nein, keine Chance,
der Rechengang hat ca. 100 Zeilen

Hmm, und auch als benutzerdefinierte Funktion lassen sich diese 100
Zeilen nicht definieren?

.... und tschüss

            Franklin

Hallo, Jörn!

ich habe folgendes Problem in Calc:

* eine aufwendige Rechnung soll vielfach mit geänderten
Eingangswerten wiederholt werden; * die geänderten ca. 30
Eingangswerte liegen in einer Tabelle vor, auf die mittels "sverweis"
zugegriffen werden kann; * das jeweilige Ergebnis soll nach jedem
Rechendurchlauf als Zahl in nebeneinanderliegende Zellen geschrieben
werden, (zur späteren grafischen Darstellung).

Kennt jemand ein Verfahren, mit dem ich das (teil-)automatisieren
kann?

Indem man die Formeln alle in einer Zeile nebeneinander (oder in einer
Spalte untereinander) eingibt, beginnend mit dem Eingangswert, und
anschließend die ganze Zeile (oder Spalte) kopiert. Beim Kopieren werden
die Formeln (zumindest wo keine absoluten Zellbezüge verwendet werden)
automatisch angepasst. Dann erhält man die Endwerte alle untereinander
(bzw. nebeneinander) und kann daraus ein Diagramm erstellen.

Schema:

Eingabewert | Formel 1 | Formel 2 | ... | Ausgabewert

Anschließend ganze Zeile kopieren und die Eingabewerte abändern.

Hallo Franklin,

Hallo icetex@web.de,

Hallo icetex@web.de,

    * eine aufwendige Rechnung
      soll vielfach mit geänderten Eingangswerten
      wiederholt werden;

Und diese aufwändige Rechnung lässt sich nicht in eine Formel gießen?

Nein, keine Chance,
der Rechengang hat ca. 100 Zeilen

Hmm, und auch als benutzerdefinierte Funktion lassen sich diese 100
Zeilen nicht definieren?

Die Zusammenhänge sind zu kompliziert:
die momentane Tabelle belegt 2185 Zellen (inkl. Kommentare),
in denen die 31 Variablen (nicht 30) mit vielen Konstanten
verrechnet werden, anschliessend werden Wichtungen vorgenommen,
Additionen und weitere Rechnungen.

Wichtig ist, dass ich daran später wahrscheinlich Änderungen
vornehmen muss.

Mir wäre schon damit gedient,
wenn ich eine Funktion hätte (bzw. ein Makro),
mit der/dem ich Ergebnis-Datensätze definiert
in eine andere Tabelle schreiben könnte.

Mit freundlichen Grüßen
Jörn

Hallo Christian,

vielen Dank für Deine Antworten:
die ersten beiden Vorschläge kommen
wegen der Komplexität der Tabelle nicht in Frage

… Eine andere Möglichkeit wäre, mit einer Iteration zu arbeiten, d.h. eine

Zelle hochzählen zu lassen, mit SVERWEIS den Eingabewert einzulesen und
den Ausgabewert (z.B. über WENN) wieder in der Tabelle zusammenzuführen.
Nach dem vollständigen Durchlaufen der Iteration kannst du dann aus den
gesammelten Werten das Diagramm erstellen.

Gruß,
Christian.

aber der Vorschlag mit der Iteration scheint mir möglich.
In der LO-Hilfe finde ich aber nichts dazu.
Hast Du vielleicht einen Tipp
oder kannst Du mir die Vorgehensweise konkreter erläutern?

Mit freundlichen Grüßen
Jörn

Hallo, Jörn!

vielen Dank für Deine Antworten: die ersten beiden Vorschläge kommen
wegen der Komplexität der Tabelle nicht in Frage

… Eine andere Möglichkeit wäre, mit einer Iteration zu arbeiten,
d.h. eine

Zelle hochzählen zu lassen, mit SVERWEIS den Eingabewert
einzulesen und den Ausgabewert (z.B. über WENN) wieder in der
Tabelle zusammenzuführen. Nach dem vollständigen Durchlaufen der
Iteration kannst du dann aus den gesammelten Werten das Diagramm
erstellen.

aber der Vorschlag mit der Iteration scheint mir möglich. In der
LO-Hilfe finde ich aber nichts dazu.

Sieh mal unter "Berechnen;zirkuläre Bezüge (Calc)" nach, da findest du
einen groben Überblick über die Einstellungen der Optionen:

Iteration aktivieren, Schritte auf 1 setzen (dann kannst du anschließend
die Berechnung jedes Wertes verfolgen) und Min. Änderungswert ggf. anpassen.

(Hinweis: Funktionierte bei mir eben nur, wenn ich Min. Änderungswert
auf 1 oder größer gesetzt habe, bei Werten unter 1 bekam ich einen
Fehler "Err:523". Grund mir bisher nicht ersichtlich.)

Hast Du vielleicht einen Tipp oder kannst Du mir die Vorgehensweise
konkreter erläutern?

In zwei Zellen (ich nehme mal A1 und B1) eine Schleife bauen, die auf
sich auf sich selbst bezieht, wobei A1 zum Starten des Zählers dient und
B1 der Zähler selbst ist. In A1 trägst du zunächst eine "0" ein, die du
später durch eine "1" ersetzt, um den Zähler zu starten. In B1 kommt z.B.:

=WENN(A1=1;B1+1;0)

(Hinweis: Ein Test bei mir hat eben immer dazu geführt, dass der Zähler
bei jedem Schritt um 2 erhöhte, könnte man dadurch umgehen, dass man um
0,5 erhöht. Grund bisher unbekannt)

Eine Neuberechnung (dass der Zähler eins weiter zählt) erreichst du mit
Strg+Umschalt+F9.

Dann liest du mit SVERWEIS den jeweiligen Anfangswert in die Tabelle ein.

Angenommen das Ergebnis wird jetzt in Zelle C100 der "Tabelle2"
ausgegeben. Dann ergänzt du jetzt in "Tabelle1" (der Tabelle mit den
Anfangswerten, in der in A1 bis A30 die Zahlen 1 bis 30 und in B1 bis
B30 die Anfangswerte stehen) in C1 die Formel:

=WENN(Tabelle2.B$1=A1;Tabelle2.C$100;C1)

Die Zelle kopierst du dann in C2 bis C30, die Formel wird automatisch
angepasst, wobei Tabelle2.B$1 und Tabelle2.C$100 absolute Bezüge sind
und unverändert bleiben.

Wenn du die Ergebnisse mit veränderten Anfangswerten später erneut
berechnen lassen möchtest, kann es sinnvoll sein, die berechneten Werte
wieder zu löschen. In dem Fall wäre folgende angepasst Formel sinnvoll:

=WENN(Tabelle2.B$1=A1;Tabelle2.C$100;WENN(Tabelle2.B$1<A1;"x";C1))

Für "x" kannst du jeden beliebigen Platzhalter wählen. Der bleibt so
lange stehen, bis ein Wert berechnet wurde und dieser übernommen werden
kann.

Hallo Christian,

vielen Dank, ich bin schon sehr viel weiter,
allerdings: an einer Stelle hapert's noch:

Angenommen das Ergebnis wird jetzt in Zelle C100 der "Tabelle2"
ausgegeben. Dann ergänzt du jetzt in "Tabelle1" (der Tabelle mit den
Anfangswerten, in der in A1 bis A30 die Zahlen 1 bis 30 und in B1 bis
B30 die Anfangswerte stehen) in C1 die Formel:

=WENN(Tabelle2.B$1=A1;Tabelle2.C$100;C1)

Wenn ich diese Formel in C1 einfüge,
wird zunächst das richtige Ergebnis angezeigt.

Ist allerdings die Bedingung B$1=A1
nicht mehr erfüllt,
erhalte ich in C1 die Fehlermeldung "Err:522".

Mit freundlichen Grüßen
Jörn

Hallo Christian,

…. Fehlalarm
ich hatte beim Experimentieren die Iteration
ausgeschaltet, deswegen klappte es nicht.
Jetzt ist alles in Ordnung.
Ergebnis bleibt stehen, wenn Bedingung geändert wird.

Vielen Dank nochmal

Jörn

Hallo,

ich habe folgendes Problem in Calc:

   * eine aufwendige Rechnung
     soll vielfach mit geänderten Eingangswerten
     wiederholt werden;
   * die geänderten ca. 30 Eingangswerte
     liegen in einer Tabelle vor,
     auf die mittels "sverweis"
     zugegriffen werden kann;
   * das jeweilige Ergebnis soll
     nach jedem Rechendurchlauf als Zahl
     in nebeneinanderliegende Zellen geschrieben werden,
     (zur späteren grafischen Darstellung).

klingt mir eher nach einer Aufgabe für GNU Octave oder Scilab.
Dort ist das quasi eine Standardaufgabe.

Mit Dank im voraus
Jörn

Tom