Excel SORT-funksjon - automatisk sortering av data ved hjelp av formel

  • Dele Denne
Michael Brown

Opplæringen viser hvordan du bruker SORT-funksjonen til å sortere datamatriser dynamisk. Du vil lære en formel for å sortere alfabetisk i Excel, ordne tall i stigende eller synkende rekkefølge, sortere etter flere kolonner og mer.

Sorteringsfunksjonaliteten har eksistert lenge. Men med introduksjonen av dynamiske matriser i Excel 365, dukket det opp en utrolig enkel måte å sortere med formler på. Det fine med denne metoden er at resultatene oppdateres automatisk når kildedataene endres.

    Excel SORT-funksjon

    SORT-funksjonen i Excel sorterer innholdet i en matrise eller område etter kolonner eller rader, i stigende eller synkende rekkefølge.

    SORT tilhører gruppen av dynamiske array-funksjoner. Resultatet er en dynamisk matrise som automatisk søles til naboceller vertikalt eller horisontalt, avhengig av formen på kildematrisen.

    Syntaksen til SORT-funksjonen er som følger:

    SORT(array, [sort_index) ], [sort_order], [by_col])

    Hvor:

    Array (obligatorisk) - er en matrise med verdier eller et celleområde som skal sorteres. Disse kan være alle verdier inkludert tekst, tall, datoer, klokkeslett osv.

    Sorteringsindeks (valgfritt) - et heltall som indikerer hvilken kolonne eller rad som skal sorteres etter. Hvis utelatt, brukes standardindeksen 1.

    Sorteringsrekkefølge (valgfritt) - definerer sorteringsrekkefølgen:

    • 1 eller utelatt (standard) - stigende rekkefølge , dvs. fraformler (.xlsx-fil) minste til største
    • -1 - synkende rekkefølge, dvs. fra største til minste

    By_col (valgfritt) - en logisk verdi som angir sorteringsretningen:

    • USANN eller utelatt (standard) - sorter etter rad. Du vil bruke dette alternativet mesteparten av tiden.
    • TRUE - sorter etter kolonne. Bruk dette alternativet hvis dataene dine er organisert horisontalt i kolonner som i dette eksemplet.

    Excel SORT-funksjon - tips og merknader

    SORT er en ny dynamisk array-funksjon og har som sådan et par spesifikasjoner som du bør være klar over:

    • Foreløpig er SORT-funksjonen bare tilgjengelig i Microsoft 365 og Excel 2021. Excel 2019, Excel 2016 støtter ikke dynamiske matriseformler, så SORT-funksjonen er ikke tilgjengelig i disse versjonene.
    • Hvis matrisen returnert av en SORT-formel er det endelige resultatet (dvs. ikke sendt til en annen funksjon), oppretter Excel dynamisk et område med passende størrelse og fyller det ut med de sorterte verdiene. Så pass på at du alltid har nok tomme celler nede eller/og til høyre for cellen der du skriver inn formelen, ellers oppstår det en #SPILL-feil.
    • Resultatene oppdateres dynamisk etter hvert som kildedataene endres. matrisen som leveres til formelen utvides imidlertid ikke automatisk til å inkludere nye oppføringer som legges til utenfor den refererte matrisen . For å inkludere slike elementer, må du enten oppdatere matrise -referansen i formelen din, ellerkonverter kildeområdet til en tabell som vist i dette eksemplet, eller lag et dynamisk navngitt område.

    Grunnleggende Excel SORTERINGSformel

    Dette eksemplet viser en grunnleggende formel for sortering av data i Excel i stigende og synkende rekkefølge.

    Forutsatt at dataene dine er ordnet alfabetisk som vist i skjermbildet nedenfor. Du ønsker å sortere tall i kolonne B uten å bryte eller blande data.

    Formel for å sortere i stigende rekkefølge

    For å sortere verdier i kolonne B fra minste til største, er formelen som skal brukes:

    =SORT(A2:B8, 2, 1)

    Hvor:

    • A2:B8 er kildematrisen
    • 2 er kolonnenummeret som skal sorteres etter
    • 1 er den stigende sorteringsrekkefølgen

    Siden våre data er organisert i rader, kan det siste argumentet utelates som standard til FALSE - sorter etter rader.

    Bare skriv inn formelen i hvilken som helst tom celle (D2 i vårt tilfelle), trykk Enter , og resultatene vil automatisk søles til D2:E8.

    Formel for å sortere i synkende rekkefølge

    For å sortere data synkende, dvs. fra størst til minste, sett sort_order -argumentet til -1 slik:

    =SORT(A2:B8, 2, -1)

    Skriv inn formelen i cellen øverst til venstre i destinasjonsområdet, og du vil få dette resultatet:

    På lignende måte kan du sortere tekstverdier i alfabetisk rekkefølge fra A til Å eller fra Å til A.

    Hvordan sortere data i Excel ved hjelp av f ormula

    Eksemplene nedenfor viser noen typiske bruksområder for SORT-funksjonen i Excelog et par ikke-trivielle.

    Excel SORTERE etter kolonne

    Når du sorterer data i Excel, endrer du for det meste rekkefølgen på radene. Men når dataene dine er organisert horisontalt med rader som inneholder etiketter og kolonner som inneholder poster, må du kanskje sortere fra venstre til høyre, i stedet for fra topp til bunn.

    For å sortere etter kolonne i Excel, sett by_col argumentet til TRUE. I dette tilfellet vil sort_index representere en rad, ikke en kolonne.

    For eksempel for å sortere dataene nedenfor etter antall. fra høyeste til laveste, bruk denne formelen:

    =SORT(B1:H2, 2, 1, TRUE)

    Hvor:

    • B1:H2 er kildedataene som skal sorteres
    • 2 er sorteringsindeksen, siden vi sorterer tall i den andre raden
    • -1 indikerer den synkende sorteringsrekkefølgen
    • TRUE betyr å sortere kolonner, ikke rader

    Sorter etter flere kolonner i forskjellig rekkefølge (sortering på flere nivåer)

    Når du arbeider med komplekse datamodeller, kan det hende du trenger en sortering på flere nivåer. Kan det gjøres med en formel? Jepp, lett! Det du gjør er å oppgi matrisekonstanter for sort_index og sort_order -argumentene.

    For eksempel å sortere dataene nedenfor etter Region (kolonne A) fra A til Å, og deretter etter Antall . (kolonne C) fra minste til største, sett følgende argumenter:

    • Array er dataene i A2:C13.
    • Sort_index er matrisekonstanten {1,3}, siden vi først sorterer etter Region (1.kolonne), og deretter med Antall . (3. kolonne).
    • Sort_order er matrisekonstanten {1,-1}, siden 1. kolonne skal sorteres i stigende rekkefølge og 3. kolonne i synkende rekkefølge.
    • By_col er utelatt fordi vi sorterer rader, som er standard.

    Setter vi sammen argumentene, får vi denne formelen:

    =SORT(A2:C13, {1,3}, {1,-1})

    Og det fungerer perfekt! Tekstverdiene i første kolonne er sortert alfabetisk og tallene i tredje kolonne fra størst til minste:

    Sorter og filtrer i Excel

    I tilfelle når du ønsker å filtrere data med noen kriterier og sette utdataene i rekkefølge, bruk SORT- og FILTER-funksjonene sammen:

    SORT(FILTER(array, criteria_range= criteria) , [sort_index], [sort_order], [by_col])

    FILTER-funksjonen får en matrise med verdier basert på kriteriene du definerer og sender den matrisen til det første argumentet til SORT.

    Det beste. om denne formelen er at den også sender ut resultatene som et dynamisk spillområde, uten at du trenger å trykke Ctrl + Shift + Enter eller gjette hvor mange celler du skal kopiere det til. Som vanlig skriver du inn en formel i den øverste cellen og trykker på Enter-tasten.

    Som et eksempel skal vi trekke ut elementer med en mengde lik eller større enn 30 (>=30) fra kildedata i A2:B9 og ordne resultatene i stigende rekkefølge.

    For dette setter vi først opp betingelsen, for eksempel icelle E2 som vist på bildet nedenfor. Og bygg deretter vår Excel SORT-formel på denne måten:

    =SORT(FILTER(A2:B9, B2:B9>=E2), 2)

    Bortsett fra array generert av FILTER-funksjonen, spesifiserer vi bare sort_index argument (kolonne 2). De resterende to argumentene er utelatt fordi standardverdiene fungerer akkurat som vi trenger (sortér stigende, etter rad).

    Få N største eller minste verdier og sorter resultatene

    Når man analyserer store mengder informasjon, er det ofte behov for å trekke ut et visst antall toppverdier. Kanskje ikke bare trekke ut, men også ordne dem i ønsket rekkefølge. Og ideelt sett velger du hvilke kolonner som skal inkluderes i resultatene. Høres det vanskelig ut? Ikke med de nye dynamiske array-funksjonene!

    Her er en generisk formel:

    INDEX(SORT(…), SEQUENCE( n), { column1_to_return, column2_to_return, …})

    Hvor n er antallet av verdiene du vil returnere.

    Fra datasettet nedenfor, anta at du ønsker å hente en topp 3-liste basert på tallene i kolonne C.

    For å få det gjort, sorterer du først matrisen A2:C13 etter den tredje kolonnen i synkende rekkefølge:

    SORT(A2:C13, 3, -1)

    Og deretter, neste formelen ovenfor i det første ( matrise ) argumentet til INDEX-funksjonen for å få matrisen sortert fra høyeste til minste.

    For det andre ( rad_nummer). ) argument, som angir hvor mange rader som skal returneres, generere de nødvendige sekvensnumrene ved å bruke SEQUENCE-funksjonen. Somvi trenger 3 toppverdier, vi bruker SEQUENCE(3), som er det samme som å levere en vertikal matrisekonstant {1;2;3} direkte i formelen.

    For den tredje ( col_num ) argument, som definerer hvor mange kolonner som skal returneres, gir kolonnenumrene i form av en horisontal matrisekonstant. Vi ønsker å returnere kolonnene B og C, så vi bruker matrisen {2,3}.

    Til slutt får vi følgende formel:

    =INDEX(SORT(A2:C13, 3, -1), SEQUENCE(3), {2,3})

    Og det produserer nøyaktig de resultatene vi ønsker:

    For å returnere 3 nederste verdier, sorter ganske enkelt de opprinnelige dataene fra minste til største. For dette, endre argumentet sort_order fra -1 til 1:

    =INDEX(SORT(A2:C13, 3, 1), SEQUENCE(3), {2,3})

    Returner en sortert verdi i en bestemt posisjon

    Ser fra en annen vinkel, hva om du bare vil returnere en bestemt sorteringsposisjon? Si, bare den første, bare den andre, eller bare den tredje posten fra den sorterte listen? For å få det gjort, bruk den forenklede versjonen av INDEX SORT-formelen diskutert ovenfor:

    INDEX(SORT(…), n, { column1_to_return, column2_to_return, …})

    Hvor n er posisjonen av interesse.

    For eksempel, for å få en bestemt posisjon fra toppen (dvs. fra data sortert synkende), bruk denne formelen :

    =INDEX(SORT(A2:C13, 3, -1), F1, {2,3})

    For å få en spesifikk posisjon fra bunnen (dvs. fra data sortert stigende), bruk denne:

    =INDEX(SORT(A2:C13, 3, 1), I1, {2,3})

    Hvor A2: C13 er kildedata, F1 er posisjonen fra toppen, I1 er posisjonen frabottom, og {2,3} er kolonnene som skal returneres.

    Bruk Excel-tabellen for å få sorteringsmatrisen til å utvides automatisk

    Som du allerede vet , oppdateres den sorterte matrisen automatisk når du gjør endringer i de opprinnelige dataene. Dette er standard oppførsel for alle dynamiske array-funksjoner, inkludert SORT. Men når du legger til nye oppføringer utenfor den refererte matrisen, blir de ikke automatisk inkludert i en formel. Hvis du vil at formelen din skal svare på slike endringer, konverter kildeområdet til en fullt funksjonell Excel-tabell og bruk strukturerte referanser i formelen.

    For å se hvordan det fungerer i praksis, bør du vurdere følgende eksempel.

    Forutsatt at du bruker Excel SORT-formelen nedenfor for å ordne verdier i området A2:B8 i alfabetisk rekkefølge:

    =SORT(A2:B8, 1, 1)

    Deretter skriver du inn en ny oppføring i rad 9... og er skuffet over å se at den nylig lagt til oppføringen er utelatt fra spillområdet:

    Konverter nå kildeområdet til en tabell. For dette, velg ganske enkelt området ditt inkludert kolonneoverskriftene (A1:B8) og trykk Ctrl + T . Når du bygger formelen din, velg kildeområdet med musen, og tabellnavnet vil automatisk settes inn i formelen (dette kalles en strukturert referanse):

    =SORT(Table1, 1, 1)

    Når du skriver en ny oppføring rett under den siste raden, vil tabellen utvides automatisk, og de nye dataene vil bli inkludert i utslippsområdetav SORT-formelen:

    Excel SORT-funksjonen fungerer ikke

    Hvis SORT-formelen resulterer i en feil, er det mest sannsynlig på grunn av følgende årsaker.

    #NAME-feil: eldre Excel-versjon

    SORTERING er en ny funksjon og fungerer kun i Excel 365 og Excel 2021. I eldre versjoner der denne funksjonen ikke støttes, er en #NAME? feil oppstår.

    #SPILL-feil: noe blokkerer spillområde

    Hvis én eller flere celler i spillområdet ikke er helt tomme eller slått sammen, vises en #SPILL! feil vises. For å fikse det, fjern bare blokkeringen. For mer informasjon, se Excel #SPILL! feil – hva det betyr og hvordan du kan fikse det.

    #VALUE-feil: ugyldige argumenter

    Når du støter på en #VALUE! feil, sjekk argumentene sort_index og sort_order . Sort_index bør ikke overskride antall kolonner er array , og sort_order skal være enten 1 (stigende) eller -1 (synkende).

    #REF-feil: kildearbeidsboken er lukket

    Siden dynamiske matriser har begrenset støtte for referanser mellom arbeidsbøker, er SORT-funksjonen krever at begge filene er åpne. Hvis kildearbeidsboken er lukket, vil en formel gi en #REF! feil. For å fikse det, åpne den refererte filen.

    Slik sorterer du data i Excel ved hjelp av formel. Jeg takker for at du leser og håper å se deg på bloggen vår neste uke!

    Øvningsarbeidsbok for nedlasting

    Sortering i Excel med

    Michael Brown er en dedikert teknologientusiast med en lidenskap for å forenkle komplekse prosesser ved hjelp av programvareverktøy. Med mer enn ti års erfaring i teknologibransjen, har han forbedret ferdighetene sine i Microsoft Excel og Outlook, samt Google Sheets og Docs. Michaels blogg er dedikert til å dele sin kunnskap og ekspertise med andre, og gir enkle å følge tips og veiledninger for å forbedre produktivitet og effektivitet. Enten du er en erfaren profesjonell eller nybegynner, tilbyr Michaels blogg verdifull innsikt og praktiske råd for å få mest mulig ut av disse viktige programvareverktøyene.