Komplexe Formeln in RagTime effizient erstellen und testen

09.06.2016

 

Wie können in RagTime komplexe Formeln erstellt und effizient getestet werden, ohne dass dabei der Überblick verloren geht? Eine einfache Lösung dafür ist es, die komplexen Formeln „aufzubrechen“ und in mehrere kleinere Formeln zu zerlegen. Durch dieses Vorgehen bleibt die Formel, die nun in kleinere Funktionseinheiten aufgeteilt ist, besser zu durchschauen. Ein weiterer Vorteil eröffnet sich beim Debuggen, denn auf diese Weise erhält man am Ende einer jeden Funktionseinheit ein Zwischenergebnis.

 

Die fiktive Aufgabe

Anhand einer Übungsaufgabe möchten wir das einmal demonstrieren. In einer Eingabezeile sollen ein Datum und ein Kommentar eingegeben werden, die auf Knopfdruck in die erste freie Zeile einer Tabelle übernommen werden. Die Reihenfolge der Einträge ist nicht zwingend chronologisch. In einer zweiten Tabelle soll eine Liste aller Daten erstellt werden, die zwischen dem ältesten und dem jüngsten Datum in der ersten Tabelle liegen, aber in dieser nicht vorkommen. Das zugehörige RagTime-Rechenblatt zeigt die Lösung und soll als Referenz für die verschiedenen Schritte dienen, die unten aufgeführt sind.

 

Die Krux mit komplexen Formeln

In RagTime kann einem Knopf eine Formel unterlegt werden, die auf Knopfdruck ausgeführt werden soll. Das Formelfeld in der Knopf-Info ist jedoch so klein, dass eine Formel, wie sie hier erforderlich wäre, in ihrer ganzen Länge unmöglich dargestellt werden kann. Komplexe, verschachtelte Formeln sind sowieso äußerst schwierig zu erstellen und noch schwieriger zu ändern und zu testen. Statt eine komplexe Formel zu schreiben wird der Vorgang deshalb in einzelne Schritte zerlegt, wobei der Knopf nur den ersten Schritt anstößt, und danach jeder Schritt den nächsten. So lässt sich Schritt an Schritt reihen und bei jedem neu angefügten Schritt testen, ob er das Gewünschte liefert.

 

Separates Rechenblatt für Formeln und Hilfsdaten

Bei der hier vorgeschlagenen Vorgehensweise liegen alle Formeln und Hilfsdaten in einem separaten Rechenblatt. Damit wird das Risiko ausgeschlossen, dass beim Löschen von Daten auch Formeln gelöscht oder Referenzen in Formeln ungültig werden.

 

Die Formeln liegen in Spalte A des Formel-Rechenblatts. Jede Formel führt nur einen Schritt auf dem Lösungsweg aus. Das Anstoßen jedes Schritts erfolgt dadurch, dass in einer Steuerzelle (in diesem Fall der Zelle D2) der Wert steht, welcher der Nummer der Formel in der Sequenz entspricht. Diese Nummer steht in Spalte B. In Spalte C steht eine Erläuterung der Formel. In Spalte D stehen Hilfsdaten, die von den Formeln verwendet werden, mit der entsprechenden Erläuterung in Spalte E. Auch Spalte F in »R Formeln« enthält mit einem erläuternden Titel in der Kopfzeile solche Daten. Im Rechenblatt mit den Formeln sind alle für Formeln und Hilfsdaten verwendeten Zellen mit der (nichtdruckenden) Füllvorlage »Formel« hinterlegt.

 

Damit die Formeln problemlos verschoben, nach oben oder unten kopiert werden können, kommen in jeder Formel zwei Formelteile vor, die den Ablauf der Formelsequenz steuern:

  1. Grundsätzlich ist jede Formel in eine Wenn-Funktion eingebettet, die prüft, ob in der Steuerzelle die Formelnummer, also der Wert Zeile-1, steht, sodass der Rest der Formel nur ausgeführt wird, wenn diese Bedingung erfüllt ist.
       Wenn($D$2=Zeile-1;…

  2. Am Schluss der Formel wird die Steuerzelle um 1 erhöht, jedoch nur, sofern auch in der nächsten Zeile eine Formel steht, nämlich diejenige, die als nächstes ausgeführt werden soll. Sonst muss die Steuerzelle gelöscht werden, sodass damit die Formelsequenz abgeschlossen wird.
       …SetzeZelle(Wenn(Index(B:B;Zeile+1);Zeile;"");$D$2)

Zwischen diesen beiden Formelteilen steht derjenige Teil der Formel, um den es in diesem Schritt wirklich geht. Beide obigen Formelteile könnten auch einfacher geschrieben werden. Mit der angeführten Schreibweise werden aber Probleme bei Änderungen der Sequenz vermieden und das Testen von nur Teilen der Sequenz erleichtert.

 

Lösungsschritte

Nun gilt es zu überlegen, in welche Schritte der ganze gewünschte Ablauf zerlegt werden kann. Zur optimalen Übersicht soll jede Formel nur einen einzigen Schritt des Lösungswegs erledigen. Dabei kann es sinnvoll sein, gewisse Werte, die in mehreren Formeln benötigt werden – oder auch einfach der besseren Übersicht halber – separat zu berechnen und im Formel-Rechenblatt als Hilfsdaten abzulegen.

 

Es wird hier nicht auf jeden einzelnen Lösungsschritt eingegangen. Erläutert wird nur die Grundidee für die Lösung der fiktiven Aufgabenstellung. Der Lösungsweg sollte mittels der Erläuterungen der einzelnen Formeln im Formel-Rechenblatt verfolgt werden können.

 

Von allen Daten in Spalte A der Rechenblatts »R Tab« wird die Differenz in Tagen zum ältesten vorkommenden Datum berechnet und in Spalte F abgelegt. Am Schluss wird für sämtliche Daten zwischen dem ältesten und dem jüngsten Datum in »R Tab« geprüft, ob ihre Differenz zum ältesten Datum in »R Tab« in der Spalte F des Rechenblatts »R Formeln« vorkommt. Nur Tage, deren Offset dort nicht vorkommt, werden in die Zieltabelle eingetragen.

 

Testen, insbesondere auch nach Änderungen

Wenn die Formeln auf die beschriebene Weise Schritt an Schritt gereiht werden, so lässt sich das Ergebnis auch problemlos überprüfen. Jede Formel kann so lange geändert werden, bis das Ergebnis stimmt, bevor zum nächsten Schritt gegangen wird.

 

Heikler ist es bei Änderungen. Vielleicht muss noch ein Hilfswert mehr berechnet und deshalb eine Zeile eingefügt werden. Wurden die Formelteile, welche die Sequenz steuern, wie oben angegeben erstellt, so können neue Zeilen ohne Weiteres eingefügt oder Zeilen gelöscht und an anderer Stelle der Sequenz wieder eingefügt werden.

 

Nach solchen Änderungen kann es nötig sein, den Anfang der Formelsequenz nur bis zu einer gewissen Stelle erneut zu testen. Dazu muss einfach die Nummer des Schritts, vor welchem der Test gestoppt werden soll, in Spalte B gelöscht werden. Die Zelle kann nach erfolgreicher Prüfung mit Kopieren und Einsetzen aus einer anderen Formelzeile wieder erstellt werden. Aber auch ein Test der Formelsequenz ab einer bestimmten Stelle ist ganz einfach möglich: Dazu wird, statt die Formelsequenz mit dem Knopf anzustoßen, die Nummer der Formel, bei welcher der Test begonnen werden soll, in die Sequenz-Steuerzelle (in diesem Fall Zelle D2) eingesetzt.

 

Im Gegensatz zu komplexen, verschachtelten Formelkonstruktionen ist eine so gestaltete und dokumentierte Formelsequenz auch nach Jahren noch verständlich und nachvollziehbar.

 

© 2016 Thomas Kaegi, ragtime-consult.ch GmbH
Zweck dieser Erläuterungen ist es, allen RagTime-Anwenderinnen und -Anwendern beim Erstellen von komplexen Dokumenten zu helfen. Die Benützung der vorgeschlagenen Methode ist deshalb ohne Weiteres erlaubt. Die Weitergabe der Anleitung unter eigenem Namen ist dagegen nicht statthaft.

 

Zurück zur Übersicht

 

 

Schlagzeilen

Aus dem Vertrieb

Kontakt


Impressum  |  AGB  |  Sitemap  |  Datenschutz
 

Produktiver arbeiten

RagTime 7

 

Inventar und Foyer

Alle Komponenten und Formate, Schriften, Farben sind übersichtlich geordnet im Inventar gespeichert. Häufig genutzte Dokumente und Formulare öffnen Sie ohne langes Suchen direkt über das Foyer.


Neue Funktionen
Probieren geht über Studieren
Allgemeines zum Verkauf

Deutsch
English