Clever-Excel-Forum

Normale Version: Nach Namen sortieren - mit einer Bedingung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo alle

Ich habe folgende Ausgangslage: Es existiert eine Teilnehmerliste von Personen, die zum Teil alleine und zum anderen Teil mit Begleitung kommen. In Spalte A steht von allen Personen "Name Vorname", also auch von den Begleitpersonen - ich habe also pro Person eine Zeile. Bei den Beleitpersonen steht in Spalte B "Name Vorname" von der Hauptperson, welche sie begleitet. Bei den "Hauptpersonen" und alleine teilnehmenden ist Spalte B leer. Dahinter kommen noch etliche weitere Spalten mit Angaben, die aber mit dem jetzigen Problem nichts zu tun haben.

Folgender Wunsch: Ich möchte die Tabelle gerne nach den Namen der Teilnehmer sortieren, wobei aber die Begleitpersonen jeweils unter deren "Hauptperson" eingereiht werden soll.

Falls mein Anliegen nicht klar ist, hier kurz als Beispiel (der Einfachheit halber nur mit (willkürlichen) Nachnamen):

Albrecht
Brucker
Dornauer
Tischner (Begleitung von Dornauer) 
Eggner
Fischer
Bachmann (Begleitung von Fischer)
Grossmann
Hahn
...
...
Man versteht, was ich meine. Kennt jemand die eine Möglichkeit, das (mit Abhängigkeiten?) so zu sortieren?

Danke für die Antworten!

Gruss
Johannes
Hallo,

als ersten Schritt kann man dem Namen des Begleiters den Namen der Hauptperson voranstellen (siehe Code), dann Spalte A und B sortieren und zum Schluß die Änderung wieder rückgängig machen (Code ist noch zu schreiben).


Code:
Sub Swiss()
for each Ar in columns("B").specialcells(2)
    if instr(Ar, "von") > 0 then
        msgbox right(Ar, len(Ar)-16)
        cells(Ar.row, "A") =  right(Ar, len(Ar)-16) & cells(Ar.row, "A")
    end if
next Ar
End Sub


mfg
Hi Johannes,


Zitat:Falls mein Anliegen nicht klar ist, hier kurz als Beispiel (der Einfachheit halber nur mit (willkürlichen) Nachnamen):

du solltest uns einen Tabellenausschnitt ( http://www.clever-excel-forum.de/thread-47.html ) mit den beiden relevanten Spalten und mit eingetragenen (fiktiven) Personen zeigen. 10-12 Datensätze reichen aus. Alleine deine Beschreibung ist für mich nicht klar. Das verstehe ich nicht:

Zitat:Bei den Beleitpersonen steht in Spalte B "Name Vorname" von der Hauptperson, welche sie begleitet. Bei den "Hauptpersonen" und alleine teilnehmenden ist Spalte B leer.
Hallöchen,

ich versuch's mal ohne Datei Smile Wenn Du irgendwo eine freie Spalte hast, kannst Du auch mit Hilfe von Formeln eine entsprechende Sortierung erreichen. Hier mal ein einfaches Beispiel. In Spalte C übernimmst Du die Namen aus der zweiten Spalte und dann die aus der ersten. Dadurch wird bei den Helfern die Reihenfolge Helfer / Hauptperson herumgedreht. Dann sortierst Du nach Spalte C und anschließend löschst Du sie.

Tabellenblattname: Tabelle1
ABC
1WilliWilli
2BaldBald
3LauterBaldBaldLauter
4BachBach

Benutzte Formeln:
C1: =B1&A1
C2: =B2&A2
C3: =B3&A3
C4: =B4&A4
© schauan
Hallo Johannes,

hier einmal Fenneks Idee mit Formeln und ohne Makros.
Die Liste muss nach den Spalten C und D sortiert werden.
Hallo zusammen

Vielen herzlichen Dank für die sehr schnellen und verständlichen Antworten!

Die Variante von Helmut klagt hervorragend und löst mein Problem. Mit VBA kenne ich mich noch etwas weniger aus, als ich gerne würde...werde aber das von Fennek - nur schon rein aus Lerngründen - in diesen Tagen auch noch ausprobieren.

Cooles Forum hier - ich fand viel Nützliches auch über die Suchfunktion in den Rubriken, danke!

Gruss
Johannes