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"))
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