Inhoudsopgave
De tutorial laat zien hoe u de functie SORT kunt gebruiken om gegevensreeksen dynamisch te sorteren. U leert een formule om in Excel alfabetisch te sorteren, getallen in oplopende of aflopende volgorde te rangschikken, op meerdere kolommen te sorteren, en meer.
De sorteerfunctie bestaat al heel lang, maar met de introductie van dynamische matrices in Excel 365 verscheen er een verbazingwekkend eenvoudige manier om te sorteren met formules. Het mooie van deze methode is dat de resultaten automatisch worden bijgewerkt wanneer de brongegevens veranderen.
Excel SORT functie
De functie Sorteren in Excel sorteert de inhoud van een matrix of bereik op kolommen of rijen, in oplopende of aflopende volgorde.
SORT behoort tot de groep Dynamische matrixfuncties. Het resultaat is een dynamische matrix die automatisch verticaal of horizontaal overloopt naar naburige cellen, afhankelijk van de vorm van de bronmatrix.
De syntaxis van de SORT-functie is als volgt:
SORT(array, [sort_index], [sort_order], [by_col])Waar:
Array (vereist) - is een array van waarden of een bereik van cellen om te sorteren. Dit kunnen alle waarden zijn, inclusief tekst, nummers, datums, tijden, enz.
Sorteer_index (optioneel) - een geheel getal dat aangeeft op welke kolom of rij moet worden gesorteerd. Indien weggelaten, wordt de standaardindex 1 gebruikt.
Sorteer volgorde (facultatief) - bepaalt de sorteervolgorde:
- 1 of weggelaten (standaard) - oplopende volgorde, d.w.z. van kleinst naar grootst
- -1 - aflopende volgorde, d.w.z. van groot naar klein
By_col (optioneel) - een logische waarde die de sorteerrichting aangeeft:
- FALSE of weggelaten (standaard) - sorteren op rij. U zult deze optie meestal gebruiken.
- Gebruik deze optie als uw gegevens horizontaal in kolommen zijn georganiseerd, zoals in dit voorbeeld.
Excel SORT-functie - tips en opmerkingen
SORT is een nieuwe dynamische matrixfunctie en heeft als zodanig een paar bijzonderheden waarvan u zich bewust moet zijn:
- Momenteel is de SORT-functie alleen beschikbaar in Microsoft 365 en Excel 2021. Excel 2019, Excel 2016 ondersteunen geen dynamische matrixformules, dus de SORT-functie is niet beschikbaar in deze versies.
- Indien de matrix die door een SORT-formule wordt geretourneerd het eindresultaat is (d.w.z. niet wordt doorgegeven aan een andere functie), maakt Excel dynamisch een bereik van passende grootte en vult dit met de gesorteerde waarden. Zorg er dus voor dat u altijd voldoende lege cellen hebt onderaan of/en rechts van de cel waar u de formule invoert, anders treedt een #SPILL-fout op.
- De resultaten worden dynamisch bijgewerkt als de brongegevens veranderen. De array van de formule niet automatisch wordt uitgebreid met nieuwe items die buiten de gerefereerde array Om dergelijke items op te nemen, moet u ofwel de array verwijzing in uw formule, of converteer het bronbereik naar een tabel zoals in dit voorbeeld, of maak een dynamisch benoemd bereik.
Basis Excel SORT formule
Dit voorbeeld toont een basisformule voor het sorteren van gegevens in Excel in oplopende en aflopende volgorde.
Stel dat uw gegevens alfabetisch zijn gerangschikt zoals in de schermafbeelding hieronder. U wilt de nummers in kolom B sorteren zonder de gegevens te breken of te vermengen.
Formule om in oplopende volgorde te sorteren
Om de waarden in kolom B te sorteren van klein naar groot, is dit de te gebruiken formule:
=SORT(A2:B8, 2, 1)
Waar:
- A2:B8 is de bronmatrix
- 2 is het kolomnummer waarop gesorteerd moet worden
- 1 is de oplopende sorteervolgorde
Aangezien onze gegevens zijn georganiseerd in rijen, kan het laatste argument worden weggelaten zodat de standaardwaarde FALSE is - sorteren op rijen.
Voer gewoon de formule in een lege cel in (D2 in ons geval), druk op Enter , en de resultaten zullen automatisch overlopen naar D2:E8.
Formule om aflopend te sorteren
Om gegevens aflopend te sorteren, d.w.z. van groot naar klein, stelt u de optie volgorde argument op -1 zoals dit:
=SORT(A2:B8, 2, -1)
Voer de formule in in de cel linksboven van het doelbereik en u krijgt dit resultaat:
Op soortgelijke wijze kunt u tekstwaarden sorteren op alfabetische volgorde van A tot Z of van Z tot A.
Gegevens sorteren in Excel met een formule
De onderstaande voorbeelden tonen enkele typische toepassingen van de SORT-functie in Excel en enkele niet-triviale toepassingen.
Excel Sorteren op kolom
Wanneer u gegevens sorteert in Excel, verandert u meestal de volgorde van de rijen. Maar wanneer uw gegevens horizontaal zijn georganiseerd met rijen die labels bevatten en kolommen die records bevatten, moet u wellicht van links naar rechts sorteren in plaats van van boven naar beneden.
Om in Excel per kolom te sorteren, stelt u de by_col op TRUE. In dit geval, sorteer_index staat voor een rij, niet voor een kolom.
Gebruik bijvoorbeeld deze formule om de onderstaande gegevens te sorteren op aantal, van hoogst naar laagst:
=SORT(B1:H2, 2, 1, TRUE)
Waar:
- B1:H2 is de te sorteren brongegevens
- 2 is de sorteerindex, want we sorteren getallen in de tweede rij
- -1 geeft de aflopende sorteervolgorde aan
- TRUE betekent kolommen sorteren, geen rijen
Sorteren op meerdere kolommen in verschillende volgorde (sorteren op meerdere niveaus)
Wanneer u met complexe gegevensmodellen werkt, hebt u vaak een sortering op meerdere niveaus nodig. Kan dat met een formule? Ja, gemakkelijk! Wat u doet is arrayconstanten opgeven voor de sorteer_index en volgorde argumenten.
Bijvoorbeeld, om de onderstaande gegevens eerst te sorteren op Regio (kolom A) van A tot Z, en dan door Qty . (kolom C) van klein naar groot:
- Array de gegevens in A2:C13.
- Sorteer_index is de matrixconstante {1,3}, omdat we eerst sorteren op Regio (1e kolom), en dan door Qty (3e kolom).
- Sorteer volgorde is de matrixconstante {1,-1}, aangezien de 1e kolom oplopend gesorteerd moet worden en de 3e kolom aflopend.
- By_col is weggelaten omdat we rijen sorteren, wat standaard is.
Als we de argumenten samenvoegen, krijgen we deze formule:
=SORT(A2:C13, {1,3}, {1,-1})
De tekstwaarden in de eerste kolom zijn alfabetisch gesorteerd en de getallen in de derde kolom van groot naar klein:
Sorteren en filteren in Excel
Wanneer u gegevens wilt filteren met bepaalde criteria en de uitvoer op volgorde wilt zetten, gebruikt u de functies SORT en FILTER samen:
SORT(FILTER(array, criteria_bereik = criteria ), [sort_index], [sort_order], [by_col])De functie FILTER krijgt een matrix van waarden op basis van de criteria die u definieert en geeft die matrix door aan het eerste argument van SORT.
Het beste van deze formule is dat de resultaten ook worden uitgevoerd als een dynamisch morsbereik, zonder dat u op Ctrl + Shift + Enter hoeft te drukken of hoeft te raden naar hoeveel cellen u het moet kopiëren. Zoals gewoonlijk typt u een formule in de bovenste cel en drukt u op de Enter-toets.
Als voorbeeld gaan we artikelen met aantallen gelijk aan of groter dan 30 (>=30) uit de brongegevens in A2:B9 halen en de resultaten in oplopende volgorde rangschikken.
Hiervoor stellen we eerst de voorwaarde op, bijvoorbeeld in cel E2 zoals in de onderstaande afbeelding. En vervolgens bouwen we onze Excel SORT-formule op deze manier op:
=SORT(FILTER(A2:B9, B2:B9>=E2), 2)
Afgezien van array gegenereerd door de FILTER-functie, geven we alleen de sorteer_index De overige twee argumenten zijn weggelaten omdat de standaardinstellingen precies werken zoals we nodig hebben (oplopend sorteren, per rij).
N grootste of kleinste waarden krijgen en de resultaten sorteren
Bij het analyseren van grote hoeveelheden informatie is het vaak nodig om een aantal topwaarden te extraheren. Misschien niet alleen extraheren, maar ook rangschikken in de gewenste volgorde. En idealiter kiezen welke kolommen in de resultaten worden opgenomen. Klinkt dat lastig? Niet met de nieuwe dynamische array-functies!
Hier is een algemene formule:
INDEX(SORT(...), SEQUENTIE( n ), { kolom1_naar_terugkeer , kolom2_naar_terugkeer , ...})Waar n is het nummer van de waarden die u wilt teruggeven.
Stel dat u uit de onderstaande gegevensverzameling een top 3-lijst wilt maken op basis van de getallen in kolom C.
Om dit te doen, sorteert u eerst de matrix A2:C13 op de 3e kolom in aflopende volgorde:
SORTEREN(A2:C13, 3, -1)
En nestel dan de bovenstaande formule in de eerste ( array ) argument van de INDEX-functie om de matrix te sorteren van hoog naar laag.
Voor de tweede ( rij_nummer ) argument, dat aangeeft hoeveel rijen moeten worden teruggegeven, genereren we de vereiste opeenvolgende getallen met behulp van de SEQUENCE-functie. Aangezien we 3 topwaarden nodig hebben, gebruiken we SEQUENCE(3), wat hetzelfde is als het rechtstreeks in de formule opgeven van een verticale arrayconstante {1;2;3}.
Voor de derde ( col_num ) argument, dat bepaalt hoeveel kolommen moeten worden geretourneerd, geef de kolomnummers in de vorm van een horizontale arrayconstante. We willen de kolommen B en C retourneren, dus gebruiken we de array {2,3}.
Uiteindelijk krijgen we de volgende formule:
=INDEX(SORT(A2:C13, 3, -1), SEQUENCE(3), {2,3})
En het levert precies de resultaten op die we willen:
Om terug te keren 3 bodem waarden, gewoon de oorspronkelijke gegevens sorteren van klein naar groot. Verander hiervoor de volgorde argument van -1 tot 1:
=INDEX(SORT(A2:C13, 3, 1), SEQUENCE(3), {2,3})
Geeft een gesorteerde waarde in een specifieke positie
Van een andere kant bekeken, wat als u alleen een specifieke sorteerpositie wilt teruggeven? Zeg, alleen het 1e , alleen het 2e, of alleen het 3e record uit de gesorteerde lijst? Gebruik daarvoor de vereenvoudigde versie van de hierboven besproken INDEX SORT-formule:
INDEX(SORT(...), n , { kolom1_naar_terugkeer , kolom2_naar_terugkeer , ...})Waar n is de positie van belang.
Om bijvoorbeeld een bepaalde positie van bovenaf te krijgen (d.w.z. van de gegevens die aflopend zijn gesorteerd), gebruikt u deze formule:
=INDEX(SORT(A2:C13, 3, -1), F1, {2,3})
Om een specifieke positie van onderaf te krijgen (d.w.z. van de gegevens die oplopend gesorteerd zijn), gebruik je deze:
=INDEX(SORT(A2:C13, 3, 1), I1, {2,3})
Waarbij A2:C13 de brongegevens zijn, F1 de positie van bovenaf, I1 de positie van onderaf, en {2,3} de kolommen die moeten worden geretourneerd.
Excel-tabel gebruiken om sorteermatrix automatisch uit te breiden
Zoals u al weet, wordt de gesorteerde matrix automatisch bijgewerkt wanneer u wijzigingen aanbrengt in de oorspronkelijke gegevens. Dit is het standaardgedrag van alle dynamische matrixfuncties, inclusief SORT. Wanneer u echter nieuwe items toevoegt buiten de matrix waarnaar wordt verwezen, worden deze niet automatisch opgenomen in een formule. Als u wilt dat uw formule reageert op dergelijke wijzigingen, converteert u het bronbereik naar een volledig-functionele Excel-tabel en gebruik gestructureerde verwijzingen in uw formule.
Om te zien hoe het in de praktijk werkt, zie het volgende voorbeeld.
Stel dat u de onderstaande Excel SORT-formule gebruikt om waarden in het bereik A2:B8 in alfabetische volgorde te rangschikken:
=SORT(A2:B8, 1, 1)
Vervolgens voert u een nieuw gegeven in rij 9 in... en ziet u tot uw teleurstelling dat het nieuw toegevoegde gegeven buiten het morsbereik valt:
Converteer nu het bronbereik naar een tabel. Selecteer hiervoor gewoon uw bereik inclusief de kolomkoppen (A1:B8) en druk op Ctrl + T . Wanneer u uw formule opstelt, selecteert u het bronbereik met de muis, en de tabelnaam wordt automatisch in de formule ingevoegd (dit wordt een gestructureerde verwijzing genoemd):
=SORT(Table1, 1, 1)
Wanneer u een nieuw gegeven typt vlak onder de laatste rij, zal de tabel automatisch uitbreiden, en zullen de nieuwe gegevens worden opgenomen in het morsbereik van de SORT-formule:
Excel SORT functie werkt niet
Als uw SORT-formule een fout oplevert, is dat waarschijnlijk om de volgende redenen.
#NAME fout: oudere Excel versie
SORT is een nieuwe functie en werkt alleen in Excel 365 en Excel 2021. In oudere versies waar deze functie niet wordt ondersteund, treedt een #NAME? fout op.
#SPILL fout: iets blokkeert morsbereik
Als een of meer cellen in het morsbereik niet volledig leeg of samengevoegd zijn, wordt een #SPILL! fout weergegeven. Om dit op te lossen, verwijdert u gewoon de blokkade. Voor meer informatie, zie Excel #SPILL! fout - wat het betekent en hoe op te lossen.
#VALUE error: ongeldige argumenten
Wanneer u een #VALUE! foutmelding krijgt, controleer dan de sorteer_index en volgorde argumenten. Sorteer_index mag het aantal kolommen niet overschrijden is array en volgorde moet 1 (oplopend) of -1 (aflopend) zijn.
#REF fout: bron werkmap is gesloten
Aangezien dynamische matrices beperkte ondersteuning bieden voor verwijzingen tussen werkmappen, vereist de SORT-functie dat beide bestanden geopend zijn. Als de bronwerkmap gesloten is, zal een formule een #REF! foutmelding geven. Om dit op te lossen, opent u gewoon het bestand waarnaar wordt verwezen.
Zo sorteer je gegevens in Excel met een formule. Ik dank je voor het lezen en hoop je volgende week op onze blog te zien!
Praktijk werkboek om te downloaden
Sorteren in Excel met formules (.xlsx-bestand)