Gruppieren und sortieren Sie die Zeilen einer Tabelle

918
John Doe

Ich habe eine Tabelle, in der die Spalte Aeinen eindeutigen Wert in jeder Zelle enthält. Spalte Bist entweder leer oder enthält eine Nummer.

 | A | B  ---+---------+--- 1 | Gamma | 1  2 | Echo | 5  3 | Alpha |  4 | Foxtrot | 3  5 | Bravo |  6 | Charlie | 1  7 | Delta |  

Ich möchte die Tabelle so sortieren, dass die Zeilen mit einem nicht leeren Wert in der BSpalte vor denen mit einem Leerzeichen in dieser Spalte angezeigt werden. Die Zeilen mit nicht leeren Werten in müssen Bebenfalls alphabetisch nach Spalten sortiert werden A. Die Sortierreihenfolge der anderen Zeilen ist irrelevant.

Das Ergebnis sollte ungefähr so ​​aussehen:

 | A | B  ---+---------+--- 1 | Charlie | 1  2 | Echo | 5  3 | Foxtrot | 3  4 | Gamma | 1  5 | Alpha |  6 | Bravo |  7 | Delta |  

Zur Zeit sind die leeren Zellen in der Spalte Bvollständig leer und enthalten nicht einmal eine Formel, die eine Null-Zeichenfolge ergibt. In der Zukunft wird sich das wahrscheinlich ändern. Ich weiß nicht, ob dies irgendwelche Antworten beeinflusst.

2
Das Beste, was ich bisher finden konnte, ist, nach der Spalte mit Zahlen (Spalte B) zu sortieren, Alle leeren Zeilen auszublenden und dann Spalte A alphabetisch zu sortieren. Es scheint, als sei dies die einzige Option, es sei denn jemand hat etwas, das für sie funktioniert. John Doe vor 5 Jahren 0

4 Antworten auf die Frage

1
robinCTS

Es gibt tatsächlich eine Lösung für das Ausblenden von Zeilen, keine Filterung und eine einzige Sortierung. Es muss lediglich eine einfache Formel für die bedingte Formatierung zur Spalte hinzugefügt werden B:

Worksheet Screenshot showing Conditional Formatting Rules

Wählen Sie B2:B8, stellen Sie sicher, dass B2es sich um die aktive Zelle handelt, und fügen Sie eine neue Formel für die bedingte Formatierung hinzu. Ändern Sie die Schriftfarbe der Regel Automaticund geben Sie Folgendes als Formel ein:

=B2="" 

Beachten Sie, dass zwar eine Kopfzeile angezeigt wird, diese jedoch nicht erforderlich ist. ( Weitere Informationen finden Sie in den Anmerkungen unten in meiner anderen Antwort .)


Alles was Sie jetzt tun müssen, um das gewünschte Ergebnis zu erzielen, ist diese zweistufige Sortierung:

Worksheet Screenshot showing Sort Order

  1. Sortiere nach Spalte Bauf Font ColorSortiert nachAutomatic On Top
  2. Sortiere nach Spalte Aauf ValuesSortiert nachA to Z

Derselbe Effekt kann erreicht werden, indem anstelle der Schriftfarbe für die bedingte Formatierungsregel eine Füllfarbe verwendet und sortiert wird Cell Color. (Durch die Verwendung der Schriftfarbe ist es einfacher, keine sichtbaren Änderungen für die Daten sichtbar zu machen. Ich habe Rot verwendet, damit es im Screenshot offensichtlich ist, aber die beste Farbe für den allgemeinen Fall ist Schwarz.)


Beachten Sie, dass auf die Sortierung entweder über das Menü DataSort & FilterSort, die Tastenkombination Alt+ A+ Soder von einer beliebigen Dropdown-Liste innerhalb der Zelle zugegriffen werden kann, wenn der Filtermodus ( Alt+ A+ T) aktiviert ist (vorausgesetzt natürlich, es gibt eine Kopfzeile). leer oder nicht, da sonst nicht garantiert werden kann, dass die Sortierung korrekt funktioniert):

Worksheet Screenshot showing how to access Custom Sort from In-cell Dropdown


Im Wesentlichen fügt die Sortierung nach Farbe eine Gruppierungsfunktion hinzu, ähnlich wie in SQL.

Diese Gruppierung kann sehr komplex sein, einschließlich der Verwendung mehrerer Spalten für die Kriterien, wobei nur eine Sortierung auf zwei Ebenen erforderlich ist. Sogar "verschachtelte" Gruppierungen können durchgeführt werden - sie erfordern lediglich zusätzliche Sortierebenen.

Das ist toll! Ich wusste nichts davon. Scott vor 5 Jahren 1
1
robinCTS

Hier ist die No-Hiding-of-Row-, No-Filtering-, No-Helper- Column-, No-Conditional-Formatierung-, Two- Sort-, Three-Step-Lösung, die ich in einem Kommentar zur Selbstantwort des OP erwähnt habe. Es wurde bestätigt, dass es in Excel 2007 funktioniert.

Schritt 1

Sortieren nach Spalte Bauf Valuesgeordnet nach Smallest to Largest:

Worksheet Screenshot showing First Sort

Beachten Sie, dass zwar eine Kopfzeile angezeigt wird, diese jedoch nicht erforderlich ist. (Weitere Informationen finden Sie in den Anmerkungen.)

Schritt 2

Wählen Sie den oberen Teil der Tabelle bis zur letzten Zeile mit einem nicht leeren Wert in der Spalte aus B. Für die Beispieltabelle wäre dies A1:C5.

Der beste Weg, dies für eine große Anzahl von Zeilen und / oder Spalten zu tun (gilt jedoch auch für kleinere Tabellen und vermeidet das manuelle Scrollen oder die Verwendung der Maus) ist die folgende Tastenkombination, die von einer nicht leeren Zelle in der BSpalte ausgeht :

  • Ctrl+ Down;
  • Ctrl+ Rightso oft wie nötig, um zur rechten Spalte der Tabelle zu gelangen (oder halten Sie sie einfach gedrückt, um zur rechten Kante des Blattes zu gelangen);
  • ( Ctrl+ Leftwenn Sie überschreiten und am Anfang der nächsten Tabelle oder der rechten Spalte des Arbeitsblatts landen);
  • Ctrl+ Shift+ Home;

Wenn sich rechts neben der Tabelle keine weiteren Daten befinden, kann diese alternative Sequenz stattdessen verwendet werden:

  • Ctrl+ Down;
  • Ctrl+ Shift+ Up;
  • Shift+Space

Schritt 3

Sortieren nach Spalte Aauf Valuesgeordnet nach A to Z:

Worksheet Screenshot showing Second Sort


Anmerkungen:

  • Die Sortierung in Schritt 1 kann entweder über den Menüpunkt DataSort & FilterSort(oder das entsprechende Tastenkürzel Alt+ A+ S ) oder über die Dropdown-Liste innerhalb der Zelle durchgeführt werden, wenn der Filtermodus aktiviert ist (vorausgesetzt, es gibt natürlich eine Kopfzeile).
  • Die Sortierung ist Schritt 3 und kann nur über den Menüpunkt durchgeführt werden.
  • Diese Methode funktioniert garantiert, auch wenn die Tabellendaten in einer Zeile beginnen 1und keine Kopfzeile haben. Nur meine zwei Lösungen (plus die OPs natürlich) funktionieren für diesen Fall. Tatsächlich sind diese Lösungen die einzigen, die für eine zeilenkopfzeilige Zeilentabelle funktionieren oder sogar zum Laufen gebracht werden können, 1wenn die erste Zelle der Spalte Bleer ist.
  • Es funktioniert auch unabhängig vom Status des Filtermodus. (Es sei denn, die Tabelle ist ohne Kopfzeile und beginnt in Zeile eins, und aus irgendeinem Grund ist der Filter-Modus aktiviert. In diesem Fall sollten Sie die Funktion ausschalten und bereits ausschalten!)
: DI fühlt sich von der Einführung angesprochen: Sie müssen jedoch nur einen Teil der Tabelle manuell auswählen. Dies geschieht durch Scrollen, wenn es sich um eine große Tabelle handelt und die Zellen nicht leer sind. Nun kann ich jedoch erklären, warum ich meine Alternative anstelle der anderen "beschreibe": "Meine Lösung wird sich nicht ändern oder benötigt mehr Zeit für die Ausführung, wenn die Datensätze größer werden. Und es müssen keine Hilfssäulen verwendet werden. Um Ihnen etwas anzuerkennen: Ich mag die Vielfalt Ihrer Ideen! :) Also, lasst uns jetzt unsere Debatte schließen, ok ?! Albin vor 5 Jahren 0
In großen Tabellen ist für diese Lösung (im Gegensatz zu anderen Tabellen) * kein * ¹ erforderlich. Es sind nur drei Tastenkombinationen erforderlich. ² Es wird auch nicht "* ändern" * (???) oder * "mehr Zeit zum Ausführen benötigt" * (???), wenn der Datensatz größer wird. Es verwendet auch keine * "Hilfs" * (Helfer?) Spalten. … ¹ Auch wenn Spalte "B" stattdessen eine weitere Spalte weiter rechts ist, z. B. "ZZ: ZZ". In diesem Fall wird die Sequenz "Strg" + "G"; "ZZ: ZZ"; "Enter" bringt Sie dorthin. (Beachten Sie, dass dieser Fall weniger Auswirkungen auf diese Lösung haben würde als auf andere Lösungen.)… ² Etwas mehr als drei unter sehr ungewöhnlichen Umständen. robinCTS vor 5 Jahren 0
Okay, Sie wollen die Debatte nicht beenden. Also möchte ich zuerst prüfen, was ist Ihr Ziel hier? Wollen Sie nur hören, dass Sie Recht haben, oder sind Sie wirklich an dieser Angelegenheit interessiert und wollen * und motivieren *, darüber zu diskutieren? Albin vor 5 Jahren 0
0
John Doe

Es scheint, als gäbe es keine Möglichkeit, durch strikte Sortierung das zu tun, was ich will, aber hier ist, was für mich funktioniert:

  1. Sortieren Sie die Zeilen nach Spalte B von klein bis groß

  2. Blenden Sie alle Zeilen aus, für die in Spalte B kein Wert angegeben ist

  3. Zeilen nach Spalte A alphabetisch sortieren

Als Alternative zum Ausblenden der Zeilen in Schritt (2) können Sie einfach den Teil der Tabelle auswählen, dessen * Werte * in Spalte "B" enthält. Die Sortierung in Schritt (3) erfolgt dann nur in der ausgewählten Untertabelle (vorausgesetzt, Sie sortieren über "Daten" → "Sortieren und Filtern" → "Sortieren" und nicht aus der Dropdown-Liste im Filtermodus für Zellen). Der Vorteil dieser Methode ist, dass Sie keine ausgeblendeten Zeilen erhalten. (Dies kann in Ihrem speziellen Fall ein Problem sein oder nicht.) robinCTS vor 5 Jahren 0
Ich dachte, ich habe es schon versucht und es hat immer noch die gesamte Tabelle sortiert, auch den nicht hervorgehobenen Bereich. John Doe vor 5 Jahren 0
Ich habe es nur in Excel 2007 versucht, aber ich denke, dass es für neuere Versionen noch funktionieren sollte. Können Sie bestätigen, ob es mit Ihrer Excel-Version funktioniert / nicht funktioniert? robinCTS vor 5 Jahren 0
Gibt es einen Grund, warum Sie die versteckten Zeilen nicht "einblenden"? Albin vor 5 Jahren 0
Die Zeilen werden momentan nicht eingeblendet, da ich diese Datei zum Verwalten einer Sammlung verwende. Ich bearbeite die Datei und interessiere mich nur für die Zeilen, in denen ich die Elemente in der Sammlung verwende. John Doe vor 5 Jahren 0
-2
Albin

Eine Lösung wäre, Sortierung und Filterung zu kombinieren. Es funktioniert am besten, wenn Sie Spaltenüberschriften in der ersten Zeile haben, die aber nicht unbedingt erforderlich sind.

Es ist nicht "nur sortieren", wie Sie es gewünscht haben, es verwendet den Filter. Sie können aber einfach die gesamte Tabelle "auswählen" (durch Aktivieren des Filtermodus wird dies für Sie erledigt), folgen Sie den Schritten und voilà. Es ist auch ziemlich einfach, es in ein Makro "umzuwandeln". In Bezug auf die anderen Lösungen müssen Sie diese unerwünschten Zeilen nicht manuell ausblenden (oder deaktivieren). Sie müssen auch keine zusätzliche Formel einführen (durch bedingte Formatierung von Spalte A oder B oder durch Hinzufügen einer weiteren Spalte).

Jedenfalls geht es hier:

Schalten Sie den Filter ein:

  • Wählen Sie eine beliebige Zelle in Ihrer Liste aus, und aktivieren Sie den Filtermodus (in der Multifunktionsleiste finden Sie sie unter der Registerkarte "Daten". Diese sollte als "Filter" bezeichnet werden). In der ersten Zeile jeder verwendeten Spalte wird ein kleines Dreieck angezeigt

    (Hinweis: Wenn Sie keine Spaltenüberschriften haben, fügen Sie einfach eine leere Zeile am Anfang hinzu und wählen Sie alle verwendeten Spalten manuell aus, in diesem Fall A und B, anstatt "nur" eine Zelle in der Liste auszuwählen.)

Verschieben Sie die Zeilen ohne B-Wert an das Ende der Liste:

  • Spalte B aufsteigend sortieren (durch Anklicken des kleinen Dreiecksymbols in der ersten Zeile von Spalte B und Auswahl der Sortierung nach Wert aufsteigend)

Sortieren Sie die A-Säule und schalten Sie den Filter aus bzw. entfernen Sie ihn

  • Zeilen mit leeren Zellen in Spalte B filtern (erneut durch Klicken auf die Dreieck-Schaltfläche und durch Deaktivieren des Wertes "empty" am unteren Rand der Liste)
  • Spalte A aufsteigend sortieren (so wie Sie Spalte B sortiert haben)
  • Deaktivieren Sie die erweiterte Filterung (auf dieselbe Weise wie Sie sie aktiviert haben). Dadurch wird der Filter für leere Zellen in Spalte B automatisch entfernt

Das sollte Ihnen das richtige Ergebnis geben, soweit ich Sie verstanden habe. Sie müssen auch keine Zeilen manuell verstecken, Excel wird alle Zeilen für Sie ausblenden.

(Bitte beachten Sie, dass das manuelle Ausblenden von Zeilen sich von der Verwendung des Filters zum "Ausblenden" der Zeilen unterscheidet).

Was kann ich verbessern, also werde ich die Abstimmungen los? Vorschläge sind dankbar! Albin vor 5 Jahren 0