Hallo zusammen,
aus einem 3D Programm heraus, exportiere ich die Infos wie die Punkte die ein Objekt bilden, im Raum stehen – daher erhalte ich eine Tabelle mit 4 Spalten – Indexnummer des Punktes, X Y Z Wert.
Das sieht dann so aus
Ich möchte diese Tabelle zeilenweise umsortiert haben – die Kombination aus Index + X Y Z soll also erhalten bleiben.
Ich benötige allerdings keine Sortierung nach einer Spalte (wie hier dargestellt)
sondern eine Sortierung die 3 Spalten beinhaltet – also eine Sortierung die der grünen Linie folgt.
Ich hoffe ich habe es verständlich ausgedrückt ; ) Ist das machbar ?
Angehängt die Tabelle
Danke & Gruß
Dateien (auch Bilder) bitte im Forum hochladen.
Hallo Dumdumdum,
Zitat:Ich hoffe ich habe es verständlich ausgedrückt ; )
Nö...
Nach welchem Prinzip soll sortiert werden? Wie willst Du nach einer ZickZack-Linie sortieren?
Hast Du mal eine Beispieldatei mit Rohdaten und dem gewünschten Ergebnis?
Gruß,
Lutz
Meine Bilder wurden leider nicht mit hochgeladen, daher hier als Anhang.
Die Sortierung soll eben Zeilenweise erfolgen, aber alle drei Werte (X Y Z) mit berücksichtigt werden
Erste Spalte fortlaufende Nummer (die werden im zweiten Schritt entfernt und eine neue Fortlaufende Abfolge eingefügt)
Die Formatierung soll dann vom Sinn so aussehen
X Y Z
500 300 200
500 250 150
450 1000 200
450 200 800
400 800 1000
Es werden die Werte in den 3 Spalten berücksichtigt. die Werte in Y und Z können größer als X sein
da sie immer untergeordnet der vorherigen Spalte gewertet werden.
Hoffe, das ist verständlicher ?
Hallöchen,
Zitat:Hoffe, das ist verständlicher ?
ich glaube, noch nicht ...
Stelle doch mal ein paar Zahlen vor und nach der Sortierung dar und beschreibe genau, wie Du sortiert hast und falls es mehrere Schritte sind dann auch schrittweise, damit man das Prinzip erkennen kann.
Ich vermute, dass Du nach der letzten Zeile sortiert hast sodass links der kleinste und rechts der größte Wert steht?
Oder nach der ersten sodass links der größte und rechts der kleinste Wert steht?
Hallo Christian,
per VBA ginge es z.B. so:
Sub SortienZelenweise()
Dim i As Long, j As Long
Dim varB As Variant, varS As Variant
varB = Range("B2:D27").Value
ReDim varS(1 To UBound(varB, 1) * UBound(varB, 2), 1 To 1)
For i = 1 To UBound(varB, 1)
For j = 1 To UBound(varB, 2)
varS(i * UBound(varB, 2) - UBound(varB, 2) + j, 1) = Val(varB(i, j))
Next j
Next i
Application.ScreenUpdating = False
With Workbooks.Add(xlWBATWorksheet).Worksheets(1).Cells(1).Resize(UBound(varS))
.Value = varS
.Sort Key1:=.Cells(1), Order1:=xlAscending, Header:=xlNo
varS = .Value
.Parent.Parent.Close False
End With
For i = 1 To UBound(varB, 1)
For j = 1 To UBound(varB, 2)
varB(i, j) = Replace(varS(i * UBound(varB, 2) - UBound(varB, 2) + j, 1) & " cm", ",", ".")
Next j
Next i
Range("F2").Resize(UBound(varB, 1), UBound(varB, 2)).Value = varB
Application.ScreenUpdating = True
End Sub
Die Ausgabe erfolgt ab F2.
Gruß Uwe
Hallo Dumdumdum,
entweder ich hab's nicht überrissen oder es ist sooo einfach...
Markiere Deine Daten, dann über Daten -> Sortieren und Filtern -> Benutzerdefiniertes Sortieren.
Im neuen Fenster dann Ebenen hinzufügen.
1. Ebene X
2. Ebene Y
3. Ebene Z
Anbei noch ein Screenshot.
Ist das Ergebnis das, was Du willst?
Gruß,
Lutz