Übungsbeispiele Suchlauffunktionen
Unter den Rechenblattfunktionen in RagTime gehören die Suchlauffunktionen (Suchlauf, VSuchlauf, HSuchlauf) zu denen, die am meisten Schwierigkeiten im Umgang bereiten. Zugleich sind die Funktionen aber ungewöhnlich nützlich für Anwender, die Tabellen mit Auswertungen erstellen oder aber Formulare mit einer komplexen Funktionalität.
Die Grund-Idee
Beim manuellen Auswerten langer Tabellen hat wohl jeder schon einmal folgenden Fall erlebt: Mit einem Lineal fährt man die Zeilen einer Tabelle ab, prüft für jede Zeile, ob sie ein bestimmtes Kriterium erfüllt und führt eine Strichliste um diese Zeilen zu zählen. Oder aber, man tippt Beträge aus diesen Zeilen in einen Taschenrechner ein, um beispielsweise alle Umsätze zu einem bestimmten Produkt zu ermitteln.
Die Suchlauffunktionen führen eine sehr ähnliche Aktion aus: Sie durchlaufen einen Bereich ein einem Rechenblatt Schritt für Schritt. Bei jedem Schritt führen sie eine Überprüfung aus. Immer, wenn die Überprüfung "wahr" liefert, führen sie eine Berechnung aus und merken sich das Resultat als Zwischenergebnis. Wurde der ganze Bereich durchlaufen, liefern sie das letzte Zwischenergebnis ab. Dafür haben Suchlauffunktionen eine Reihe von Argumenten: Den Bereich, den sie durchlaufen sollen, die Bedingung, die geprüft werden soll, mit welchem Wert das Zwischenergebnis anfangen soll und wie es bei Treffern geändert wird.
RagTime hat drei Suchlauffunktionen: Suchlauf, VSuchlauf und HSuchlauf. Die erste durchläuft einen Bereich zellenweise. Der Bereich kann eine Spalte, eine Zeile oder ein beliebiger rechteckiger Bereich der Tabelle sein. Für jede Zelle des Bereichs wird die Überprüfung durchgeführt. VSuchlauf dagegen durchläuft senkrecht einen Bereich von einer oder mehreren Spalten und betrachtet in jedem Schritt eine Zeile dieses Bereichs – also auch mehrere nebeneinander stehende Zellen gleichzeitig. HSuchlauf arbeitet analog in die andere Richtung: In einem horizontalen Bereich wird Schritt für Schritt jede Spalte betrachtet.
Hilfsfunktionen
In den Suchlauffunktionen stehen spezielle Hilfsfunktionen zur Verfügung, die nur im Zusammenhang mit einem Suchlauf sinnvoll sind:
- LfdIndex: Die Nummer der Zelle in Suchlauf/ Zeile in VSuchlauf / Spalte in HSuchlauf, die gerade bearbeitet wird.
- LfdZähler: Die Anzahl der Treffer, die bisher gefunden wurden
- LfdResultat: Das aktuelle Zwischenergebnis
- LfdZelle: Der Wert der Zelle, die Suchlauf gerade bearbeitet
- Spaltenwert(n) (Nur in VSuchlauf): Der Wert der n-ten Spalte in der gerade bearbeiteten Zeile
- Zeilenwert(n) (Nur in HSuchlauf): Der Wert der n-ten Zeile in der gerade bearbeiteten Spalte
Beispiele
Das angehängte RagTime-Dokument geht eine Reihe typischer Anwendungen von Suchlauffunktionen durch. Die Konstruktionen werden von Seite zu Seite komplexer / abstrakter. Die Kurve ist dabei durchaus steil: Ziel war eine sehr knappe Übersicht, in die man immer mal wieder hinein schauen kann.
Diese Einstiegsbeispiele verzichten auf den Fall geschachtelter Suchlauffunktionen.
Ablauf-Skizze
Beim Nachvollziehen der einzelnen Schritte einer Suchlauffunktion mag die folgende Skizze helfen, die die Schritte nachzeichnet, die Suchlauf ausführt. Die Skizze für VSuchlauf und HSuchlauf wäre analog, nur dass die Spaltenwert- / Zeilenwert- Werte noch gesetzt werden.
Anhang | Größe |
---|---|
Suchlauf_Beispiele_1.rtd | 522.89 KB |