Zelle finden

Hallo

Ich bekomme in Spalte A eine Reihe von Datumsangaben (01.04.2002;
05.08.2003;usw) geliefert.

In Zelle B1 steht ein festes Datum (01.01.1950) welches sich um jede
Zelle in Spalte B um einen Tag erhöht.

In den Zellen der Spalte C soll jetzt jedes Mal eine 1 erscheinen
wenn die nebenliegende Zelle in B ein Datum findet das identisch zu
einem Datum aus der Spalte A ist.

Könnte mir da jemand helfen?

Grüße, Torsten

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

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

Zelle finden

#426 On 18 Juli, 2004 17:51 Thomas Kaegi said,

Hallo Thorsten

Setze in Zelle C1 die Formel:
VSuchlauf(A:A;LfdZelle=B1)
und kopiere diese so weit nötig nach unten. Dann steht in Spalte C
überall dort eine Zahl, die angibt, wie oft das in Spalte B auf der
betreffenden Zeile stehende Datum in Spalte A vorkommt. Kommt das
Datum zwei Mal vor, dann steht dort also eine 2. Falls ein
mehrmaliges Vorkommen eines Datums in Spalte A tatsächlich möglich
ist, und du trotzdem in Spalte C immer nur eine 1 erhalten willst,
dann heisst die Formel:
VSuchlauf(A:A;LfdZelle=B2)>0
Wenn du die Anzeige der Nullen in Spalte C unterdrücken willst, dann
wählst du die ganze Spalte C aus und markierst in der Tafel
"Zellinhalt" der Rechenblattinformation das Merkmal "Nullen
verborgen".

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

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

Zelle finden

#427 On 18 Juli, 2004 18:49 Torsten said,

Hallo Thomas

Vielen Dank für den Tipp.

Jetzt gibt es aber noch ein Problem.

Neben den zufälligen Datumsahngaben in Spalte A steht in der Zelle
daneben (in Spalte B) noch eine Zahl.
Diese Zahl soll nun noch neben der 1 aus dem Suchlauf gesetzt werden.

Also:

Spalte A sind die zufälligen Datumsangaben;
Spalte B neben jedem Datum aus A eine weitere Zahl;
Spalte C beinhaltet die Kette von Datumsangaben;
Spalte D wird in die Zelle jetzt eine 1 geliefert wenn das Datum in
Spalte A vorkommt;

Und nun soll noch die Zahl aus Spalte B neben die 1 aus Spalte D
gesetzt werden.

Haste da noch einen Tipp.

Vielen Dank, Torsten

>Hallo Thorsten
>
>Setze in Zelle C1 die Formel:
>VSuchlauf(A:A;LfdZelle=B1)
>und kopiere diese so weit nötig nach unten. Dann steht in Spalte C
>überall dort eine Zahl, die angibt, wie oft das in Spalte B auf der
>betreffenden Zeile stehende Datum in Spalte A vorkommt. Kommt das
>Datum zwei Mal vor, dann steht dort also eine 2. Falls ein
>mehrmaliges Vorkommen eines Datums in Spalte A tatsächlich möglich
>ist, und du trotzdem in Spalte C immer nur eine 1 erhalten willst,
>dann heisst die Formel:
>VSuchlauf(A:A;LfdZelle=B2)>0
>Wenn du die Anzeige der Nullen in Spalte C unterdrücken willst, dann
>wählst du die ganze Spalte C aus und markierst in der Tafel
>"Zellinhalt" der Rechenblattinformation das Merkmal "Nullen
>verborgen".
>
>MfG
>Thomas
--
_________________________________________________
Die macnews.de Mailingliste Ragtime:
http://lists.macnews.de/cgi-bin//listinfo/ragtime

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

Re: Zelle finden

#428 On 18 Juli, 2004 19:48 Klaus Steigemann said,

Hallo Torsten,

Sicherlich gibt es hier mehrere verschiedene Ansätze, eine passable
Lösung zu finden. Im Folgenden schlage ich dir eine mit der
VSuchlauf-Funktion vor.

Zu deinem Aufbau sei vorweg noch diese Anmerkung erlaubt. Wenn du in
Spalte C mit 01.01.1950 beginnst und Tag-auf-Tag die Spalte füllst, dann
steht in Zelle C16000 der Wert "21.10.1993". Insofern werden deine zu
suchenden Datumsangaben (01.04.2002; 05.08.2003;usw) nicht gefunden!
Um dies zu gewährleisten, müsste der Datumsbereich in einer weiteren
Spalte ergänzt werden.

Nun die Formel, die ich in meinem Test in Zelle E2 der Tabelle gesetzt habe:
VSuchlauf(C:C;LfdZelle=Index(A:A;E3);0;SetzeZelle(1&'-'&Index(B:B;E3);D:D;LfdIndex)&SetzeZelle(E3+1;E3);LfdZähler)

In E3 steht zunächst der Wert 1.

Zur Erkklärung:
Der Suchlauf durchkämmt die Spalte C Zelle für Zelle und vergleicht
jeden Eintrag zunächst mit dem ersten in Spalte A (Index(...)). Wird
eine Übereinstimmung gefunden, kommen die beiden SetzeZelle(...) in
Aktion. Das erste setzt die 1 und den Wert von Spalte B in Spalte D
neben das betreffende Datum; das Zweite erhöht den Zähler in E3.
Das abschließende LfdZähler beschränkt den Suchlauf, d.h. er hört sofort
beim ersten Treffer auf in Spalte C weiter fortzufahren, sondern beginnt
wieder oben mit dem nächsten Vergleich zum in Spalte A folgenden Datum,
falls vorhanden.

Für den Fall, dass sich die Werte in Spalte A bzw. B nachträglich
nochmal ändern, braucht es eine weitere Maßnahme, die die alten Werte in
Spalte D wieder korrigiert und die Zelle E3 auf den Startwert 1 setzt.
Dazu eignet sich am besten ein Knopf in E1. Er erhält als Titel den Text
"Neu Rechnen" und als Knopfaktion die Formel:
SetzeZelle(1;Rechenblatt 1!$E$3)&VSuchlauf(Rechenblatt
1!$C:$C;LfdZelle<>'';0;SetzeZelle('';Rechenblatt 1!$D:$D;LfdIndex))

Das SetzeZelle im Knopf setze den Startwert in E3 auf 1; der VSuchlauf
überschreibt die gesamte Spalte D mit Leerwerten '' (zwei einfach
Anführungszeichen).

Wird die Liste in Spalte A einfach nach unten mit weiteren Daten
ergänzt, erfolgt unmittelbar auch die entsprechende Suche in Spalte C.
Der Knopf ist also nur für die Fälle von Nöten, in denen bereits
vorhandene Daten in Spalte A und B durch andere Angaben ersetzt werden.

Liebe Grüße,
Klaus Steigemann

Torsten schrieb:

> Hallo
>
> Ich bekomme in Spalte A eine Reihe von Datumsangaben (01.04.2002;
> 05.08.2003;usw) geliefert.
>
> In Zelle B1 steht ein festes Datum (01.01.1950) welches sich um jede
> Zelle in Spalte B um einen Tag erhöht.
>
> In den Zellen der Spalte C soll jetzt jedes Mal eine 1 erscheinen wenn
> die nebenliegende Zelle in B ein Datum findet das identisch zu einem
> Datum aus der Spalte A ist.
>
> Könnte mir da jemand helfen?
>
> Grüße, Torsten
>

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

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

Zelle finden

#429 On 18 Juli, 2004 21:33 Thomas Kaegi said,

Hallo Thorsten

Einfach das Resultat des Suchlaufs mit dem &-Zeichen mit der Zahl in
der zweiten Zelle verbinden. Wenn du dazwischen ein Leerzeichen haben
möchtest, dann brauchst du "&&" statt das einfache "&" als Operator.

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

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

Zelle finden

#431 On 19 Juli, 2004 16:22 Torsten said,

Hallo Thomas

Weiß jetzt nicht was Du meinst. :-(

Ich hab jetzt mal ein kleines Bild angefertigt, vielleicht sieht man
da besser was Ich möchte.

Spalte E und F liefert dieser Suchlauf, und nun soll noch die
passende Zahl in Spalte G geschrieben werden.

Haste eine Idee?

Vielen Dank, Torsten

http://ehome.compuserve.de/Tor33833/Auswahl1.wmf

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

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

Zelle finden

#432 On 19 Juli, 2004 19:51 Thomas Kaegi said,

Hallo Thorsten

Ja, da hatte ich dich nicht richtig verstanden. Ich glaubte, die Zahl
müsse in die gleiche Zelle neben die 1 geschrieben werden.

Lösung 1:
In irgend einer freien Zelle deines Rechenblattes (ab Spalte H)
kannst du folgende Formel einsetzen:
VSuchlauf(C:E;Spaltenwert(3);0;SetzeZelle(LfdZelle;G:G;LfdIndex))
Die Formel sucht die drittte Spalte des Bereichs (C:E) ab. Dort wo
eine 1 steht (1 und 0 sind auch logische Werte, deshalb genügt
"Spaltenwert(3)" als Bedingung, die wahr sein muss) wird der
SetzeZelleBefehl ausgeführt. Dieser entnimmt der ersten Spalte des
Bereichs C:E den Wert (=LfdZelle) und setzt ihn im Bereich G:G in die
Zelle mit dem gleichen Index.

Lösung 2:
In Zelle G1 folgende Formel einsetzen:
Wenn(E1;C1;"")
Und diese Formel so weit nötig runter kopieren.
Das gibt viel mehr Formeln als Lösung 1, ist aber leichter
verständlich. Auch hier wird bei der Bedingung der Umstand benutzt,
dass in Spalte E nur die logischen Werte 0 und 1 vorkommen.

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

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

Zelle finden

#435 On 19 Juli, 2004 22:02 Torsten said,

Hallo Thomas

Ich glaub Du hast mich noch nicht richtig verstanden.

Wenn Ich deine Formeln richtig verstehe, wird gesucht bis der
Spaltenwert(3) eine 1 findet, und dann von 2 Spalten links davon (in
der selben Zeile) die Zelle kopiert.

So geht das aber nicht. L

Schau mal bitte noch mal aufs Bild.
In Spalte D (Datumsreihe) befindet sich eine Datumsreihe die sich mit
jeder Zeile um 1 erhöht.
Das beginnt am 1.01.1950 bis Heute, also einige Tausend Datumsangaben
in Spalte D.

In Spalte A (Datum Anfang) werden jetzt zufällige Datumsangaben
generiert, die aus einem anderem Programm stammen.
Das kann 1 Datum oder 20 oder 500, usw. sein.

In Spalte E wurde jetzt mit dem Suchlauf eine 1 generiert, welche
neben der langen Datumsreihe an dem Datum steht welches sich auch in
Spalte A befindet.

Nehmen wir jetzt mal im Bild den 17.01.2000.
Dieses Datum befindet sich in Zeile 20.

Das gleiche Datum befindet sich in Spalte A aber in Zeile 8 und nicht
in Zeile 20 wie in der langen Datumsreihe.

Deine beiden Vorschläge finden jetzt aber in Zeile 20 diese 1 aus dem
Suchlauf, und daraufhin wird anscheinend der Spaltenwert(1) aus Zeile
20 geliefert.

Richtig wäre aber Spaltenwert(1) aus Zeile 8.

Haste noch eine Idee?

Grüße, Torsten

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

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

Zelle finden

#436 On 20 Juli, 2004 08:00 Thomas Kaegi said,

Hallo Thorsten

Du hast recht - da bin ich etwas zu schnell gewesen (und hatte mine
Antwort einfach hingeschrieben, ohne sie zu testen).

Hier die richtigen Formeln:

Lösung 1:
VSuchlauf(E:E;LfdZelle;0;SetzeZelle(Index(C:C;Auswahl(A:A;LfdZelle=Index(D:D;LfdIndex);1));G:G;LfdIndex))

Lösung 2:
Wenn(E1;Index(C:C;Auswahl(A:C;LfdZelle=D1;1));"")

Für die Anwendung der beiden Lösungen siehe meinen letzten Beitrag.
In beiden Fällen ist die Lösung durch den Schritt ergänzt, dass
zuerst noch das Datum aus der Spalte D (der Zeile, wo in Spalte E
eine 1 steht) in Spalte A mit der Funktion "Auswahl" gesucht werden
muss und dann die gewünschte Zahl mit dem so gefundenen Index der
Spalte C entnommen wird.

Viel Erfolg!
Gruss
Thomas
--
_________________________________________________
Die macnews.de Mailingliste Ragtime:
http://lists.macnews.de/cgi-bin//listinfo/ragtime

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

Zelle finden

#442 On 20 Juli, 2004 17:30 Torsten said,

Hallo Thomas

Super, genau so hab Ich mir das vorgestellt, musste nur deine Formel
in der Bedingung des Suchlaufs mit =1 erweitern.

Vielen Dank, schon mal dafür.

Thomas, Ich trau mich kaum zu fragen, aber es gibt da noch ein
Problem (vermutlich das letzte J), vielleicht könntest Du mir da auch
noch helfen.

Ich hab in diesem Bild noch eine Spalte mit dem Namen “SpalteXXX"
eingezeichnet, diese Spalte ist im Rechenblatt jetzt Spalte H.
Als Ergebnis soll in dieser Spalte eine 1 geliefert werden, wenn sich
ein Datum aus der langen Datumsreihe innerhalb einer Handelsphase
befindet, ist dies nicht der Fall, dann eine 0.
Eine Handelsphase definiert sich vom Startdatum (Datum Anfang; Spalte
A) bis zum Enddatum (Datum Ende ; Spalte B).

Beispiel im Bild:

Die Datumsangaben in der langen Reihe von 1.1.1950 bis 4.1.2000
befinden sich nicht in so einer Handelsphase, demnach soll in Spalte
H (Im Bild Spalte XXX) eine 0 gesetzt werden.
Dem entgegen befinden sich die Datumsangaben (lange Reihe) vom
5.01.2000 bis zum 11.01.2000 in so einer Handelsphase, deswegen soll
hier eine 1 erscheinen.

Im Endeffekt müsste also ein Ergebnis wie im Bild SpalteXXX erscheinen.

Könntest Du mir da noch mal helfen?

Vielen Dank, Torsten

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

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

Zelle finden

#448 On 21 Juli, 2004 07:36 Thomas Kaegi said,

Hallo Thorsten

Formel in H2 (nicht in Zelle H1! - wenn du in H1 einen Wert brauchst,
ist dort die Formel einfach "E1"):
Summe(E$1:E2)-Summe(F$1:F1)/2 (das Dollarzeichen nur dort setzen wo gezeigt!)
Diese Formel nach unten kopieren.

Diese Formel stimmt, wenn tatsächlich in Kolonne F jeweils eine 2 bei
übereinstimmenden Daten steht wie im aktuellen Zustand des von dir im
Web gezeigten Bildes. Wenn dort auch eine 1 steht, dann kannst du
"/2" in der Formel weglassen.

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

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

Zelle finden

#451 On 21 Juli, 2004 08:21 Thomas Kaegi said,

Hallo Thorsten

Noch eine andere Lösung:
In einer freien Zelle, z.B. I1, gibst du folgende Formel ein:
VSuchlauf(D:E;Und(LfdIndex>1;LfdZelle>0);0;SetzeZelle(LfdResultat+Spaltenwert(2)-Index(F:F;LfdIndex-1)/2;H:H;LfdIndex))

Das Rechenblatt wird ab Zeile 2 bis zur Zeile mit dem letzten Datum
in Spalte D abgesucht. Das LfdResultat wird jedes Mal, wenn in Spalte
E auf eine 1 gestossen wird, um 1 erhöht und um 1 vermindert, wenn in
Spalte F in der vorangehenden Zeile eine 2 gefunden wurde. Das
LfdResultat wird in Spalte H eingesetzt.

So gibt es weniger Formeln im Rechenblatt.

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

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

Zelle finden

#455 On 21 Juli, 2004 16:39 Torsten said,

Hallo zusammen

Vielen Dank für eure super Hilfe, werde versuchen dies in meinem
Rechenblatt umzusetzen, wird aber erst was ab nächster Woche wieder
etwas.

"So gibt es weniger Formeln im Rechenblatt."

Gibt es eigentlich ein Problem im Programm wenn die Rechenblattdatei
zu groß wird?

Meine Datei ist jetzt schon 3 MB groß und hängt sich schon gerne auf
und die eigentlichen Berechnungen haben noch nicht mal angefangen

Viele Grüße und vielen Dank bis hier her, Torsten
--
_________________________________________________
Die macnews.de Mailingliste Ragtime:
http://lists.macnews.de/cgi-bin//listinfo/ragtime

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