Inhoudsopgave
Vandaag nemen we de syntaxis en typische toepassingen van de nieuwe dynamische matrixfunctie SORTBY onder de loep. U leert hoe u in Excel op maat kunt sorteren met een formule, een lijst willekeurig kunt sorteren, cellen kunt rangschikken op tekstlengte en meer.
Microsoft Excel biedt een aantal manieren om tekstgegevens alfabetisch, datums chronologisch en getallen van klein naar groot of van hoog naar laag te rangschikken. Er is ook een manier om te sorteren op uw eigen aangepaste lijsten. Naast de conventionele sorteerfunctie introduceert Excel 365 een gloednieuwe manier om gegevens te sorteren met formules - erg handig en ongelooflijk eenvoudig te gebruiken!
Excel SORTBY functie
De functie SORTBY in Excel is ontworpen om een bereik of matrix te sorteren op basis van de waarden in een ander bereik of matrix. Sorteren kan worden gedaan op één of meerdere kolommen.
SORTBY is een van de zes nieuwe dynamische matrixfuncties die beschikbaar zijn in Excel voor Microsoft 365 en Excel 2021. Het resultaat is een dynamische matrix die overloopt naar naburige cellen en automatisch wordt bijgewerkt wanneer de brongegevens veranderen.
De functie SORTBY heeft een variabel aantal argumenten - de eerste twee zijn vereist en de andere zijn facultatief:
SORTBY(array, by_array1, [sort_order1], [by_array2, sort_order2],...)Array (vereist) - het cellenbereik of de array van waarden die gesorteerd moeten worden.
Door_array1 (verplicht) - het bereik of de matrix waarop gesorteerd moet worden.
Sorteer volgorde1 (facultatief) - de sorteervolgorde:
- 1 of weggelaten (standaard) - oplopend
- -1 - aflopend
Door_array2 / Sorteer volgorde2 , ... (optioneel) - extra array / orderparen om te gebruiken voor het sorteren.
Belangrijke opmerking! Momenteel is de SORTBY-functie alleen beschikbaar bij Microsoft 365-abonnementen en Excel 2021. In Excel 2019, Excel 2016 en eerdere versies is de SORTBY-functie niet beschikbaar.
SORTBY-functie - 4 dingen om te onthouden
Opdat een Excel SORTBY-formule correct werkt, zijn er een paar belangrijke punten waarop u moet letten:
- Door_array De argumenten moeten één rij hoog of één kolom breed zijn.
- De array en alle bij_array argumenten moeten compatibele afmetingen hebben. Bijvoorbeeld bij het sorteren op twee kolommen, array , bij_array1 en bij_array2 moeten hetzelfde aantal rijen hebben; anders treedt een #VALUE-fout op.
- Indien de door SORTBY geretourneerde matrix het eindresultaat is (uitvoer in een cel en niet doorgegeven aan een andere functie), maakt Excel een dynamisch overlooibereik en vult dit met de resultaten. Zorg er dus voor dat je voldoende lege cellen hebt onderaan en/of rechts van de cel waar je de formule invoert, anders krijg je een #SPILL foutmelding.
- De resultaten van SORTBY-formules worden automatisch bijgewerkt wanneer de brongegevens veranderen. Nieuwe items die worden toegevoegd buiten de matrix waarnaar in de formule wordt verwezen, worden echter niet opgenomen in de resultaten, tenzij u de array verwijzing. Om de matrix waarnaar wordt verwezen automatisch uit te breiden, converteert u het bronbereik naar een Excel-tabel of maakt u een dynamisch naambereik.
Basis SORTBY-formule in Excel
Hier volgt een typisch scenario van het gebruik van een SORTBY-formule in Excel:
Stel, je hebt een lijst met projecten met de Waarde U wilt de projecten sorteren op hun waarde op een apart blad. Omdat andere gebruikers de cijfers niet hoeven te zien, wilt u liever niet de Waarde kolom in de resultaten.
Deze taak kan gemakkelijk worden uitgevoerd met de functie SORTBY, waarvoor u de volgende argumenten opgeeft:
- Array is A2:A10 - aangezien u niet wilt dat de Waarde kolom te tonen in de resultaten, laat je die weg uit de array.
- Door_array1 is B2:B10 - sorteren op Waarde .
- Sorteer volgorde1 is -1 - aflopend, d.w.z. van hoog naar laag.
Als we de argumenten samenvoegen, krijgen we deze formule:
=SORTBY(A2:B10, B2:B10, -1)
Voor de eenvoud gebruiken we de formule op hetzelfde blad - voer hem in in D2 en druk op de Enter-toets. De resultaten "morsen" automatisch naar zoveel cellen als nodig (D2:D10 in ons geval). Maar technisch gezien staat de formule alleen in de eerste cel, en als u hem uit D2 verwijdert, worden alle resultaten verwijderd.
Bij gebruik op een ander blad krijgt de formule de volgende vorm:
=SORTBY(Sheet1!A2:A10, Sheet1!B2:B10, -1)
Waar Blad1 is het werkblad met de oorspronkelijke gegevens.
De functie SORTBY gebruiken in Excel - formulevoorbeelden
Hieronder vindt u nog enkele voorbeelden van het gebruik van SORTBY, die hopelijk nuttig en inzichtelijk zijn.
Sorteren op meerdere kolommen
De hierboven besproken basisformule sorteert gegevens op één kolom. Maar wat als u nog een sorteerniveau moet toevoegen?
Aangenomen dat onze voorbeeldtabel twee velden heeft, Status (kolom B) en Waarde (kolom C) willen we eerst sorteren op Status alfabetisch, en dan door Waarde dalend.
Om op twee kolommen te sorteren, voegen we nog een paar van de bij_array / volgorde argumenten:
- Array is A2:C10 - deze keer willen we alle drie de kolommen in de resultaten opnemen.
- Door_array1 is B2:B10 - eerst, sorteren op Status .
- Sorteer volgorde1 is 1 - alfabetisch sorteren van A tot Z.
- Door_array2 is C2:C10 - dan, sorteren op Waarde .
- Sorteer volgorde2 is -1 - sorteer van groot naar klein.
Het resultaat is de volgende formule:
=SORTBY(A2:B10, B2:B10, 1, C2:C10, -1)
Dat herschikt onze gegevens precies zoals we ze hebben opgedragen:
Aangepast sorteren in Excel met een formule
Om gegevens in een aangepaste volgorde te sorteren, kunt u de functie Aangepaste sortering van Excel gebruiken of een SORTBY MATCH-formule maken:
SORTBY(array, MATCH( range_to_sort , aangepaste_lijst , 0))Als u onze gegevensverzameling nader bekijkt, vindt u het waarschijnlijk handiger om de projecten "logisch" op hun status te sorteren, bijvoorbeeld op belangrijkheid, in plaats van alfabetisch.
Om dit te laten doen, maken we eerst een aangepaste lijst in de gewenste sorteervolgorde ( In uitvoering , Voltooid , In de wacht ) door elke waarde in een aparte cel in het bereik E2:E4 te typen.
En dan leveren we met de bovenstaande algemene formule het bronbereik voor array (A2:C10), de Status kolom voor range_to_sort (B2:B10), en de aangepaste lijst die we hebben gemaakt voor aangepaste_lijst (E2:E4).
=SORTBY(A2:C10, MATCH(B2:B10, E2:E4, 0))
Het resultaat is dat we de projecten precies volgens hun status hebben gesorteerd:
Om op aangepaste lijst in omgekeerde volgorde te sorteren, zet u -1 voor de sort_order1 argument:
=SORTBY(A2:C10, MATCH(B2:B10, E2:E4, 0), -1)
En je hebt de projecten gesorteerd in de tegenovergestelde richting:
Wilt u extra records sorteren binnen elke status? Geen probleem. Voeg gewoon een extra sorteerniveau toe aan de formule, bijvoorbeeld op Waarde (C2:C10), en bepaal de gewenste sorteervolgorde, oplopend in ons geval:
=SORTBY(A2:C10, MATCH(B2:B10, E2:E5, 0), 1, C2:C10, 1)
Een groot voordeel van de SORTBY-formule boven de functie Aangepast sorteren van Excel is dat de formule automatisch wordt bijgewerkt wanneer de oorspronkelijke gegevens veranderen, terwijl de functie bij elke wijziging moet worden opgeschoond en opnieuw gesorteerd.
Hoe deze formule werkt:
Zoals reeds vermeld, kan de SORTBY-functie van Excel alleen "sorteren op" matrices verwerken waarvan de afmetingen compatibel zijn met de bronmatrix. Aangezien onze bronmatrix (C2:C10) 9 rijen bevat en de aangepaste lijst (E2:E4) slechts 3 rijen, kunnen we deze niet rechtstreeks aan de bij_array In plaats daarvan gebruiken we de MATCH-functie om een matrix van 9 rijen te maken:
MATCH(B2:B10, E2:E5, 0)
Hier gebruiken we de Status kolom (B2:B10) als lookup waarden en onze aangepaste lijst (E2:E5) als lookup array. Het laatste argument is ingesteld op 0 om te zoeken naar exacte overeenkomsten. Als resultaat krijgen we een array van 9 getallen, die elk de relatieve positie van een gegeven Status waarde in de aangepaste lijst:
{1;3;2;1;3;2;2;1;2}
Deze matrix gaat rechtstreeks naar de bij_array argument van de SORTBY-functie en dwingt deze de gegevens te plaatsen in de volgorde die overeenkomt met de elementen van de matrix, d.w.z. eerst de 1, dan de 2, enz.
Willekeurig sorteren in Excel met een formule
In eerdere Excel-versies kunt u willekeurig sorteren met de RAND-functie, zoals uitgelegd in deze handleiding: Een lijst willekeurig sorteren in Excel.
In het nieuwe Excel kunt u een krachtigere RANDARRAY-functie gebruiken in combinatie met SORTBY:
SORTBY( array , RANDARRAY(RIJEN( array )))Waar array is de brongegevens die u wilt verschuiven.
Deze generieke formule werkt zowel voor een lijst met één kolom als voor een reeks met meerdere kolommen.
Om bijvoorbeeld een lijst willekeurig te sorteren in A2:A10, gebruikt u deze formule:
=SORTBY(A2:A10, RANDARRAY(RIJEN(A2:A10)))
Om gegevens in A2:C10 te verschuiven en de rijen bij elkaar te houden, gebruik je deze:
=SORTBY(A2:C10, RANDARRAY(ROWS(A2:C10)))
Hoe deze formule werkt:
De functie RANDARRAY produceert een array van willekeurige getallen om te gebruiken bij het sorteren, en u geeft deze door in de functie bij_array argument van SORTBY. Om aan te geven hoeveel willekeurige getallen moeten worden gegenereerd, telt u het aantal rijen in het bronbereik met de functie ROWS, en "voedt" u dat aantal met de functie rijen argument van RANDARRAY. Dat is het!
Opmerking. Net als zijn voorganger is RANDARRAY een vluchtige functie en genereert elke keer dat het werkblad opnieuw wordt berekend een nieuwe array van willekeurige getallen. Het gevolg is dat uw gegevens bij elke wijziging op het blad worden gerangschikt. Om automatisch rangschikken te voorkomen, kunt u de optie Plakken Speciaal > Waarden functie om formules te vervangen door hun waarden.
Cellen sorteren op tekenreekslengte
Om cellen te sorteren op de lengte van de tekststrings die ze bevatten, gebruikt u de functie LEN om het aantal tekens in elke cel te tellen, en levert u de berekende lengtes aan de functie bij_array argument van SORTBY. De volgorde argument kan worden ingesteld op 1 of -1, afhankelijk van de gewenste sorteervolgorde.
Om op tekststring te sorteren van klein naar groot:
SORTBY(array, LEN(array), 1)Sorteren op tekststring van groot naar klein:
SORTBY(array, LEN(array), -1)En hier is een formule die deze aanpak demonstreert op echte gegevens:
=SORTBY(A2:A7, LEN(A2:A7), 1)
Waarbij A2:A7 de oorspronkelijke cellen zijn die u wilt sorteren op tekstlengte in oplopende volgorde:
SORTBY vs. SORT
In de groep van nieuwe dynamische matrixfuncties van Excel zijn er twee ontworpen voor sorteren. Hieronder geven wij een overzicht van de belangrijkste verschillen en overeenkomsten, alsmede wanneer elk van beide het best kan worden gebruikt.
- In tegenstelling tot de SORT-functie, vereist SORTBY niet dat de "sort by"-array deel uitmaakt van de bronarray, noch dat deze in de resultaten verschijnt. Dus, wanneer uw taak erin bestaat een bereik te sorteren op basis van een andere onafhankelijke array of een aangepaste lijst, is SORTBY de juiste functie om te gebruiken. Wanneer u een bereik wilt sorteren op basis van zijn eigen waarden, dan is SORT geschikter.
- Beide functies ondersteunen meerdere sorteerniveaus en kunnen worden gekoppeld aan andere dynamische array- en conventionele functies.
- Beide functies zijn alleen beschikbaar voor gebruikers van Excel 365 en Excel 2021.
Excel SORTBY functie werkt niet
Als uw SORTBY-formule een foutmelding geeft, komt dat waarschijnlijk door een van de volgende redenen.
Ongeldige by_array argumenten
De bij_array De argumenten moeten een enkele rij of een enkele kolom zijn en qua grootte compatibel zijn met de array argument. Bijvoorbeeld, als array heeft 10 rijen, bij_array moet ook 10 rijen bevatten. Anders treedt er een #VALUE! fout op.
Ongeldige sort_order argumenten
De volgorde argumenten kunnen alleen 1 (oplopend) of -1 (aflopend) zijn. Als er geen waarde is ingesteld, kiest SORTBY standaard voor oplopende volgorde. Als er een andere waarde is ingesteld, wordt een #VALUE! fout geretourneerd.
Er is niet genoeg ruimte voor resultaten
Zoals elke andere dynamische matrixfunctie, morst SORTBY de resultaten in een automatisch aanpasbaar en actualiseerbaar bereik. Als er niet genoeg lege cellen zijn om alle waarden weer te geven, wordt een #SPILL! fout gegooid.
Bron werkmap is gesloten
Indien een SORTBY-formule verwijst naar een ander Excel-bestand, moeten beide werkmappen geopend zijn. Indien de bronwerkmap is gesloten, treedt een #REF! fout op.
Uw Excel-versie ondersteunt geen dynamische matrices
Bij gebruik in een pre-dynamische versie van Excel geeft de SORT-functie een #NAME? foutmelding.
Dat is hoe je de SORTBY functie in Excel gebruikt om op maat te sorteren en andere dingen te doen. Ik dank je voor het lezen en hoop je volgende week op onze blog te zien!
Praktijk werkboek om te downloaden
Excel SORTBY formules (.xlsx bestand)