Bestimmte Zeilen kopieren und im neuen Rechenblatt ablegen

Liebe Helfer (m/w),
in meiner längeren Mitgliederliste ("Mitgliederliste.rtd"!Mitglieder!) habe ich in der Spalte U die Mitgliedsjahre (25, 40 ...) der zu ehrenden Mitglieder ausgegeben (oder die Zelle bleibt frei). Jetzt möchte ich, wenn eine "Ehrungszahl" in Spalte U steht, die kompletten Zeilen in das Rechenblatt "ZuEhrende.rtd"!Mitglieder! untereinander auflisten. Mit der Formel (in V1 von "ZuEhrende.rtd"!Mitglieder!) VSuchlauf("Mitgliederliste.rtd"!Mitglieder!$U:$U;Typ(LfdZelle)=1;0;SetzeZelle(LfdZelle;U:U;LfdZähler)) kann ich zwar alles aus Spalte U der Mitgliederliste in Spalte U kopieren, nicht aber die Inhalte der jeweiligen Zellen von A:T. D.h. ich brauche Hilfe.
Vielen Dank
Bernd

Re: Bestimmte Zeilen kopieren und im neuen Rechenblatt ablegen

#11038 On 16 März, 2013 12:13 Thomas Kaegi said,

Hallo Bernd

In deiner Formel

VSuchlauf("Mitgliederliste.rtd"!Mitglieder!$U:$U;Typ(LfdZelle)=1;0;SetzeZelle(LfdZelle;U:U;LfdZähler))

reihst du alle nötigen SetzZelle-Befehle mit dem Operator "&" aneinander. Also nicht nur

SetzeZelle(LfdZelle;U:U;LfdZähler)

sondern

SetzeZelle(LfdZelle;U:U;LfdZähler)&SetzeZelle(Index(s:s;LfdIndex);s:s;LfdZähler)&…

"s" ersetzest du in jedem SetzeZelle-Befehl nacheinander durch die Spaltenbezeichnungen A bis T. - Mit der Index-Funktion wird dabei für jede Spalte A:T der Wert aus der Zeile mit dem LfdIndex geholt und mit SetzeZelle in die entsprechende Spalte der Zieltabelle auf der Zeile mit dem Index LfdZähler geschrieben.

Es ist allerdings möglich, dass einer der Zelleninhalte nicht in Text gewandelt werden kann, der so mit dem &-Operator aneinander gereiht wird. Das wäre z.B. dann der Fall, wenn eine der Spalten A:T ein Foto des Mitgliedes enthalten würde. In diesem Fall kannst du bei der betreffenden Spalte statt einfach "SetzeZelle" die Formel mit der Funktion "Typ" ergänzen:

…&Typ(SetzeZelle(Index(n:n;LfdIndex);n:n;LfdZähler))&…

Damit du nicht, falls die Formel einen Fehler produziert, mühsam am Ende herausfinden musst, in welcher Spalte das Problem liegt, würde ich bei der Erstellung der Formel immer nach zwei, drei Spalten probieren, ob sie noch ohne Fehlermeldung funktioniert.

Und jetzt noch ein Zückerchen:

Obige Anleitung funktioniert ohne RagTime-Erweiterungen. Mit den Ittersoft-Erweiterungen MetaFormel-Funktionen und Martins Power Functions lässt sich die Formel bedeutend kürzer schreiben als mit 21 aneinander gereihten SetzeZelle-Funktionen, weil die Funktion "KopiereBereich" zur Verfügung steht. Allerdings müssen auch die Funktionen "Bereich" und "RechneText" benützt werden, so dass die Formel auch nicht gerade einfach ist. Die Zeilenumbrüche in den folgenden Formeln müssen natürlich entfernt werden. Sie sind nur zur Verbesserung der Lesbarkeit der Formeln im Forum eingefügt.

VSuchlauf("Mitgliederliste.rtd"!Mitglieder!$U:$U;Typ(LfdZelle)=1;;
RechneText('KopiereBereich("Mitgliederliste.rtd"!Mitglieder!'&
Bereich(1;LfdIndex;21;LfdIndex)&';'&Bereich(1;LfdZähler;21;LfdZähler)&')'))

bzw. mit RagTime DE-CH:

VSuchlauf("Mitgliederliste.rtd"!Mitglieder!$U:$U;Typ(LfdZelle)=1;;
RechneText("KopiereBereich(""Mitgliederliste.rtd""!Mitglieder!"&
Bereich(1;LfdIndex;21;LfdIndex)&";"&Bereich(1;LfdZähler;21;LfdZähler)&")"))

Die Funktion "Bereich" liefert mit den Werten 1 und 21 für die Spalten den Bereich "An:Un". n wird im Quellbereich durch LfdIndex und im Zielbereich durch LfdZähler geliefert.

Viel Erfolg! Gruss, Thomas

Re: Bestimmte Zeilen kopieren und im neuen Rechenblatt ablegen

#11039 On 16 März, 2013 17:20 bierwirth said,

Vielen Dank, Thomas.
Ich habe die Formel mit den Ittersoft-Erweiterungen genommen. Ja, so wollte ich's haben. Nochmals vielen Dank.
Bernd