OT: wie weit wird gerechnet zu Re: VSuchlauf mit Funktion JahrVon()

Für Suchlauf-Freunde in paar Infos, wie weit
Suchlauffunktionen eine Tabelle durchpflügen:

Intern unterhält RagTime Variablen zum benutzten
Bereich des Rechenblatts. Wenn Suchlauf rechnet,
kann die Funktion damit abschätzen, ab welcher
Zeile nur noch leere Zellen kommen können. In den
meisten Fällen kann die Funktion feststellen,
dass der unbenutzte Bereich unwichtig ist
behandelt ihn dann auch nicht.

Beispiele:

a) VSuchlauf(A:A;LfdZelle > 1000;0;LfdZähler)

b) VSuchlauf(A:A;(LfdIndex mod 10) = 0;0;LfdZähler)

c) VSuchlauf(A:A;LfdZelle = '';0;LfdZähler)

Fangen wir von hinten an, den Fällen, in denen die Optimierung nicht klappt.

Fall c)
Wenn die Funktion den benutzten Bereich verlässt,
liefert die Bedingung dennoch wahr. In diesem
Fall muss die Funktion weiter rechnen und sie
läuft in diesem Fall bis Zeile 16000. (Alles
andere wäre falsch, da in diesem Beispiel die
leeren Zellen der Spalte gezählt werden sollen.)

Fall b)
In der Bedingung kommt mit LfdIndex eine Funktion
vor, die auch im unbenutzten Teil weiter ihren
Wert ändert. VSuchlauf hat keine Chance zu
prognostizieren, ob die Bedingung noch einmal
wahr wird und muss deshalb bis zum Ende der
Tabelle rechnen. In meinem Beispiel wird sie
tatsächlich alle zehn Zeilen wahr, aber auch
"LfdIndex < 20" würde nicht merken, dass das
Rechnen nach der zwanzigsten Zeile unsinnig ist.

Fall a)
Der Standardfall, der erfolgreich optimiert wird:
Nach Verlassen des benutzten Bereichs liefert die
Bedingung "Falsch" und es wird auch keine
Funktion wie LfdIndex in der Bedingung
ausgerechnet. Die Funktion kann deshalb nach der
ersten Zeile außerhalb des benutzten Bereichs
aufhören.

Das ist zwar keine genaue "Man Page", was
passiert, aber gibt wohl hinreichend die Idee
wieder.

Gruß, Jürgen

>Hallo Martin
>
>Ich versuche, die VSuchlauf-Formel eigentlich immer mit
>Abbruchbedingung zu verwenden. Ich weiss es nicht wirklich, habe aber
>das Gefühl, RagTime müsse auf diese Weise weniger rechnen, da sonst
>die ganze Spalte bis zur letzten Zeile des Rechenblattes auf Erfüllen
>der Bedingung geprüft wird. Natürlich muss dafür zusätzlich die
>Abbruchbedingung geprüft werden, aber Tabellen belegen ja meist nur
>einen Bruchteil der maximal möglichen 16000 Zeilen. - Allerdings ist
>die Rechenbelastung höchst selten ein Problem.
>
>Gruss
>Thomas
>--
>_________________________________________________
>Die macnews.de Mailingliste Ragtime:
>http://lists.macnews.de/cgi-bin//listinfo/ragtime
>
>Neu: Das Mailinglistenarchiv unter
>http://forum.macnews.de/lists

--

RagTime GmbH Tel: [49] (2103) 9657-0
Itterpark 5 Fax: [49] (2103) 9657-96
D-40724 Hilden mailto:support@RagTime.de
Deutschland http://www.RagTime.de/

Wir lassen Sie nicht allein - Der Neue RagTime-Support.
Foren, Datenbank, Carepaket und Hotline
Infos: http://www.ragtime.de/link?supportangebote
_________________________________________________
Die macnews.de Mailingliste Ragtime:
http://lists.macnews.de/cgi-bin//listinfo/ragtime

Neu: Das Mailinglistenarchiv unter
http://forum.macnews.de/lists