Excel SORTBY-funksie - pasgemaakte sorteer met formule

  • Deel Dit
Michael Brown

Vandag sal ons noukeurig kyk na die sintaksis en tipiese gebruike van die nuwe dinamiese skikking SORTBY-funksie. Jy sal leer hoe om pasgemaakte sorteer in Excel met 'n formule, 'n lys ewekansig te sorteer, selle volgens tekslengte te rangskik, en meer.

Microsoft Excel bied 'n aantal maniere om teksdata alfabeties, datums te rangskik. chronologies, en getalle van die kleinste na die grootste of van die hoogste na die laagste. Daar is ook 'n manier om volgens jou eie persoonlike lyste te sorteer. Benewens die konvensionele Sorteer-funksionaliteit, stel Excel 365 'n splinternuwe manier bekend om data met formules te sorteer - baie gerieflik en ongelooflik maklik om te gebruik!

    Excel SORTBY-funksie

    Die SORTBY-funksie in Excel is ontwerp om een ​​reeks of skikking te sorteer gebaseer op die waardes in 'n ander reeks of skikking. Sortering kan volgens een of veelvuldige kolomme gedoen word.

    SORTBY is een van ses nuwe dinamiese skikkingsfunksies wat beskikbaar is in Excel vir Microsoft 365 en Excel 2021. Die resultaat daarvan is 'n dinamiese skikking wat na naburige selle mors en outomaties bywerk wanneer die brondata verander.

    Die SORTBY-funksie het 'n veranderlike aantal argumente - die eerste twee word vereis en die ander is opsioneel:

    SORTBY(skikking, volgens_skikking1, [sorteer_volgorde1], [volgens_skikking2, sorteervolgorde2] ,...)

    Skikking (vereis) - die reeks selle of reeks waardes wat gesorteer moet word.

    Deur_skikking1 (vereis) - die reeks of skikking te sorteerdeur.

    Sorteer_orde1 (opsioneel) - die sorteervolgorde:

    • 1 of weggelaat (verstek) - stygend
    • -1 - dalende

    Volgens_skikking2 / Sorteer_order2 , … (opsioneel) - addisionele skikking / bestel pare om te gebruik vir sortering.

    Belangrike nota! Tans is die SORTBY-funksie slegs beskikbaar met Microsoft 365-intekeninge en Excel 2021. In Excel 2019, Excel 2016 en vroeër weergawes is die SORTBY-funksie nie beskikbaar nie.

    SORTBY-funksie - 4 dinge om te onthou

    Vir 'n Excel SORTBY-formule om korrek te werk, is daar 'n paar belangrike punte om van kennis te neem:

    • Deur_skikking argumente moet óf een ry hoog óf een kolom wyd wees.
    • Die skikking en alle by_skikking argumente moet versoenbare dimensies hê. Byvoorbeeld, wanneer jy volgens twee kolomme sorteer, moet skikking , volgens_skikking1 en volgens_skikking2 dieselfde aantal rye hê; anders sal 'n #VALUE-fout voorkom.
    • As die skikking wat deur SORTBY teruggestuur word die finale resultaat is (afvoer in 'n sel en nie aan 'n ander funksie oorgedra nie), skep Excel 'n dinamiese morsreeks en vul dit met die resultate. Maak dus seker jy het genoeg leë selle onder en/of regs van die sel waar jy die formule invoer, anders sal jy 'n #MORS-fout kry.
    • Die resultate van SORTBY-formules word outomaties opgedateer wanneer die brondata verander. Nuwe inskrywings wat egter buite bygevoeg worddie skikking waarna in die formule verwys word, word nie by die resultate ingesluit nie, tensy jy die skikking -verwysing opdateer. Vir die verwysde skikking om outomaties uit te brei, skakel die bronreeks na 'n Excel-tabel om of skep 'n dinamiese benoemde reeks.

    Basiese SORTBY-formule in Excel

    Hier is 'n tipiese scenario van die gebruik van 'n SORTBY formule in Excel:

    Gestel, jy het 'n lys van projekte met die Waarde -veld. U wil die projekte volgens hul waarde op 'n aparte blad sorteer. Aangesien ander gebruikers nie die nommers hoef te sien nie, sal jy liewer nie die Waarde -kolom by die resultate insluit nie.

    Die taak kan maklik met die SORTBY-funksie uitgevoer word, waarvoor jy verskaf die volgende argumente:

    • Skikking is A2:A10 - aangesien jy nie wil hê dat die Waarde kolom in die resultate vertoon moet word nie, verlaat jy dit buite die skikking.
    • Deur_skikking1 is B2:B10 - sorteer volgens Waarde .
    • Sorteer_orde1 is -1 - dalende, d.w.s. van hoogste na laagste.

    As ons die argumente bymekaar sit, kry ons hierdie formule:

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

    Vir eenvoud gebruik ons ​​die formule op dieselfde blad - voer dit in D2 in en druk die Enter-sleutel. Die resultate "mors" outomaties na soveel selle as wat nodig is (D2:D10 in ons geval). Maar tegnies is die formule slegs in die eerste sel, en om dit uit D2 te verwyder, sal al die resultate uitvee.

    Wanneer dit op 'n ander blad gebruik word, neem die formule dievolgende vorm:

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

    Waar Blad1 die werkblad is wat die oorspronklike data bevat.

    Gebruik SORTBY-funksie in Excel - formulevoorbeelde

    Hieronder sal jy nog 'n paar voorbeelde vind van die gebruik van SORTBY, wat hopelik nuttig en insiggewend sal wees.

    Sorteer volgens veelvuldige kolomme

    Die basiese formule hierbo bespreek sorteer data volgens een kolom. Maar wat as jy nog een vlak van sortering moet byvoeg?

    As ons aanvaar dat ons voorbeeldtabel twee velde het, Status (kolom B) en Waarde (kolom C) , wil ons eers volgens Status alfabeties sorteer, en dan volgens Waarde dalend.

    Om volgens twee kolomme te sorteer, voeg ons net nog een paar van die <1 by>per_skikking / sorteer_orde argumente:

    • Skikking is A2:C10 - hierdie keer wil ons al drie kolomme by die resultate insluit.
    • Volgens_skikking1 is B2:B10 - sorteer eerstens volgens Status .
    • Sorteer_volgorde1 is 1 - sorteer alfabeties vanaf A tot Z.
    • Volgens_skikking2 is C2:C10 - sorteer dan volgens Waarde .
    • Sorteer_orde2 is -1 - sorteer van grootste na kleinste.

    As gevolg hiervan kry ons die volgende formule:

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

    Wat ons data presies herrangskik soos ons dit opdrag gegee het:

    Gepasmaakte sorteer in Excel met 'n formule

    Om data in 'n pasgemaakte volgorde te sorteer, kan jy óf Excel se Pasgemaakte Sorteer-funksie gebruik óf 'n SORTBY MATCH-formule op hierdie manier bou:

    SORTBY(skikking,MATCH( reeks_tot_sorteer , pasgemaakte_lys , 0))

    As ons ons datastel van nader bekyk, sal jy dit waarskynlik geriefliker vind om die projekte volgens hul status "logies" te sorteer , bv. volgens belangrikheid, eerder as alfabeties.

    Om dit te laat doen, skep ons eers 'n pasgemaakte lys in die verlangde sorteervolgorde ( Bezig , Voltooi , On hold ) tik elke waarde in 'n aparte sel in die reeks E2:E4.

    En dan, deur die generiese formule hierbo te gebruik, verskaf ons die bronreeks vir skikking (A2) :C10), die Status -kolom vir reeks_om_te_sorteer (B2:B10), en die pasgemaakte lys wat ons vir pasgemaakte_lys geskep het (E2:E4).

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

    As gevolg hiervan het ons die projekte volgens hul status gesorteer presies soos nodig:

    Om volgens pasgemaakte lys in die omgekeerde volgorde te sorteer, plaas -1 vir die sorteer_order1 argument:

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

    En jy sal die projekte in die teenoorgestelde rigting gesorteer hê:

    Wil jy ook rekords binne elke status sorteer? Geen probleem. Voeg eenvoudig nog een sorteervlak by die formule, sê deur Waarde (C2:C10), en definieer die verlangde volgorde van sortering, stygend in ons geval:

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

    'n Groot voordeel van die SORTBY-formule bo Excel se Custom Sort-kenmerk is dat die formule outomaties opdateer wanneer die oorspronklike data verander, terwyl die kenmerk met elke verandering moet skoonmaak en hersorteer.

    Hoe hierdie formulewerk:

    Soos reeds genoem, kan Excel se SORTBY-funksie slegs "sorteer volgens" skikkings verwerk waarvan die afmetings versoenbaar is met die bronskikking. Aangesien ons bronskikking (C2:C10) 9 rye en die pasgemaakte lys (E2:E4) slegs 3 rye bevat, kan ons dit nie direk aan die by_array -argument verskaf nie. In plaas daarvan gebruik ons ​​die MATCH-funksie om 'n 9-ry-skikking te skep:

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

    Hier gebruik ons ​​die Status -kolom (B2:B10) as opsoekwaardes en ons pasgemaakte lys (E2:E5) as opsoekskikking. Die laaste argument is op 0 gestel om presiese passings te soek. As gevolg hiervan kry ons 'n skikking van 9 getalle, wat elk die relatiewe posisie van 'n gegewe Status -waarde in die pasgemaakte lys verteenwoordig:

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

    Hierdie skikking gaan direk na die by_array -argument van die SORTBY-funksie en dwing dit om die data in die volgorde te plaas wat ooreenstem met die elemente van die skikking, dit wil sê eers inskrywings verteenwoordig deur 1'e, dan inskrywings verteenwoordig deur 2'e, ensovoorts.

    Ewekansige sorteer in Excel met 'n formule

    In vroeëre Excel-weergawes kan jy 'n ewekansige sorteer met die RAND-funksie doen soos verduidelik in hierdie tutoriaal: Hoe om 'n lys in Excel ewekansig te sorteer.

    In nuwe Excel kan jy 'n kragtiger RANDARRAY-funksie saam met SORTBY gebruik:

    SORTBY( skikking , RANDARRAY(RYE( skikking )))

    Waar skikking die brondata is wat jy wil skommel.

    Hierdie generiese formule werk vir 'n lys wat bestaan ​​uit 'nenkele kolom sowel as vir 'n multi-kolom reeks.

    Om byvoorbeeld 'n lys lukraak in A2:A10 te sorteer, gebruik hierdie formule:

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

    Om te skommel data in A2:C10 hou die rye bymekaar, gebruik hierdie een:

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

    Hoe hierdie formule werk:

    Die RANDARRAY-funksie produseer 'n skikking van ewekansige getalle om vir sortering gebruik te word, en jy gee dit deur in die by_array -argument van SORTBY. Om te spesifiseer hoeveel ewekansige getalle om te genereer, tel jy die aantal rye in die bronreeks deur die ROWS-funksie te gebruik, en "voer" daardie getal na die rye -argument van RANDARRAY. Dis dit!

    Let wel. Soos sy voorganger, is RANDARRAY 'n wisselvallige funksie en dit genereer 'n nuwe reeks ewekansige getalle elke keer as die werkblad herbereken word. As gevolg hiervan sal u data met elke verandering op die blad gebruik word. Om outo-resortering te voorkom, kan jy die Plak Spesiale > Waardes -kenmerk gebruik om formules met hul waardes te vervang.

    Sorteer selle volgens stringlengte

    Om selle te sorteer volgens die lengte van teksstringe wat hulle bevat, gebruik die LEN-funksie om die aantal karakters in elke sel te tel, en verskaf die berekende lengtes aan die by_array argument van SORTBY. Die sorteer_orde -argument kan op óf 1 óf -1 gestel word, afhangende van die voorkeurvolgorde van sortering.

    Om volgens teksstring van kleinste na grootste te sorteer:

    SORTBY(skikking, LEN(skikking), 1)

    Om volgens te sorteerteksstring van grootste na kleinste:

    SORTBY(skikking, LEN(skikking), -1)

    En hier is 'n formule wat hierdie benadering op werklike data demonstreer:

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

    Waar A2:A7 die oorspronklike selle is wat jy volgens tekslengte in stygende volgorde wil sorteer:

    SORTBY vs. SORT

    In die groep nuwe Excel-dinamiese skikkingsfunksies is daar twee ontwerp vir sortering. Hieronder lys ons die belangrikste verskille en ooreenkomste asook wanneer elkeen die beste is om te gebruik.

    • Anders as die SORT-funksie, vereis SORTBY nie dat die "sorteer volgens"-skikking deel van die bron moet wees skikking, en hoef ook nie in resultate te verskyn nie. Dus, wanneer jou taak is om 'n reeks te sorteer gebaseer op 'n ander onafhanklike skikking of 'n pasgemaakte lys, is SORTBY die regte funksie om te gebruik. As jy op soek is na 'n reeks op grond van sy eie waardes te sorteer, dan is SORTERING meer gepas.
    • Albei funksies ondersteun verskeie vlakke van sortering en albei kan saamgeketting word met ander dinamiese skikking en konvensionele funksies.
    • Albei funksies is slegs beskikbaar vir Excel 365- en Excel 2021-gebruikers.

    Excel SORTBY-funksie werk nie

    In die geval dat jou SORTBY-formule 'n fout gee, is dit heel waarskynlik as gevolg van een van die volgende redes.

    Ongeldige by_skikking-argumente

    Die by_skikking -argumente moet 'n enkele ry of 'n enkele kolom wees en versoenbaar in grootte met die skikking argument. Byvoorbeeld, as skikking 10 hetrye, by_array moet ook 10 rye insluit. Andersins 'n #WAARDE! fout kom voor.

    Ongeldige sorteerorde-argumente

    Die sorteervolgorde -argumente kan slegs 1 (stygend) of -1 (dalend) wees. As geen waarde gestel is nie, sal SORTBY verstek na stygende volgorde. As enige ander waarde gestel is, 'n #VALUE! fout word teruggestuur.

    Daar is nie genoeg spasie vir resultate nie

    Soos enige ander dinamiese skikkingsfunksie, mors SORTBY die resultate in 'n outomaties veranderbare en opdateerbare reeks. As daar nie genoeg leë selle is om alle waardes te vertoon nie, 'n #MORS! fout word gegooi.

    Bronwerkboek is toe

    As 'n SORTBY-formule na 'n ander Excel-lêer verwys, moet beide werkboeke oop wees. As die bronwerkboek gesluit is, 'n #REF! fout kom voor.

    Jou Excel-weergawe ondersteun nie dinamiese skikkings nie

    Wanneer dit in 'n pre-dinamiese weergawe van Excel gebruik word, gee die SORT-funksie 'n #NAAM? fout.

    Dis hoe om die SORTBY-funksie in Excel te gebruik om pasgemaakte sorteer en ander dinge te doen. Ek bedank jou vir die lees en hoop om jou volgende week op ons blog te sien!

    Oefen werkboek vir aflaai

    Excel SORTBY formules (.xlsx lêer)

    Michael Brown is 'n toegewyde tegnologie-entoesias met 'n passie om komplekse prosesse te vereenvoudig deur sagteware-instrumente te gebruik. Met meer as 'n dekade se ondervinding in die tegnologiebedryf, het hy sy vaardighede in Microsoft Excel en Outlook, sowel as Google Sheets en Docs, opgeskerp. Michael se blog is toegewy daaraan om sy kennis en kundigheid met ander te deel, en verskaf maklik-om-te volg wenke en tutoriale vir die verbetering van produktiwiteit en doeltreffendheid. Of jy nou 'n ervare professionele persoon of 'n beginner is, Michael se blog bied waardevolle insigte en praktiese raad om die meeste uit hierdie noodsaaklike sagteware-nutsmiddels te kry.