Excel Blöcke sortieren
#1
Guten Morgen,

ich habe mehrere Excel-Blöcke in Excel erstellt. Ein Block besteht aus 3 Zeilen. Innerhalb einer Zeile aus mehreren Zellen.
Nun möchte ich die Blöcke nach bestimmten Kriterien sortieren.

Wie muss ich hier vorgehen?

Vielen Dank

Lausbub
Antworten Top
#2
Hallo,

das geht überhaupt nicht, Excel eignet sich nicht dafür, Daten in Blöcken zu verwalten. Es gilt die Regel: eine Zeile - ein Datensatz. Schreib alles nebeneinander und gut ist.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#3
Moin!
Wenn Du eine zusätzliche Spalte "Gruppe" nimmst und die Leerzeilen entfernst, geht das durchaus.
Sortiert wird dann erst nach Gruppe  und dann nach den anderen Kriterien. 

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#4
Geht jetzt hier weiter:
https://www.office-fragen.de/thread-29237.html
Antworten Top
#5
Da hat sich der "Lausbub" durch glatt in die "Ommi" verwandelt Wink

@Lausbub: Wiese führst Du Deine Anfrage nicht hier weiter?
Antworten Top
#6
Hallo


Per VBA könntest du das erledigen lassen


Hier Beispiel:
- für Daten in Spalte A (bis Z)
- Sortierung: Spalte A
- Blöcke haben Überschriften

Code:
Sub SortiereBloecke()
    Dim ws As Worksheet
    Set ws = ActiveSheet
    Dim zeile As Long, startZeile As Long
    Dim letzteZeile As Long
   
    letzteZeile = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
    zeile = 1

    Do While zeile <= letzteZeile
        ' ohne Leerzeilen
        Do While ws.Cells(zeile, 1).Value = "" And zeile <= letzteZeile
            zeile = zeile + 1
        Loop
        startZeile = zeile
       
        'Ende des Blocks
        Do While ws.Cells(zeile, 1).Value <> "" And zeile <= letzteZeile
            zeile = zeile + 1
        Loop
       
        'Sortieren nur Block
        If zeile > startZeile Then
            ws.Sort.SortFields.Clear
            ws.Sort.SortFields.Add Key:=ws.Range("A" & startZeile & ":A" & (zeile - 1)), _
                SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
           
            With ws.Sort
                .SetRange ws.Range("A" & startZeile & ":Z" & (zeile - 1))
                .Header = xlYes
                .MatchCase = False
                .Orientation = xlTopToBottom
                .SortMethod = xlPinYin
                .Apply
            End With
        End If
    Loop
End Sub

Vorher:
Arbeitsblatt mit dem Namen 'Tabelle2'
ABC
1ABC
2a1b1c1
3a0b0c0
4
5
6AABBCC
7445566
81112dd
93312555
10
11
12AAABBBCCC
13xxsdssdsd
14bbdsdsggg
15aassffggg

Nachher:
Arbeitsblatt mit dem Namen 'Tabelle1'
ABC
1ABC
2a0b0c0
3a1b1c1
4
5
6AABBCC
71112dd
83312555
9445566
10
11
12AAABBBCCC
13aassffggg
14bbdsdsggg
15xxsdssdsd


LG UweD
Antworten Top
#7
(24.04.2025, 13:00){Boris} schrieb: @Lausbub: Wiese führst Du Deine Anfrage nicht hier weiter?

Er hat ja versucht, mich während meiner Arbeit per PN zu motivieren.
Zitat:Hallo Ralf,
deine Empfehlung hört sich vielversprechend an, aber leider habe ich es nicht verstanden.
Könntest du mir bitte ein kleines Beispiel senden?

Auf die absurde Idee, mal selbst ein Beispiel einzustellen und somit die Allgemeinheit zu aktivieren, kam er nicht.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#8
Zitat:Auf die absurde Idee, mal selbst ein Beispiel einzustellen und somit die Allgemeinheit zu aktivieren, kam er nicht.

72
Antworten Top
#9
Hallo zusammen,

auch wenn man vom TE nichts mehr hört, die Aufgabe hat mich gereizt und ich habe mal was entworfen für 365. Es werden Blöcke nach dem Wert der ersten Zelle im Block sortiert:


.xlsx   Sortieren_Block.xlsx (Größe: 10,68 KB / Downloads: 4)

Vielleicht kann ja einer, der mit den neuen Funktionen besser vertraut ist, da ja noch was verbessern.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#10
Moin Edgar

Ist ya;INDEX(xc;;1) (wobei xc;HSTAPELN(xa;xb) gilt) nicht identisch mit xb;A1:C24?
Wir sehen uns!
... Detlef

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

Antworten Top


Gehe zu:


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