VSuchlauf mit MonatVon

Hallo in die Runde,

ich würde mich sehr freuen, wenn mir jemand bei folgendem Problem
helfen könnte:

In Spalte A sollen jedemenge Daten (gemeint ist der Plural von Datum)
gebucht werden.
In Spalte B soll dann automatisch der zugehörige Wert von "MonatVon"
(also z.B. bei "10. Februar 2006" eine "2") ausgegeben werden.

Die Beispiel-Zielsetzung lautet also:

Wenn ich in Zelle A1 den "23. Januar 2004" eingebe, soll Zelle B1 den
Wert "1" liefern.
Wenn ich in Zelle A2 den "30. August 2005" eingebe, soll Zelle B2 den
Wert "8" liefern.
Wenn ich in Zelle A3 nichts eingebe, soll Zelle B3 nichts liefern.

usw.

Mir ist es bisher leider nicht gelungen eine entsprechende Formel mit
Hilfe von "VSuchlauf" zu basteln. Ich bin aber davon überzeugt, daß
das irgendwie gehen muß.

Man könnte natürlich eine "Wenn"-Formel heranziehen, wie z.B. diese:

SpezialWenn(A1>0;SetzeZelle(MonatVon(A1);B1))

Da diese aber nur zeilenweise arbeitet, müßte ich sie z.B. in Spalte
C komplett runterkopieren. (Also von C1 bis C-Ultimo)
Sehr elegant könnte man diese Lösung allerdings nicht nennen.

Sinn und Zweck des Ganzen soll sein Datums-Angaben (incl.
zugehöriger, zusätzlicher Informationen aus anderen Spalten) auf
separate Quartalskonten (Quartals-Rechenblätter) zu schicken.

Wichtg dabei ist, daß einerseits in Spalte A das Datum komplett
gebucht werden muß (also mit Jahresangabe), andererseits aber bei der
Sendung auf die Quartalskonten die Jahresangabe ignoriert werden soll.

Vielen Dank im Voraus,
Eichhörnchen (RagTime 6, WinXP)
--
_________________________________________________
Die macnews.de Mailingliste Ragtime:
http://lists.macnews.de/cgi-bin//listinfo/ragtime

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

Re: VSuchlauf mit MonatVon

#5593 On 20 August, 2006 07:33 Tom Kaegi said,

Hallo Eichhörnchen

Eigentlich ist dieser Name geistiger Diebstahl - denn das
Eichhörnchen ist doch das Maskottchen von RagTime. ;-)

> In Spalte A sollen jedemenge Daten (gemeint ist der Plural von Datum)
> gebucht werden.
> In Spalte B soll dann automatisch der zugehörige Wert von "MonatVon"
> (also z.B. bei "10. Februar 2006" eine "2") ausgegeben werden.

Die Formel für dein Problem lautet:

VSuchlauf(A:A;LfdZelle>0;0;SetzeZelle(MonatVon(LfdZelle);B:B;LfdIndex))

Mit freundlichem Gruss
Thomas
www.ragtime-consult.ch
_________________________________________________
Die macnews.de Mailingliste Ragtime:
http://lists.macnews.de/cgi-bin//listinfo/ragtime

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

Re: VSuchlauf mit MonatVon

#5597 On 21 August, 2006 20:12 anonym vom Web said,

Eichhörnchen an Thomas Kaegi:

Hallo Thomas,

vielen Dank für deine schnelle Antwort.
Dein Tipp hat mir wiedermal sehr geholfen.

Ich habe die Formel noch etwas modifiziert.
Um zu vermeiden, daß VSuchlauf durch Eingaben, die keine
Datumsangaben sind, "irritiert" wird, lasse ich nun durch
"Typ(LfdZelle)=8" prüfen, ob es sich wirklich um ein Datum handelt:

VSuchlauf(A:A;Typ(LfdZelle)=8;0;SetzeZelle(MonatVon(LfdZelle);C:C;LfdIndex))

So werden z.B. Überschriften (Text) ignoriert.

Aber wem erzähle ich das...
Ich beneide dich wirklich um deine Formelkenntnisse...

Solltest du diese Nachricht lesen, hätte ich noch eine weitere kleine Frage:

Ist es sinnvoll die folgende "Monsterformel" in eine einzige Zelle zu
setzen, oder sollte ich sie in vier Zellen separat eingeben.

Populär gefragt:
Könnte eine einzelne Zelle mit zu vielen Berechnungsbefehlen überlastet sein?

VSuchlauf(B:C;Typ(Spaltenwert(2))=1 UND
(Spaltenwert(2)3) UND
(Spaltenwert(2)6) UND
(Spaltenwert(2)9);0;SetzeZelle(Spaltenwert(1);G:G;LfdIndex))

Diese Formel schickt in Abhängigkeit vom Monatswert
(den ich nun, wie du sicher schon bemerkt hast, in Spalte C ausgeben
lasse) die Daten aus Spalte B auf die Quartals-Spalten D, E, F und G.

Ich habe sie bisher mit etwa 50 Dateneingaben in Spalte A und B
getestet und sie funktioniert bestens.
Aber geht das auch noch bei 5000 Dateneingaben genauso gut und schnell?

Nochmals herzlichen Dank
und Gruß aus Köln in die Schweiz,

Dietrich "Eichhörnchen" Lott

P.S.: Habe gestern schon versucht, dir zu antworten,
aber der Forums-Server war leider nicht zugänglich.
--
_________________________________________________
Die macnews.de Mailingliste Ragtime:
http://lists.macnews.de/cgi-bin//listinfo/ragtime

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

Re: VSuchlauf mit MonatVon

#5599 On 21 August, 2006 20:26 Tom Kaegi said,

Hallo Dietrich

> Ist es sinnvoll die folgende "Monsterformel" in eine einzige Zelle zu
> setzen, oder sollte ich sie in vier Zellen separat eingeben.
>
> Populär gefragt:
> Könnte eine einzelne Zelle mit zu vielen Berechnungsbefehlen
> überlastet sein?

Ich habe noch nie festgestellt, dass RagTime mit solchen Ungetümen
Probleme gehabt hätte. Wohl aber ich. Ich habe die Formel nicht
angeschaut und weiss deshalb nicht, ob sie sequentiell oder parallel
ablaufen soll. Für Sequenzen empfehle ich die Zerlegung der Formel
mit Aktivierungsbits und SpezialWenn. Mehr darüber in meinem Buch.
Genau wegen dessen Fertigstellung habe ich keine Zeit, hier näher
darauf einzugehen.

Mit freundlichem Gruss
Thomas
_________________________________________________
Die macnews.de Mailingliste Ragtime:
http://lists.macnews.de/cgi-bin//listinfo/ragtime

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

Re: VSuchlauf mit MonatVon

#5607 On 22 August, 2006 23:40 Klaus Steigemann said,

Hallo Dietrich,

zwei Anmerkungen zu deiner Suchlaufverkettung:
1. Wenn du Suchläufe (oder auch andere Formeln) aneinander hängen
möchtest, dann tue das mit dem & und nicht mit UND. Einzige Ausnahme,
wenn die UND-Verknüpfung tatsächlich als Prüfbedingung erforderlich
ist, also die jeweiligen Suchläufe/Formeln WAHR oder FALSCH liefern
sollen.

2. Deine Verketteten Suchläufe kannst Du auch bedeutend kürzer
halten, etwa in der Form:

VSuchlauf(B:C;Typ(Spaltenwert(2))=1;0;SetzeZelle(LfdZelle;D:G;LfdIndex;Obergrenze(Spaltenwert(2)/3)))

Dabei übernimmt die Funktion Obergrenze(Spaltenwert(2)/3) die
Verteilung auf die richtige Quartalsspalte. Spaltenwert(1) kann hier
kürzer mit LfdZelle ersetzt werden.

Nachteil dieser Formel oder auch deiner Verkettung ist allerdings ein
unsauberer Übertrag in die Quartalsspalten. Für den Fall, dass mal
versehentlich ein falsches Datum, welches in einem anderen Quartal
liegt, nachträglich geändert oder wieder gelöscht wurde, bleiben
Einträge übrig, die manuell beseitigt werden müssten.
Läßt man den Suchlauf gleich jeweils noch in die übrigen
Quartalsspalten Leerwerte eintragen, sind Falscheinträge automatisch
wieder gelöscht. Dazu verkettet man einfach 4 SetzeZelle(...) mit &
an das vorhandene SetzeZelle. Sinnigerweise läßt man erst löschen und
dann den korrekten Wert einsetzen. Das könnte dann so aussehen (zur
besseren Lesbarkeit hier in Zeilen umgebrochen):
VSuchlauf(B:C;1;0;SetzeZelle('';D:G;LfdIndex;1)
&SetzeZelle('';D:G;LfdIndex;2)
&SetzeZelle('';D:G;LfdIndex;3)
&SetzeZelle('';D:G;LfdIndex;4)
&Wenn(Typ(Spaltenwert(2))=1;SetzeZelle(LfdZelle;D:G;LfdIndex;Obergrenze(Spaltenwert(2)/3))))

Die Suchlaufbedingung wird hier mit 1 auf IMMER WAHR gesetzt und
deine Bedingung wandert in ein Wenn beim SetzeZelle. Das
entscheidente SetzeZelle ist hier als Aktion im Wenn eingebetet, da
die Löschung bereits zuvor von einem eigenen SetzeZelle ausgeführt
wurde. In der folgenden Formel ist das Wenn in das SetzeZelle zur
Wertermittlung gesetzt, d.h. es wird immer was gesetzt; was
entscheidet die Bedingung -> fallsJa = Wert -> fallsNein = Leerwert.

Damit das in den Quartalsspalten richtig funktioniert, solltest Du
diese Veränderung in der MonatVon-Spalte auch noch machen. Die
bereinigende Formel sieht dann so aus:
VSuchlauf(A:A;1;0;SetzeZelle(Wenn(Typ(LfdZelle)=8;MonatVon(LfdZelle));C:C;LfdIndex))

Um auf deine Frage zurück zu kommen; von der Berechnung her, dürfte
es sich hier kaum unterscheiden, ob einzelne oder eine verkettete
Formel benutzt wird. Einzelne Formeln sind nur wesentlich besser zu
lesen. Für deinem Falle wären die dann etwa so:
für Quartal 1:
VSuchlauf(B:C;1;0;SetzeZelle(Wenn(Obergrenze(Spaltenwert(2)/3)=1;LfdZelle);D:D;LfdIndex))
für Quartal 2:
VSuchlauf(B:C;1;0;SetzeZelle(Wenn(Obergrenze(Spaltenwert(2)/3)=2;LfdZelle);E:E;LfdIndex))
u.s.w.
Auch diese Suchläufe bereinigen Altlasten. Zusätzliche SetzeZelle
wären hier nicht nötig. Das könnte sich bei sehr langen Bereichen
eventuell sogar positiv auf die Berechnungszeit auswirken.
Viel Spaß beim weiteren Basteln.

MfG
Klaus Steigemann

PS:
Um Ärger bei der Berechnung zu vermeiden, sollten Suchlaufformeln
nach Möglichkeit nicht in den Spalten(-bereichen) platziert werden,
auf die sie zugreifen. D. h. die letztgenannten Fomeln z.B. könnte so
(ohne entspr. Vorkehrungen) in der Zelle D1 bzw. E1 zu einer
Dauerberechnung führen, da sie auch die eigene Zelle (die sich ja
ständig im Wert verändert) mit berücksichtigt. Jede Veränderung eines
Wertes im zu durchsuchenden Bereich führt zu einem Neuanstoß der
Berechnung.
- - -
>Eichhörnchen an Thomas Kaegi:
>
>Hallo Thomas,
>
>vielen Dank für deine schnelle Antwort.
>Dein Tipp hat mir wiedermal sehr geholfen.
>
>Ich habe die Formel noch etwas modifiziert.
>Um zu vermeiden, daß VSuchlauf durch Eingaben, die keine
>Datumsangaben sind, "irritiert" wird, lasse ich nun durch
>"Typ(LfdZelle)=8" prüfen, ob es sich wirklich um ein Datum handelt:
>
>VSuchlauf(A:A;Typ(LfdZelle)=8;0;SetzeZelle(MonatVon(LfdZelle);C:C;LfdIndex))
>
>So werden z.B. Überschriften (Text) ignoriert.
>
>Aber wem erzähle ich das...
>Ich beneide dich wirklich um deine Formelkenntnisse...
>
>Solltest du diese Nachricht lesen, hätte ich noch eine weitere kleine Frage:
>
>Ist es sinnvoll die folgende "Monsterformel" in eine einzige Zelle
>zu setzen, oder sollte ich sie in vier Zellen separat eingeben.
>
>Populär gefragt:
>Könnte eine einzelne Zelle mit zu vielen Berechnungsbefehlen überlastet sein?
>
>VSuchlauf(B:C;Typ(Spaltenwert(2))=1 UND
>(Spaltenwert(2)<4);0;SetzeZelle(Spaltenwert(1);D:D;LfdIndex)) UND
>VSuchlauf(B:C;Typ(Spaltenwert(2))=1 UND (Spaltenwert(2)>3) UND
>(Spaltenwert(2)<7);0;SetzeZelle(Spaltenwert (1);E:E;LfdIndex)) UND
>VSuchlauf(B:C;Typ(Spaltenwert(2))=1 UND (Spaltenwert(2)>6) UND
>(Spaltenwert(2)<10);0;SetzeZelle(Spaltenwert(1);F:F;LfdIndex)) UND
>VSuchlauf (B:C;Typ(Spaltenwert(2))=1 UND
>(Spaltenwert(2)>9);0;SetzeZelle(Spaltenwert(1);G:G;LfdIndex))
>
>Diese Formel schickt in Abhängigkeit vom Monatswert
>(den ich nun, wie du sicher schon bemerkt hast, in Spalte C ausgeben
>lasse) die Daten aus Spalte B auf die Quartals-Spalten D, E, F und G.
>
>Ich habe sie bisher mit etwa 50 Dateneingaben in Spalte A und B
>getestet und sie funktioniert bestens.
>Aber geht das auch noch bei 5000 Dateneingaben genauso gut und schnell?
>
>Nochmals herzlichen Dank
>und Gruß aus Köln in die Schweiz,
>
>Dietrich "Eichhörnchen" Lott
--
_________________________________________________
Die macnews.de Mailingliste Ragtime:
http://lists.macnews.de/cgi-bin//listinfo/ragtime

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