Excel-Funktion SORTBY - benutzerdefinierte Sortierung mit Formel

  • Teile Das
Michael Brown

Heute werden wir uns die Syntax und die typischen Verwendungsmöglichkeiten der neuen dynamischen Array-Funktion SORTBY genauer ansehen. Sie werden lernen, wie Sie in Excel mit einer Formel benutzerdefiniert sortieren, eine Liste nach dem Zufallsprinzip sortieren, Zellen nach Textlänge anordnen und vieles mehr.

Microsoft Excel bietet eine Reihe von Möglichkeiten, Textdaten alphabetisch, Datumsangaben chronologisch und Zahlen von der kleinsten bis zur größten oder von der höchsten bis zur niedrigsten Zahl zu sortieren. Es gibt auch eine Möglichkeit, nach Ihren eigenen benutzerdefinierten Listen zu sortieren. Zusätzlich zu den herkömmlichen Sortierfunktionen führt Excel 365 eine brandneue Möglichkeit ein, Daten mit Formeln zu sortieren - sehr praktisch und unglaublich einfach zu bedienen!

    Excel-Funktion SORTBY

    Die Funktion SORTBY in Excel dient dazu, einen Bereich oder ein Feld auf der Grundlage der Werte in einem anderen Bereich oder Feld zu sortieren. Die Sortierung kann nach einer oder mehreren Spalten erfolgen.

    SORTBY ist eine der sechs neuen dynamischen Array-Funktionen, die in Excel für Microsoft 365 und Excel 2021 verfügbar sind. Ihr Ergebnis ist ein dynamisches Array, das auf benachbarte Zellen übergreift und automatisch aktualisiert wird, wenn sich die Quelldaten ändern.

    Die Funktion SORTBY hat eine variable Anzahl von Argumenten - die ersten beiden sind erforderlich, die anderen sind optional:

    SORTBY(array, by_array1, [sort_order1], [by_array2, sort_order2],...)

    Array (erforderlich) - der Bereich von Zellen oder die Reihe von Werten, die sortiert werden sollen.

    By_array1 (erforderlich) - der Bereich oder das Feld, nach dem sortiert werden soll.

    Sortieren_Ordnen1 (optional) - die Sortierreihenfolge:

    • 1 oder weggelassen (Standard) - aufsteigend
    • -1 - absteigend

    By_array2 / Sortieren_Ordnen2 , ... (optional) - zusätzliche Array-/Ordnungspaare, die für die Sortierung verwendet werden sollen.

    Wichtiger Hinweis: Derzeit ist die SORTBY-Funktion nur mit Microsoft 365-Abonnements und Excel 2021 verfügbar. In Excel 2019, Excel 2016 und früheren Versionen ist die SORTBY-Funktion nicht verfügbar.

    SORTBY-Funktion - 4 Dinge zu beachten

    Damit eine Excel SORTBY-Formel korrekt funktioniert, sind einige wichtige Punkte zu beachten:

    • By_array Argumente sollten entweder eine Zeile hoch oder eine Spalte breit sein.
    • Die Array und alle by_array Argumente müssen kompatible Dimensionen haben, zum Beispiel beim Sortieren nach zwei Spalten, Array , by_array1 und by_array2 sollten die gleiche Anzahl von Zeilen haben; andernfalls wird ein #VALUE-Fehler auftreten.
    • Wenn das von SORTBY zurückgegebene Array das Endergebnis ist (Ausgabe in einer Zelle und nicht an eine andere Funktion übergeben), erstellt Excel einen dynamischen Spill-Bereich und füllt ihn mit den Ergebnissen auf. Stellen Sie also sicher, dass Sie genügend leere Zellen unterhalb und/oder rechts von der Zelle haben, in die Sie die Formel eingeben, sonst erhalten Sie einen #SPILL-Fehler.
    • Die Ergebnisse von SORTBY-Formeln werden automatisch aktualisiert, wenn sich die Quelldaten ändern. Neue Einträge, die außerhalb des in der Formel referenzierten Arrays hinzugefügt werden, werden jedoch nicht in die Ergebnisse aufgenommen, es sei denn, Sie aktualisieren die Array Damit das referenzierte Feld automatisch erweitert wird, konvertieren Sie den Quellbereich in eine Excel-Tabelle oder erstellen Sie einen dynamischen benannten Bereich.

    Grundlegende SORTBY-Formel in Excel

    Hier ist ein typisches Szenario für die Verwendung einer SORTBY-Formel in Excel:

    Angenommen, Sie haben eine Liste von Projekten mit dem Wert Sie möchten die Projekte auf einem separaten Blatt nach ihrem Wert sortieren. Da andere Benutzer die Zahlen nicht sehen müssen, möchten Sie das Feld Wert Spalte in den Ergebnissen.

    Diese Aufgabe lässt sich leicht mit der Funktion SORTBY lösen, für die Sie die folgenden Argumente angeben:

    • Array ist A2:A10 - da Sie nicht wollen, dass die Wert Spalte in den Ergebnissen angezeigt werden soll, lassen Sie sie aus dem Array heraus.
    • By_array1 ist B2:B10 - sortieren nach Wert .
    • Sortieren_Reihenfolge1 ist -1 - absteigend, d. h. vom höchsten zum niedrigsten Wert.

    Setzt man die Argumente zusammen, erhält man diese Formel:

    =SORTBY(A2:B10, B2:B10, -1)

    Der Einfachheit halber verwenden wir die Formel auf demselben Blatt - geben Sie sie in D2 ein und drücken Sie die Eingabetaste. Die Ergebnisse verteilen sich automatisch auf so viele Zellen wie nötig (in unserem Fall D2:D10). Aber technisch gesehen befindet sich die Formel nur in der ersten Zelle, und wenn Sie sie aus D2 löschen, werden alle Ergebnisse gelöscht.

    Wenn die Formel auf einem anderen Blatt verwendet wird, nimmt sie die folgende Form an:

    =SORTBY(Blatt1!A2:A10, Blatt1!B2:B10, -1)

    Wo Blatt1 ist das Arbeitsblatt, das die Originaldaten enthält.

    Verwendung der Funktion SORTBY in Excel - Formelbeispiele

    Nachfolgend finden Sie einige weitere Beispiele für die Verwendung von SORTBY, die hoffentlich nützlich und aufschlussreich sind.

    Nach mehreren Spalten sortieren

    Die oben beschriebene Basisformel sortiert Daten nach einer Spalte. Was aber, wenn Sie eine weitere Sortierebene hinzufügen möchten?

    Angenommen, unsere Beispieltabelle hat zwei Felder, Status (Spalte B) und Wert (Spalte C) wollen wir zunächst sortieren nach Status alphabetisch und dann nach Wert absteigend.

    Um nach zwei Spalten zu sortieren, fügen wir einfach ein weiteres Paar der by_array / sort_order Argumente:

    • Array ist A2:C10 - dieses Mal sollen alle drei Spalten in die Ergebnisse einbezogen werden.
    • By_array1 ist B2:B10 - zuerst, sortieren nach Status .
    • Sortieren_Reihenfolge1 ist 1 - alphabetisch sortiert von A bis Z.
    • By_array2 C2:C10 ist - dann sortieren Sie nach Wert .
    • Sortieren_Ordnen2 ist -1 - Sortierung vom größten zum kleinsten.

    Als Ergebnis erhalten wir die folgende Formel:

    =SORTBY(A2:B10, B2:B10, 1, C2:C10, -1)

    Das ordnet unsere Daten genau so an, wie wir sie angewiesen haben:

    Benutzerdefinierte Sortierung in Excel mit einer Formel

    Um Daten in einer benutzerdefinierten Reihenfolge zu sortieren, können Sie entweder die Funktion Benutzerdefinierte Sortierung von Excel verwenden oder eine SORTBY MATCH-Formel auf diese Weise erstellen:

    SORTBY(array, MATCH( bereich_zu_sortieren , benutzerdefinierte_liste , 0))

    Wenn Sie sich unseren Datensatz genauer ansehen, werden Sie wahrscheinlich feststellen, dass es bequemer ist, die Projekte nicht alphabetisch, sondern "logisch" nach ihrem Status zu sortieren, z. B. nach Wichtigkeit.

    Dazu erstellen wir zunächst eine benutzerdefinierte Liste in der gewünschten Sortierreihenfolge ( In Arbeit , Abgeschlossen , In der Warteschleife ), indem Sie jeden Wert in eine separate Zelle im Bereich E2:E4 eingeben.

    Mit der obigen allgemeinen Formel geben wir dann den Quellbereich für Array (A2:C10), die Status Spalte für bereich_zu_sortieren (B2:B10), und die benutzerdefinierte Liste, die wir für benutzerdefinierte_liste (E2:E4).

    =SORTBY(A2:C10, MATCH(B2:B10, E2:E4, 0))

    Das Ergebnis ist, dass wir die Projekte genau nach ihrem Status sortiert haben:

    Um nach der benutzerdefinierten Liste in umgekehrter Reihenfolge zu sortieren, geben Sie -1 für das Feld sort_order1 Argument:

    =SORTBY(A2:C10, MATCH(B2:B10, E2:E4, 0), -1)

    Und Sie werden die Projekte in umgekehrter Richtung sortiert haben:

    Wenn Sie die Datensätze innerhalb der einzelnen Status zusätzlich sortieren möchten, fügen Sie der Formel einfach eine weitere Sortierstufe hinzu, beispielsweise nach Wert (C2:C10), und legen Sie die gewünschte Reihenfolge der Sortierung fest, in unserem Fall aufsteigend:

    =SORTBY(A2:C10, MATCH(B2:B10, E2:E5, 0), 1, C2:C10, 1)

    Ein großer Vorteil der SORTBY-Formel gegenüber der benutzerdefinierten Sortierfunktion von Excel besteht darin, dass die Formel automatisch aktualisiert wird, wenn sich die Originaldaten ändern, während die Funktion bei jeder Änderung bereinigt und neu sortiert werden muss.

    Wie diese Formel funktioniert:

    Wie bereits erwähnt, kann die SORTBY-Funktion von Excel nur "Sortieren nach"-Arrays verarbeiten, deren Dimensionen mit dem Quell-Array kompatibel sind. Da unser Quell-Array (C2:C10) 9 Zeilen enthält und die benutzerdefinierte Liste (E2:E4) nur 3 Zeilen, können wir sie nicht direkt an die by_array Stattdessen verwenden wir die MATCH-Funktion, um ein 9-zeiliges Array zu erstellen:

    MATCH(B2:B10, E2:E5, 0)

    Hier verwenden wir die Status Spalte (B2:B10) als Nachschlagewerte und unsere benutzerdefinierte Liste (E2:E5) als Nachschlagearray. Das letzte Argument wird auf 0 gesetzt, um nach exakten Übereinstimmungen zu suchen. Als Ergebnis erhalten wir ein Array mit 9 Zahlen, die jeweils die relative Position einer bestimmten Status Wert in der benutzerdefinierten Liste:

    {1;3;2;1;3;2;2;1;2}

    Dieses Array geht direkt an die by_array Argument der Funktion SORTBY und zwingt sie, die Daten in der Reihenfolge zu platzieren, die den Elementen des Arrays entspricht, d.h. zuerst Einträge, die durch 1er repräsentiert werden, dann Einträge, die durch 2er repräsentiert werden, und so weiter.

    Zufällige Sortierung in Excel mit einer Formel

    In früheren Excel-Versionen können Sie eine zufällige Sortierung mit der Funktion RAND durchführen, wie in diesem Tutorial erklärt: Wie man eine Liste in Excel zufällig sortiert.

    Im neuen Excel können Sie eine leistungsfähigere RANDARRAY-Funktion zusammen mit SORTBY verwenden:

    SORTBY( Array , RANDARRAY(ROWS( Array )))

    Wo Array sind die Quelldaten, die Sie mischen möchten.

    Diese allgemeine Formel funktioniert sowohl für eine Liste, die aus einer einzigen Spalte besteht, als auch für einen mehrspaltigen Bereich.

    Um zum Beispiel eine Liste zufällig in A2:A10 zu sortieren, verwenden Sie diese Formel:

    =SORTBY(A2:A10, RANDARRAY(ROWS(A2:A10)))

    Um die Daten in A2:C10 zu mischen, wobei die Zeilen zusammenbleiben, verwenden Sie diese:

    =SORTBY(A2:C10, RANDARRAY(ROWS(A2:C10)))

    Wie diese Formel funktioniert:

    Die Funktion RANDARRAY erzeugt ein Array von Zufallszahlen, das für die Sortierung verwendet wird, und Sie übergeben es in der Funktion by_array Um festzulegen, wie viele Zufallszahlen generiert werden sollen, zählen Sie die Anzahl der Zeilen im Quellbereich mit der Funktion ROWS und "füttern" diese Zahl mit der Funktion SORTBY. Zeilen Argument von RANDARRAY. Das ist es!

    Hinweis: Wie sein Vorgänger ist auch RANDARRAY eine flüchtige Funktion, die bei jeder Neuberechnung des Arbeitsblatts ein neues Array von Zufallszahlen erzeugt. Das hat zur Folge, dass Ihre Daten bei jeder Änderung des Arbeitsblatts neu sortiert werden. Um die automatische Neuordnung zu verhindern, können Sie die Funktion Einfügen Spezial > Werte Funktion, um Formeln durch ihre Werte zu ersetzen.

    Zellen nach Stringlänge sortieren

    Um Zellen nach der Länge der darin enthaltenen Textstrings zu sortieren, verwenden Sie die Funktion LEN, um die Anzahl der Zeichen in jeder Zelle zu zählen, und geben die berechneten Längen an die Funktion by_array Argument von SORTBY. Das sort_order Argument kann entweder auf 1 oder -1 gesetzt werden, je nach der bevorzugten Sortierreihenfolge.

    Zum Sortieren nach der kleinsten bis zur größten Textzeichenfolge:

    SORTBY(array, LEN(array), 1)

    Sortieren nach Textstrings vom größten zum kleinsten:

    SORTBY(array, LEN(array), -1)

    Und hier ist eine Formel, die diesen Ansatz anhand echter Daten demonstriert:

    =SORTBY(A2:A7, LEN(A2:A7), 1)

    Dabei sind A2:A7 die ursprünglichen Zellen, die Sie nach der Textlänge in aufsteigender Reihenfolge sortieren möchten:

    SORTBY vs. SORT

    In der Gruppe der neuen dynamischen Array-Funktionen von Excel gibt es zwei, die für die Sortierung bestimmt sind. Nachfolgend werden die wichtigsten Unterschiede und Gemeinsamkeiten aufgeführt und es wird erläutert, wann die einzelnen Funktionen am besten eingesetzt werden.

    • Anders als die Funktion SORT erfordert SORTBY nicht, dass das Array "Sortieren nach" Teil des Quell-Arrays ist, und es muss auch nicht in den Ergebnissen erscheinen. Wenn Ihre Aufgabe also darin besteht, einen Bereich auf der Grundlage eines anderen unabhängigen Arrays oder einer benutzerdefinierten Liste zu sortieren, ist SORTBY die richtige Funktion. Wenn Sie einen Bereich auf der Grundlage seiner eigenen Werte sortieren möchten, ist SORT besser geeignet.
    • Beide Funktionen unterstützen mehrere Sortierebenen und können mit anderen dynamischen Array- und konventionellen Funktionen verkettet werden.
    • Beide Funktionen sind nur für Benutzer von Excel 365 und Excel 2021 verfügbar.

    Excel SORTBY-Funktion funktioniert nicht

    Falls Ihre SORTBY-Formel einen Fehler zurückgibt, liegt das höchstwahrscheinlich an einem der folgenden Gründe.

    Ungültige by_array-Argumente

    Die by_array Argumente müssen eine einzelne Zeile oder eine einzelne Spalte sein und von der Größe her mit der Array Zum Beispiel, wenn Array hat 10 Zeilen, by_array sollte ebenfalls 10 Zeilen enthalten, da sonst ein #VALUE!-Fehler auftritt.

    Ungültige sort_order Argumente

    Die sort_order Argumente können nur 1 (aufsteigend) oder -1 (absteigend) sein. Wenn kein Wert gesetzt wird, ist SORTBY standardmäßig aufsteigend. Wenn ein anderer Wert gesetzt wird, wird ein #VALUE!-Fehler zurückgegeben.

    Es gibt nicht genug Platz für Ergebnisse

    Wie jede andere dynamische Array-Funktion schüttet SORTBY die Ergebnisse in einen automatisch in der Größe veränderbaren und aktualisierbaren Bereich aus. Wenn nicht genügend leere Zellen vorhanden sind, um alle Werte anzuzeigen, wird ein #SPILL!-Fehler ausgelöst.

    Quellarbeitsmappe ist geschlossen

    Wenn eine SORTBY-Formel auf eine andere Excel-Datei verweist, müssen beide Arbeitsmappen geöffnet sein. Wenn die Quellarbeitsmappe geschlossen ist, tritt ein #REF!-Fehler auf.

    Ihre Excel-Version unterstützt keine dynamischen Arrays

    Wenn die Funktion SORT in einer vordynamischen Version von Excel verwendet wird, gibt sie einen #NAME?-Fehler zurück.

    So verwenden Sie die Funktion SORTBY in Excel, um benutzerdefinierte Sortierungen und andere Dinge vorzunehmen. Ich danke Ihnen für die Lektüre und hoffe, Sie nächste Woche in unserem Blog begrüßen zu dürfen!

    Übungsheft zum Herunterladen

    Excel SORTBY-Formeln (.xlsx-Datei)

    Michael Brown ist ein begeisterter Technologie-Enthusiast mit einer Leidenschaft für die Vereinfachung komplexer Prozesse mithilfe von Softwaretools. Mit mehr als einem Jahrzehnt Erfahrung in der Technologiebranche hat er seine Fähigkeiten in Microsoft Excel und Outlook sowie Google Sheets und Docs verfeinert. Michaels Blog widmet sich dem Teilen seines Wissens und seiner Expertise mit anderen und bietet leicht verständliche Tipps und Tutorials zur Verbesserung von Produktivität und Effizienz. Egal, ob Sie ein erfahrener Profi oder ein Anfänger sind, Michaels Blog bietet wertvolle Einblicke und praktische Ratschläge, wie Sie diese wichtigen Softwaretools optimal nutzen können.