Supportnet / Forum / Tabellenkalkulation
Nachname alphabetisch sortieren
Frage
Hallo Excel-Experten,
auf den ersten Blick sieht es nach einer ziemlich simplen Frage aus, ist es aber nicht, glaube ich.
Und zwar habe ich in einer Spalte ca. 100 Namen, mit
Vor-u. Nachnahme. Excel sortiert mir aber die Namen immer mit dem Vornamen alphabetisch, weil der Vorname ja auch an erster Stelle steht(zB.:Petra Müller), ich
möchte aber gerne den Hinternamen alphabisch sortiert haben. Gibt es dafür eine Lösung ??.
Vielen Dank im voraus.
Gruß Peter
Antwort 1 von Carsten
Hallo!
Ich habe ein ähnliches Problem so gelöst:
-zwei leere Spalten einfügen
- in der ersten neuen Spalte mit der Funktion FINDEN für jeden Namen in der jeweiligen Zeile bestimmen, an wievielter Stelle in der Zelle mit dem Namen die Lücke zwischen Vor- und Nachnamen steht
- in der zweiten neuen Spalte mit der Funktion TEIL für jeden Namen in der jeweiligen Zeile den Teil hinter der Lücke (also nur den Nachnamen)ausgeben lassen
- diese zweite neue Spalte und die ursprüngliche Spalte gemeinsam markieren und dann sortieren
Hört sich kompliziert an, funktioniert aber.
Bin gespannt ob jemand einen einfacheren Weg kennt.
- Carsten -
Ich habe ein ähnliches Problem so gelöst:
-zwei leere Spalten einfügen
- in der ersten neuen Spalte mit der Funktion FINDEN für jeden Namen in der jeweiligen Zeile bestimmen, an wievielter Stelle in der Zelle mit dem Namen die Lücke zwischen Vor- und Nachnamen steht
- in der zweiten neuen Spalte mit der Funktion TEIL für jeden Namen in der jeweiligen Zeile den Teil hinter der Lücke (also nur den Nachnamen)ausgeben lassen
- diese zweite neue Spalte und die ursprüngliche Spalte gemeinsam markieren und dann sortieren
Hört sich kompliziert an, funktioniert aber.
Bin gespannt ob jemand einen einfacheren Weg kennt.
- Carsten -
Antwort 2 von nighty
hi Peter :)
du solltest dir einmal ueber einen vernuenftigen aufbau der tabelle gedanken machen anstatt komplizierte loesungen anzustreben .
gruss nighty
du solltest dir einmal ueber einen vernuenftigen aufbau der tabelle gedanken machen anstatt komplizierte loesungen anzustreben .
gruss nighty
Antwort 3 von piter
Hallo nighty,
habe die Tabelle nicht selber erstellt, sonst hätte ich die Nachnamen an erster Stelle gebracht, habe nur keine Zeit alles umzuschreiben.Habe nur nach einer schnellen Lösung gesucht.
Schönen Dank noch an Carsten für den schnellen Lösungsvorschlag.
Gruß Peter
habe die Tabelle nicht selber erstellt, sonst hätte ich die Nachnamen an erster Stelle gebracht, habe nur keine Zeit alles umzuschreiben.Habe nur nach einer schnellen Lösung gesucht.
Schönen Dank noch an Carsten für den schnellen Lösungsvorschlag.
Gruß Peter
Antwort 4 von gresti
Hallo allerseits,
einfacher geht das mit der Funktion Text in Spalten.
Also, eine zusätzliche Spalte neben der Namensspalte einfügen.
Dann die Spalte mit den Namen markieren, auf Daten, Text in Spalten klicken. Als Trennzeichen das Leerzeichen angeben.
Das wars.
Gruß
gresti
einfacher geht das mit der Funktion Text in Spalten.
Also, eine zusätzliche Spalte neben der Namensspalte einfügen.
Dann die Spalte mit den Namen markieren, auf Daten, Text in Spalten klicken. Als Trennzeichen das Leerzeichen angeben.
Das wars.
Gruß
gresti
Antwort 5 von want2cu
Hallo Peter,
ich kann nighty nur zustimmen und dir raten: mach es so wie von Gresti vorgeschlagen.
CU
want2cu
ich kann nighty nur zustimmen und dir raten: mach es so wie von Gresti vorgeschlagen.
CU
want2cu
Antwort 6 von nighty
hi alle :)
geht nicht gibt es natuerlich nicht :)
wie gewuenscht :)
gruss nighty
geht nicht gibt es natuerlich nicht :)
wie gewuenscht :)
gruss nighty
Sub makro01()
Dim zaehler1 As Long
Dim zaehler2 As Long
For zaehler1 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
For zaehler2 = 1 To Len(Cells(zaehler1, 1).Value)
If Mid(Cells(zaehler1, 1).Value, zaehler2, 1) = " " Then
Cells(zaehler1, 1).Value = Mid(Cells(zaehler1, 1), zaehler2 + 1, Len(Cells(zaehler1, 1).Value)) _
& " " & Mid(Cells(zaehler1, 1), 1, zaehler2 - 1)
zaehler2 = Len(Cells(zaehler1, 1).Value)
End If
Next zaehler2
Next zaehler1
Range("A1:A65535").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
For zaehler1 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
For zaehler2 = 1 To Len(Cells(zaehler1, 1).Value)
If Mid(Cells(zaehler1, 1).Value, zaehler2, 1) = " " Then
Cells(zaehler1, 1).Value = Mid(Cells(zaehler1, 1), zaehler2 + 1, Len(Cells(zaehler1, 1).Value)) & _
" " & Mid(Cells(zaehler1, 1), 1, zaehler2 - 1)
zaehler2 = Len(Cells(zaehler1, 1).Value)
End If
Next zaehler2
Next zaehler1
End Sub
Antwort 7 von want2cu
hallo zusammen,
Peter hat nach einer schnellen und einfachen Lösung gesucht.
Die Lösung von Gresti halte ich für die einfachste und praktikabelste.
Natürlich kann ich auch andere Lösungen nehmen und vorher dann fünfmal um den Block laufen und jippieeeh rufen ;-)))
Sorry nighty, das geht nicht gegen dich oder die vielen tollen Lösungen in VBA ;-)
Dann warten wir mal gespannt, wie Peter sich entscheidet.
Humorvolle Grüsse aus dem Bergischen Bermuda Dreieck sendet
want2cu
Peter hat nach einer schnellen und einfachen Lösung gesucht.
Die Lösung von Gresti halte ich für die einfachste und praktikabelste.
Natürlich kann ich auch andere Lösungen nehmen und vorher dann fünfmal um den Block laufen und jippieeeh rufen ;-)))
Sorry nighty, das geht nicht gegen dich oder die vielen tollen Lösungen in VBA ;-)
Dann warten wir mal gespannt, wie Peter sich entscheidet.
Humorvolle Grüsse aus dem Bergischen Bermuda Dreieck sendet
want2cu
Antwort 8 von nighty
hi want2cu :))
grins :)))
gruss nighty
grins :)))
gruss nighty