indirect + address + match -> unerwartetes Ergebnis

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: indirect + address + match -> unerwartetes Ergebnis

von Konstantin » Do, 29.03.2007 11:40

Danke euch. Ich werde mich mal wieder daran versuchen ... :-)

von Gert Seler » Do, 29.03.2007 09:15

Danke Eia.

mfg
Gert

von Eia » Do, 29.03.2007 08:57

Wenn jemand mal deutsch-englisch-Übersetzungen der Calc-Funktionen braucht:
http://ooowiki.de/DeutschEnglischCalcFunktionen

von Gert Seler » Mi, 28.03.2007 13:29

Hallo Konstantin,
in deutsch ist es die Funktion "SVERWEIS" in english sollte es "VLookup"
sein.
Ich hoffe es hilft Dir weiter.

mfg
Gert

indirect + address + match -> unerwartetes Ergebnis

von Konstantin » Di, 27.03.2007 13:31

Hallo!

Vorweg sei gesagt, dass ich eine englische Version von OOo nutze. Ich hoffe, ihr könnt die Begriffe/Funktionen entsprechend einordnen, da ich nicht weiß, wie sie in deutsch lauten.

Ich habe eine Tabelle "Teilnehmer" in der in der ersten Spalte der Kurs, in der zweiten der Vorname und in der dritten Spalte der Nachname steht. Des Weiteren habe ich eine Tabelle, die als Anwesenheitsliste benutzt werden soll. Für jeden Kurs soll es eine eigene Liste mit den entsprechenden Teilnehmern geben.

im Grunde möchte ich jetzt mit den Funktionen folgende SQL-Abfrage nachbilden: SELECT Teilnehmer.Nachname WHERE Kurs == "Kurs1"

Da es eine maximale Anzahl an Teilnehmern gibt (z. B. 20), hab ich 20 Zeilen vorbereitet, wo ich folgende Formel nutzen wollte (hier die Formel aus der ersten Zeile):

Code: Alles auswählen

=INDIRECT(ADDRESS(MATCH($A$1;Teilnehmer.$A$2:$A$1000)+$A3;3;1;"Teilnehmer"))
In A1 steht der Name des Kurses. In A3, A4, A5 ... steht die laufende Nummer.

Es soll also die erste Zelle gesucht werden, wo der Kursname drin steht. Auf die Zeilennummer wird dann die laufende Nummer der Anwesenheitstabelle addiert, die Adresse gebildet und mit Indirect den Wert der Zelle geholt.

In einem weiteren Schritt wollte ich dann noch überprüfen, ob es sich noch um den richtigen Kurs handelt, oder ob der Teilnehmer schon zum nächsten Kurs gehört (bei weniger Teilnehmern als die Maximalzahl). (mit einer IF-Abfrage)

Die Tabelle ist nach Kurs, Vorname, Nachname sortiert. Unerwarteter Weise bekomme ich den letzten Namen, statt den ersten Namen.

Woran liegt das nun, dass ich nicht den ersten Namen kriege sondern den letzten? Wie kann ich das verhindern. Das sortieren von Match bringt mir auch nichts, da ich die Tabelle nicht sortiern kann, sondern nur das Array, welches Match benutzt.

Ich hoffe, es hat irgendeiner eine Idee, wie ich das Problem lösen kann. Von mir aus auch mit einem ganz anderen Ansatz (sollte aber schon mit FUnktionen realisiert sein ...)

Gruß
Konstantin

Nach oben