Zeilen sortieren nach erstem Wert in Zelle
#1
HAllo,

ich möchte jeweils Zeilen sortieren.
In den Zellen befinden sich einträge wie 2A, 4B, 3C, 1D usw.
Excel soll mir die Werte nach den Ziffern sortieren, also anhand der drei Zahlen möchte ich die Reihenfolge 1D, 2A, 3C, 4B erhalten.
Leider erkennt das Excel bei mir nicht. Er sortiert sie zwar aber ich erkenne keine Regel dahinter.

Gibt es dafür einen Trick. Auf VBA möchte ich verzichten, wenn es geht.

Danke für eure Hilfe!
sera
Top
#2
Hi Sera,

du hast hoffentlich nicht zuviele Zeilen. :05: 

Unter Daten==> Sortieren musst du "Mit bestehender Markierung fortfahren" markieren. Mit Klick auf Sortieren bekommst du das Sortiermenü zu sehen. Hier klickst du Optionen an und stellst die Markierung von Zeilen auf Spalten um. Zweimal mit OK bestätigen.

Im Tabellenausschnitt siehst du das Ergebnis.

[
Bild bitte so als Datei hochladen: Klick mich!
]


Tabelle2

ABCDEF
1Text1Text2Text3Text4Text5
29r8x1QQ2Trr6qunsortiert
31QQ2Trr6q8x9rsortiert

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#3
Hallo Günther,

danke für deine Erklärung. Genau so weit war ich auch schon. Nur leider sortiert er sie nicht nach der Größe. Aus der Zeile mit der Reihenfolge
2A 5B 7C 3D 4E 1F 6G

sortiert er mir nach deinem Vorgehen die Zeile folgendermaßen:

2A 5C 7E 3D 4G 1F 6B

Das heißt, der zerschießt mir einfach alles. Undecided

Liegt es vielleicht daran, dass ich zunächst nur Zahlen in einer Zelle hatte und diese dann mit der Formel =A3&"A" hinzugefügt habe? Huh  


Achja: Ich habe 254 Zeilen :22:



Edit: Das Problem lag an meiner vorher angewendeten Formel, die Buchstaben einzufügen. Ich habe den Zellinhalt nun als Zahlenwert neu eingefügt. Jetzt klappt auch die Sortierung perfekt Smile
Top
#4
Hi,

ja, es liegt daran, dass die Werte mittels Formel zusammengefügt wurde. Da schlage ich dir zwei Wege vor, wie du das in den Griff bekommst.

1. Du kopierst alle Zellen und fügst sie an gleicher Stelle wieder als Werte ein (die Formeln sind dann weg). Dann kannst du nach der beschriebenen Methode sortieren.

2. Bei zukünftigen Aktionen fügst du Zahlen und Buchstaben neben deiner Tabelle untereinander ein, markierst jeweils die zwei zusammengehörigen Zeilen und sortierst nach der Zahlenreihe aufsteigend. Erst danach verkettest du die beiden Werte mit =Zelle&Zelle


Tabelle3

ABCDEFGHIJKLMNOP
1F1A2D3E4B5G6C7ABCDEFGunsortiert
22573416
3
4FADEBGCsortiert
51234567
Formeln der Tabelle
ZelleFormel
A1=I4&I5

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#5
Und gehe ich jetzt richtig in der Annahme, dass ich das bei allen 253 Zeilen einzeln durchklicken muss, AUßER ich benutze ein Makro? Undecided
Top
#6
Ja, so sehe ich das auch. Ich habe auch keine Möglichkeit gefunden, dein Vorhaben mit den normalen Bordmitteln nach Möglichkeit "in einem Rutsch" durchzuführen. Was mit VBA machbar ist, kann ich dir aber leider nicht sagen. VBA und ich sind noch nicht kompatibel. :32:
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#7
Hallöchen,

sehe ich nicht ganz so. Methode 1 sollte doch in einem Rutsch funktionieren.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#8
Hi André,

leider irrst du. Selbst nach Hinzufügen der einzelnen Zeilen im Sortiermenü (Ebene hinzufügen) geht es nicht. Nur die erste Zeile wird sortiert.

[
Bild bitte so als Datei hochladen: Klick mich!
]
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#9
Hallöchen,

da ist der Makrorekorder schon mal ein erster Ansatz, um in die Materie einzusteigen. Ich habe da mal einen Code aufgezeichnet.
Code:
Sub Makro1()
'
' Makro1 Makro
'

'
   Range("A1:D1").Select
   ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Clear
   ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Add Key:=Range("A1:D1") _
       , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
   With ActiveWorkbook.Worksheets("Tabelle1").Sort
       .SetRange Range("A1:D1")
       .Header = xlGuess
       .MatchCase = False
       .Orientation = xlLeftToRight
       .SortMethod = xlPinYin
       .Apply
   End With
   Range("A2").Select
End Sub

Allerdings betrifft das nur eine Zeile, und einen Code für jede Zeile aufzuzeichnen, wäre ja suboptimal. Da hilft dann nur eine Schleife. Das habe ich dann so umgesetzt. Ist noch etwas optimierbar, aber erst mal nahe am aufgezeichneten Code.

Code:
Sub Makro2()
'Variablendeklarationen
'Long
Dim lRowS&
'Zeilenzaehler auf Startzeile setzen
lrow = 1
'Schleife, solange in der ersten Spalte was steht.
Do While Cells(lrow, 1) <> ""
 'Sortiereinstellungen zuruecksetzen
 ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Clear
 'neue Sortierung beginnen. Dabei Key auf Bereich mit Daten festlegen, 6 Spalten breit.
 ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Add Key:=Cells(lrow, 1).Resize(1, 6) _
     , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
 'Mit der Sortierung noch bisschen was anstellen :-)
 With ActiveWorkbook.Worksheets("Tabelle1").Sort
     'Bereich mit Daten festlegen, 6 Spalten breit
     .SetRange Cells(lrow, 1).Resize(1, 6)
     'weitere Sortiereinstellungen
     .Header = xlGuess
     .MatchCase = False
     .Orientation = xlLeftToRight
     .SortMethod = xlPinYin
     'Sortierung ausfuehren
     .Apply
 'Ende Mit der Sortierung noch bisschen was anstellen :-)
 End With
 lrow = lrow + 1
'Ende Schleife, solange in der ersten Spalte was steht.
Loop
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste