Hallo und guten Morgen zusammen. Ich wollte mal fragen ob es in Excel möglich ist Tabellen zu sortieren in denen es zusammengehörige Zeilen gibt? Ich habe eine Tabelle mit Überschriften. In dieser Tabelle gehören immer 3 Zeilen zusammen. In Zeile 1 stehen die für die Sortierung relevanten Daten. In den beiden darunterliegenden Zeilen Erklärungen die sich auf Zeile 1 beziehen, aber für die Sortierung keine Rolle spielen. Außerdem kann es sein das eine oder beide Zeilen keinen Inhalt haben. Es ist also eine Struktur die immer 3 Zeilen beinhaltet in der die Daten für die Sortierung immer in der Ersten der drei Zeilen steht. Ist eine Sortierung bei Einhaltung der Struktur überhaupt möglich? Vielleicht per VBA? Ich hänge mal eine Beiseitestelle mit an. Schon einmal vielen Dank fürs lesen.
Moin! Fülle die Leerzeilen in Spalte A mit dem Wert von oben aus. Das geht recht komfortabel mit Bordmitteln:
• markiere A3:A19 • F5, Inhalte, Leerzellen, OK • Formel =A2 mit Strg+Enter abschließen • wieder A3:A19 markieren • kopieren und als Wert wieder einfügen
Jetzt kannst Du "normal" sortieren.
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)
Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:1 Nutzer sagt Danke an RPP63 für diesen Beitrag 28 • Kiosho
Moin Ralf Danke für deine schnelle Antwort. OK, glaube zu verstehen. Das müsste ich mit jeder Spalte so machen, die ich sortieren möchte? Ich wollte eigentlich die Tabelle so "sauber wie möglich halten. Diese Daten haben ja in den Zeilen eigentlich nichts zu suchen. Aber ein guter Ansatz. Man könnte die Daten mit VBA ergänzen und anschließend rauslöschen. Aber die Struktur geht sicher verloren wenn Werte identisch sind?
Meine Antwort ging davon aus, dass nur in Spalte A das Sortierkriterium steht. Alles andere macht in meinen Augen auch keinen Sinn. Dass der Tabellenaufbau nicht den Grundsätzen einer ordnungsgemäßen Liste entspricht, sollte klar sein. Da gilt immer: Pro Zeile ein (kompletter) Datensatz.
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)
Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:1 Nutzer sagt Danke an RPP63 für diesen Beitrag 28 • Kiosho
Ja , Du hast natürlich Recht. Aber das ist eine Tabelle die mir zur Verfügung gestellt wird, und ich muss mal diese oder jene Spalte sortieren. Würde mir einen Haufen Arbeit ersparen wenn ich das so hinbekomme das die darunterliegenden Zeilen immer der "übergeordneten" Zeile (auch wenn diese manchmal leer sind) so mit sortiert werden könnte das diese auch wieder da erscheinen wo sie hingehören. Ich hatte gehofft das es da in Excel eine "einfache" Lösung gibt. Zur Not auch per VBA Nochmal Danke für die schnelle Antwort am frühen Morgen
1. Schritt mach aus deiner Tabelle eine Strg-T-Tabelle. Wegen deiner (unmöglichen) Struktur musst du händisch die komplette Tabelle markieren (statt nur einer Zelle) und dann Strg-T drücken. Da immer 3 Spalten zusammen gehören wählst du als Design der Tabelle eines ohne gebänderte Zeilen.
2. in H1 kommt der Text "Sortierspalte" und in I1 eine Datenüberprüfung mit der Liste deiner möglichen Sortierspalten. Am einfachsten markierst du den Kopf der gerade erstellten Tabelle. Dann hast du aber auch die Spalte "Artikel" mit drin, was weniger geschickt wäre weil nach dieser eben nicht sortiert werden darf. In I1 wählst du die Spalte aus, nach der du sortieren möchtest.
3. in H2 kommt der Text "Nr." und in I2 die Formel =VERGLEICH(I1;Tabelle1[#Kopfzeilen];0) Das ist die Spaltennummer der Sortierspalte in der Tabelle.
4. in F1 (direkt neben der Tabelle) schreibst du "sortieren" und in F2 die Formel =WENN(INDEX(Tabelle1;ZEILE()-ZEILE(Tabelle1[#Kopfzeilen]);$I$2)<>"";INDEX(Tabelle1;ZEILE()-ZEILE(Tabelle1[#Kopfzeilen]);$I$2);INDEX([sortieren];ZEILE()-ZEILE(Tabelle1[#Kopfzeilen])-1)) bei aktuellem Excel wird es etwas kürzer: =LET(z;ZEILE()-ZEILE(Tabelle1[#Kopfzeilen]);x;INDEX(Tabelle1;z;$I$2);WENN(x<>"";x;INDEX([sortieren];z-1))) bzw. wenn man es nicht flexibel braucht reicht selbst bei altem Excel: =WENN(INDEX(A2:E2;1;$I$2)<>"";INDEX(A2:E2;1;$I$2);F1)
5. in I1 Spalte auswählen, nach Spalte F sortieren (über den dortigen Button)
Gruß, Helmut
Win10 - Office365 / MacOS - Office365
Folgende(r) 1 Nutzer sagt Danke an HKindler für diesen Beitrag:1 Nutzer sagt Danke an HKindler für diesen Beitrag 28 • Kiosho
30.08.2023, 11:58 (Dieser Beitrag wurde zuletzt bearbeitet: 30.08.2023, 12:02 von Kiosho.)
Hallo Klaus Dieter. Klar wäre das auch eine Option, wäre mir eh recht wenn man das gleich per vba sortieren könnte. Hauptsache ist, die Struktur muss erhalten bleiben. Also es müssen immer drei zusammenhängende Zeilen ergeben. Hallo Helmut. Die Lösung sieht spannend aus. Dazu benötige ich aber etwas Zeit die ich heute nicht habe. Werde das die Tage natürlich ausprobieren ob das funktioniert und für meinen Fall praktikabel ist. Ich muss die Tabelle mehrmals täglich mit verschiedenen Daten filtern und sortieren. Da wäre zu überlegen ob ich dafür dann eine vorgefertigte Tabelle mit deinen Formeln anfertige in die ich die Daten dann reinkopiere.
=SORTIERENMEHRZEILIG(A2:E19;3;{2.7};{1.-1}) mit (aufwärts, 1) Spalte 2 Artikelnummer, darunter (abwärts, -1) den Text (Spalte 7). Spalte 7 ist Spalte 2 der zweiten Datensatzzeile.
Wenn Ich das richtig sehe wird nach den Artikeln sortiert? Wie kann ich die Formel umstellen das z.B. nach Anzahl oder Einzelpreis sortiert wird? Wenn ich es richtig verstehe, könnte ich die Formel auf jede Überschrift anwenden? und mir die passenden Daten dann rauskopieren? Also ich erstelle die Formel für Rang sortieren, Artikel sortieren, Einzelpreis sortieren etc nebeneinander und hätte für jede Sortierung das passende Ergebnis. Sehe ich das richtig?