1.2k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo ,

folgendes Problem:
Ich habe mir als Excel-Datei eine Adress-Übersicht erstellt, die verschiedene Spalten, z.B. A bis F enthält..In Zeile 1, Spalte A der Name, die Spalten B bis F enthalten jeweils mehrzeilige Zusatzangaben (2-4) zu diesem Namen. Der nächste Name würde z.B. in Spalte A Zeile 5 mit den entsprechenden Zusatzangaben stehen, u.s.w.

Das heisst, in Spalte A steht immer nur der Name, der mir auch als Sortierkriterium dienen soll (alphabetisch) mit den dazugehörigen Zeilen der Zusatzangaben.

Wie müsste ich den Sortiervorgang durchführen, damit nich Zeile für Zeile nur A sortiert wird, sondern incl. mit dem dazugehörigen Datenblock.

Vielleicht kann mir jemand helfen?

Danke!

4 Antworten

0 Punkte
Beantwortet von
Hallo Sortierer,

wenn ich dich richtig verstehe sind die Zellen A2 bis A4 leer, da deine Zusatzdaten in B2:F4 stehen. Das kannst du nutzen.

Schreibe in A2 die Formel =A1&Zeile(A2)
dann in A3 die Formel =A1&Zeile(A3)
und in A4 die Formel =A1&Zeile(A4)

Wenn es dich stört, dass du jetzt in den Zellen was drin stehen hast kannst du über das Zahlenformat ;;; ausblenden.

Kopiere nun die drei Zeilen A2 bis A4 in alle anderen Leeren Zeilen der Spalte A

Jetzt solltest du die Spalte A sortieren können.
PS: ich habe das zwar grad nicht getestet, sollte aber funktionieren.

Gruß Mr. K.
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hallo sortierer ^^

auf jedenfall eine ungewöhnliche structur :-)

gruss nighty

Sub Sortieren5Block()
Dim ARRQ() As Variant, ARRS() As Variant
Dim IndexZ As Long, Lzeile As Long
Lzeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
ARRQ = Range("A2:A" & Lzeile)
ARRS = Range("A2:A" & Lzeile)
For IndexZ = 1 To Lzeile - 1 Step 5
ARRQ(IndexZ + 1, 1) = ARRQ(IndexZ, 1)
ARRQ(IndexZ + 2, 1) = ARRQ(IndexZ, 1)
ARRQ(IndexZ + 3, 1) = ARRQ(IndexZ, 1)
ARRQ(IndexZ + 4, 1) = ARRQ(IndexZ, 1)
Next IndexZ
Range("A2:A" & Lzeile) = ARRQ
Columns("A:F").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
For IndexZ = 1 To Lzeile - 1 Step 5
Set suche = ActiveSheet.Range("A1:A" & Lzeile).Find(ARRS(IndexZ, 1))
Cells(suche.Row + 1, 1) = ARRS(IndexZ + 1, 1)
Cells(suche.Row + 2, 1) = ARRS(IndexZ + 2, 1)
Cells(suche.Row + 3, 1) = ARRS(IndexZ + 3, 1)
Cells(suche.Row + 4, 1) = ARRS(IndexZ + 4, 1)
Next IndexZ
End Sub
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi sortierer ^^

jeder datensatz muss 5 zeilen haben

fuer variable blöcke fehlt ein eindeutiger index zum zuordnen der blöcke

gruss nighty
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi sortierer ^^

ein eindeutiger index waere z.b. eine vorrausgehende/alleinige zahl/sondeerzeichen
z,b. in spalte a
1 oder 1 Peter
> oder >Peter
oder auch Sonderzeichen sichtbare/unsichtbare
etc.

gruss nighty
...