Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Mehrere Zellen in einer Zeile nach benutzerdefinierter Liste sortieren
#1
Hallo,
ich möchte mehrere Zellen mit Text in einer Zeile nach einer Vorgabe sortieren, die in einer Liste steht. Da ich die Sortierung für mehr als 4000 Zeilen machen muss, möchte ich gerne eine Funktion nutzen und nicht über das Dialogfeld "Sortieren" arbeiten. Die Sortierreihenfolge ist wie im Beispiel nicht alphabetisch.


.xlsx   Beispiel2.xlsx (Größe: 9,15 KB / Downloads: 10)

Vielen Dank!
Antworten Top
#2
Moin

Arbeitsblatt mit dem Namen 'Tabelle2'
ABCDEFGHIJ
1Anzahlerstezweitedrittevierteerste sortiertzweite sortiertdritte sortiertvierte sortiert
21grüngelb00grüngelb00
32blaublaugelbgrüngrüngelbblaublau
41gelb000gelb000
54rotblaugelb0gelbblaurot0
63gelbrot00gelbrot00
71grün000grün000
8
9
10grün
11gelb
12blau
13rot
140

ZelleFormel
G2=INDEX($A$10:$A$14;AGGREGAT(15;6;VERGLEICH($B2:$E2;$A$10:$A$14;0);SPALTEN($G2:G2)))
Verwendete Systemkomponenten: [Windows (32-bit) NT 6.01] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

[-] Folgende(r) 1 Nutzer sagt Danke an shift-del für diesen Beitrag:
  • asdler
Antworten Top
#3
Hallo,

so:
Code:
=WENNFEHLER(INDEX($A$10:$A$14;AGGREGAT(15;6;VERGLEICH($B2:$E2;$A$10:$A$14;0);SPALTE(A1)));"")
Oh, da habe ich vergessen zu aktualisieren. Detlef war schneller. Lasse es aber stehen, da ich den Wennfehler noch drumherum machen würde.
Gruß
Michael
[-] Folgende(r) 1 Nutzer sagt Danke an Der Steuerfuzzi für diesen Beitrag:
  • asdler
Antworten Top
#4
Hallo Asdler,

versuche es mal mit diesem Makro:

Code:
Sub sort()
   Dim lngZeile As Long
   Dim strBer As String
   Application.ScreenUpdating = False
   For lngZeile = 2 To 4000
       strBer = "B" & lngZeile & ":" & "I" & lngZeile
       Tabelle1.sort.SortFields.Clear
       Tabelle1.sort.SortFields.Add Key:=Range(strBer), SortOn:=xlSortOnValues, _
           Order:=xlAscending, CustomOrder:="gr?n, gelb, blau, rot, 0", DataOption:=xlSortNormal
       With ActiveWorkbook.Worksheets("Tabelle1").sort
           .SetRange Range(strBer)
           .Header = xlGuess
           .MatchCase = False
           .Orientation = xlLeftToRight
           .SortMethod = xlPinYin
           .Apply
       End With
   Next lngZeile
   Application.ScreenUpdating = True
End Sub


Hinter CustomOrder müsstest du deine tatsächlichen Sortierbegriffe eintragen. 
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top


Gehe zu:


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