Vsuchlauf #2318921

Guten Tag,

also ich suche jetzt schon seit geraumer Zeit eine Lösung für mein Problem, doch eine Lösung ist bis jetzt nicht in sicht.

Problemstellung:
Eine Tabelle mit folgenden Angaben
- A = Artikel Nr.
- B = Bezeichnung
- C = Größe
- D = egal :)
- E-MG = Menge, EK-Preis, Datum - immer in diesem sich wiederholenden Wechsel

Also ich möchte mir einen bestimmten Artikel raussuchen lassen, per Bezeichnung und Größe, soweit kein Problem. Doch soll die Ausgabe zu diesem Artikel dann darin bestehn, das die sich immer wieder wiederholenden E-MG Spalten aufgeführt werden und zwar im Rechenblatt "Ausgabe", quasi Tabelle!E:G = Ausgabe!A1:A3; Tabelle!H:J = Ausgabe!B1:B3 usw.

Meine bisherige Formel bringt mich da nur sehr geringfügig weiter...

VSuchlauf(Tabelle!$A:$MG;Und(Spaltenwert(2)=B1;Spaltenwert(3)=D1);0;SetzeZelle(LfdZelle;Ausgabe!$A$1:$A$35))

Ich hab schon sehr viel rumexperimentiert, aber bisher kein gutes Ergebniss erhalten. Auch hab ich hier schon ziemlich viel über suchen versucht rauszufinden, aber nix gefunden. Ich hoffe ihr könnt mir mal wieder helfen.

mfg

Sven Büttner

Re: Vsuchlauf #2318921

#6758 On 21 August, 2007 18:29 Thomas Kaegi said,

Hallo Sven

Deine Aufgabenstellung ist für mich schwer verständlich. Ich schreib mal auf, wie ich sie verstanden habe:
Du hat ein Rechenblatt "Tabelle", die "Tabelle" beginnend in Zeile 1, von beliebiger Länge, in welcher sich ab Spalte E bis zur Spalte MG pro Eintrag in je 3 Spalten gleichartige Wertgruppen wiederholen können.
Deine Suchlaufformel scheint in einem zweiten Rechenblatt zu stehen, in welchem in den Zellen B1 und D1 die Suchkriterien eingesetzt werden. Diese Suchwerte werden mit den Werten in den Spalten B und C der "Tabelle" verglichen.
Bei einem Treffer möchtest du Daten des gefundenen Artikels in ein drittes Rechenblatt (Ausgabe) übertragen, und zwar nur die Werte ab Spalte E der "Tabelle", wobei je drei Werte zusammen gehören.

Nun zu deiner Formel:
Der VSuchlauf findet in "Tabelle" die Zeilen, in denen sowohl der Wert in Spalte B mit dem Wert in Zelle B1 des zweiten Rechenblatts, als auch der Wert in Spalte C mit dem Wert in Zelle D1 des zweiten Rechenblatts überinstimmt. So weit so gut. In diesen Zeilen wird die Formel des letzten Suchlauf-Argumentes ausgeführt, also der SetzeZelle-Befehl. Aber dein SetzeZelle-Befehl ist schon von der Syntax her falsch. Wenn ein Bereich angegeben wird, dann muss auch angegeben werden, in die wievielte Zelle des Bereichs geschrieben werden soll. Es fehlt also mindestens ein Argument (bei einem zweidimensionalen Bereich sogar zwei Argumente) in diesem Befehl. Und welcher Wert wird dort hineingeschrieben? Der Wert gemäss erstem Argument des SetzeZelle-Befehls, also "LfdZelle". Was ist aber die LfdZelle? Das ist der Wert in der ersten Spalte, also Spalte A, deines VSuchlaufs und nicht etwa ein Wert aus den Spalten ab Spalte E. Und merke: Ein SetzeZelle-Befehl setzt immer nur einen einzigen Wert in eine einzige Zelle ein!

Um schon nur mal die drei Werte in den Spalten E:G auf der Trefferzeile aus "Tabelle" in das Rechenblatt "Ausgabe" zu übertragen müsste die Formel im Folgewert-Argument des VSuchlaufs wie folgt lauten:

SetzeZelle(Spaltenwert(5);Ausgabe!$A$1)&SetzeZelle(Spaltenwert(6);Ausgabe!$B$1)&SetzeZelle(Spaltenwert(7);Ausgabe!$C$1)

Nein, das ist so nicht sehr elegant und auch gar nicht universell. Es ging mir hier nur darum, dir zu zeigen, was überhaupt passiert. Damit du mehrere Blöcke von je 3 Zellen übertragen kannst, müsstest du den Folgewert als HSuchlauf formulieren, also eine komplexe Formel mit verschachtelten Suchläufen schreiben. Das übersteigt eindeutig das, was ich hier im Forum kostenlos zu bieten bereit bin. In unserem Buch haben wir derart komplexe Suchlauf-Konstruktionen eingehend anhand von Beispielen erläutert. Aber du hast dich kürzlich als RagTime-Anfänger geoutet. Ich muss dich warnen: das ist nun wirklich "Hohe Schule".

Mit freundlichem Gruss
Thomas
www.ragtime-consult.ch

Re: Vsuchlauf #2318921

#6763 On 22 August, 2007 13:21 Sarotti said,

Hallo Thomas,

du hast mein Problem erkannt und verstehn kann ich auch, das du das nicht erklären möchtest :). Werd ich mir wohl echt mal dein Buch zu gemüte führen. Eine temporäre Lösung hab ich allerdings jetzt selbst erarbeitet (wusste das mit SetzeZelle schon vorher, hatte es aber wegen vielen Fehlversuchen sehr beschränkt nur eingesetzt gehabt :) )

VSuchlauf(Rechenblatt 1!$A:$MG;Und(Spaltenwert(2)=Eingabe!B1;Spaltenwert(3)=Eingabe!D1);SetzeZelle('nichts gefunden';Eingabe!$C$2);HSuchlauf(Rechenblatt 1!$A:$MG;1;0;SetzeZelle(Spaltenwert(7);Ausgabe!A1)&SetzeZelle(Spaltenwert(6);Ausgabe!B1)&SetzeZelle(Spaltenwert(5);Ausgabe!C1)&SetzeZelle(Spaltenwert(10);Ausgabe!A2)&SetzeZelle(Spaltenwert(9);Ausgabe!B2)&SetzeZelle(Spaltenwert(8);Ausgabe!C2)...

Das ganze hab ich dann 60 mal wiederholt, da es eh nur auf Knopfdrücken ausgelöst wird, ist es nicht so schlimm. Trotzdem Danke!

mfg

Sven