Excel SORT funktsioon - automaatne sorteerimine andmete abil valemiga

  • Jaga Seda
Michael Brown

Õpetuses näidatakse, kuidas kasutada funktsiooni SORT andmemassiivide dünaamiliseks sorteerimiseks. Õpid valemit, millega saab Excelis sorteerida tähestikuliselt, järjestada numbreid kasvavas või kahanevas järjekorras, sorteerida mitme veeru järgi ja palju muud.

Sorteerimisfunktsioon on olnud kasutusel juba pikka aega. Kuid koos dünaamiliste massiividega Excel 365-s ilmus hämmastavalt lihtne viis sorteerimiseks valemitega. Selle meetodi ilu seisneb selles, et tulemused uuendatakse automaatselt, kui lähteandmed muutuvad.

    Exceli SORT funktsioon

    Exceli funktsioon SORT sorteerib massiivi või vahemiku sisu veergude või ridade järgi kasvavas või kahanevas järjekorras.

    SORT kuulub Dünaamilise massiivi funktsioonide gruppi. Tulemuseks on dünaamiline massiivi, mis laieneb automaatselt naaberrakendisse vertikaalselt või horisontaalselt, sõltuvalt lähtemassiivi kujust.

    Funktsiooni SORT süntaks on järgmine:

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

    Kus:

    Array (nõutav) - on väärtuste massiivi või sorteeritavate lahtrite vahemik. Need võivad olla mis tahes väärtused, sealhulgas tekst, numbrid, kuupäevad, ajad jne.

    Sort_index (valikuline) - täisarv, mis näitab, millise veeru või rea järgi sorteerida. Kui see jäetakse välja, kasutatakse vaikimisi indeksit 1.

    Sort_order (valikuline) - määrab sorteerimisjärjekorra:

    • 1 või jäetakse välja (vaikimisi) - kasvav järjekord, st väikseimast suurimani.
    • -1 - kahanevas järjekorras, st suurimast väikseimani.

    By_col (valikuline) - loogiline väärtus, mis näitab sorteerimise suunda:

    • FALSE või jäetakse välja (vaikimisi) - sorteerimine rea järgi. Seda valikut kasutate enamasti.
    • TRUE - sorteerimine veergude kaupa. Kasutage seda valikut, kui teie andmed on korraldatud horisontaalselt veergudesse, nagu selles näites.

    Exceli SORT funktsioon - näpunäited ja märkused

    SORT on uus dünaamiline massiivi funktsioon ja seetõttu on sellel mõned eripärad, millest peaksite teadlik olema:

    • Praegu on funktsioon SORT saadaval ainult Microsoft 365 ja Excel 2021. Excel 2019, Excel 2016 ei toeta dünaamilisi massiivi valemeid, seega ei ole funktsioon SORT nendes versioonides saadaval.
    • Kui SORT-vormeliga tagastatud massiivi on lõpptulemus (st ei ole edastatud teisele funktsioonile), loob Excel dünaamiliselt sobiva suurusega vahemiku ja täidab selle sorteeritud väärtustega. Seega veenduge, et teil on alati piisavalt tühje lahtreid allpool või/ja paremal pool lahtrit, kuhu sisestate valemi, vastasel juhul tekib #SPILL-viga.
    • Tulemused uuendatakse dünaamiliselt, kui lähteandmed muutuvad. Siiski on massiivi mis on esitatud valemile, ei laiene automaatselt uutele kirjetele, mis on lisatud väljaspool viidatud massiivi Selliste elementide lisamiseks tuleb kas uuendada programmi massiivi viide oma valemis, või teisendage lähtevahemik tabeliks, nagu on näidatud selles näites, või looge dünaamiline nimega vahemik.

    Exceli põhiline SORT-vormel

    Selles näites on näidatud elementaarne valem andmete sorteerimiseks Excelis kasvavas ja kahanevas järjekorras.

    Oletame, et teie andmed on paigutatud tähestikuliselt, nagu on näidatud alloleval ekraanipildil. Soovite sorteerida numbreid veerus B ilma andmeid rikkumata või segamata.

    Valem, et sorteerida kasvavas järjekorras

    Veerus B olevate väärtuste sorteerimiseks väikseimast suurimani kasutage järgmist valemit:

    =SORT(A2:B8, 2, 1)

    Kus:

    • A2:B8 on lähtemassiiv
    • 2 on veeru number, mille järgi sorteerida
    • 1 on kasvav sorteerimisjärjekord

    Kuna meie andmed on organiseeritud ridade kaupa, võib viimase argumendi jätta ära, et vaikimisi valida FALSE - sorteerimine ridade järgi.

    Lihtsalt sisestage valem suvalisse tühja lahtrisse (meie puhul D2), vajutage Enter ja tulemused kanduvad automaatselt lahtrisse D2:E8.

    Valem sorteerimiseks kahanevas järjekorras

    Andmete sorteerimiseks kahanevalt, st suurimast väikseimale, seadke väärtus sort_order argumendi väärtuseks -1 niimoodi:

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

    Sisestage valem sihtkoha vahemiku vasakusse ülemisse lahtrisse ja te saate selle tulemuse:

    Samamoodi saate sorteerida tekstiväärtusi tähestikulises järjekorras A-st Z-ni või Z-st A-sse.

    Kuidas sorteerida andmeid Excelis valemiga

    Allpool on toodud mõned tüüpilised näited SORT-funktsiooni kasutamisest Excelis ja mõned mittetriviaalsed näited.

    Excel SORTIMINE veergude kaupa

    Andmete sorteerimisel Excelis muudate enamasti ridade järjekorda. Kuid kui teie andmed on korraldatud horisontaalselt, kusjuures read sisaldavad silte ja veerud kirjeid, võib olla vaja sorteerida vasakult paremale, mitte ülevalt alla.

    Exceli sorteerimiseks veergude kaupa määrake by_col argumendiks TRUE. Sel juhul, sort_index esindab rida, mitte veergu.

    Näiteks allpool esitatud andmete sorteerimiseks koguse järgi suurimast väikseimale, kasutage seda valemit:

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

    Kus:

    • B1:H2 on sorteeritavad lähteandmed
    • 2 on sorteerimisindeks, kuna me sorteerime numbreid teises reas.
    • -1 tähistab kahanevat sorteerimisjärjekorda
    • TRUE tähendab, et sorteeritakse veerge, mitte ridu.

    Sorteerimine mitme veeru järgi erinevas järjekorras (mitmetasandiline sorteerimine)

    Kui töötate keeruliste andmemudelitega, võib teil sageli olla vaja mitmetasandilist sorteerimist. Kas seda saab teha valemiga? Jah, lihtsalt! Mida teete, on anda massiivi konstandid jaoks sort_index ja sort_order argumendid.

    Näiteks, et sorteerida allpool olevad andmed kõigepealt järgmise järgi Piirkond (veerg A) alates A-st kuni Z-ni, ja seejärel järgmiselt Kogus . (veerg C) väikseimast suurimani, seadke järgmised argumendid:

    • Array on andmed A2:C13.
    • Sort_index on massiivi konstant {1,3}, sest me sorteerime kõigepealt massiivi järgi Piirkond (1. veerg) ja seejärel Kogus . (3. veerg).
    • Sort_order on massiivi konstant {1,-1}, kuna 1. veerg tuleb sorteerida kasvavas järjekorras ja 3. veerg kahanevas järjekorras.
    • By_col jäetakse ära, sest me sorteerime read, mis on vaikimisi.

    Kui panna argumendid kokku, saame järgmise valemi:

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

    Ja see töötab suurepäraselt! Tekstiväärtused esimeses veerus on sorteeritud tähestikuliselt ja numbrid kolmandas veerus suurimast väikseimani:

    Sorteerimine ja filtreerimine Excelis

    Kui soovite andmeid mõne kriteeriumi alusel filtreerida ja väljundit järjestada, kasutage funktsioone SORT ja FILTER koos:

    SORT(FILTER(array, kriteeriumid_vahemik = kriteeriumid ), [sort_index], [sort_order], [by_col])

    Funktsioon FILTER saab väärtuste massiivi, mis põhineb teie poolt määratletud kriteeriumidel, ja annab selle massiivi üle SORT-i esimesele argumendile.

    Parim asi selle valemi juures on see, et see väljastab tulemused ka dünaamilise valemisvahemikuna, ilma et peaksite vajutama Ctrl + Shift + Enter või arvama, mitmesse lahtrisse seda kopeerida. Nagu tavaliselt, kirjutate valemi kõige ülemisse lahtrisse ja vajutate Enter-klahvi.

    Näitena võtame lähteandmetest A2:B9 välja elemendid, mille kogus on võrdne või suurem kui 30 (>=30), ja järjestame tulemused kasvavas järjekorras.

    Selleks seadistame kõigepealt tingimuse, näiteks lahtrisse E2, nagu on näidatud alloleval pildil. Ja seejärel ehitame oma Exceli SORT-valemi selliselt:

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

    Peale massiivi mis on loodud funktsiooniga FILTER, me määrame ainult sort_index Ülejäänud kaks argumenti jäetakse ära, sest vaikimisi töötab täpselt nii, nagu me vajame (sorteerimine kasvavalt, rea järgi).

    saada N suurimat või väikseimat väärtust ja sorteerida tulemused

    Suurte andmehulkade analüüsimisel on sageli vaja eraldada teatud arv tippväärtusi. Ehk mitte ainult eraldada, vaid ka paigutada need soovitud järjekorda. Ja ideaalis valida, millised veerud tulemustes sisalduvad. Kõlab keeruline? Mitte uute dünaamiliste massiivi funktsioonidega!

    Siin on üldine valem:

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

    Kus n on tagastatavate väärtuste arv.

    Oletame, et soovite allpool esitatud andmestikust saada top 3 nimekirja, mis põhineb veerus C esitatud numbritel.

    Selleks sorteerige esmalt massiiv A2:C13 3. veeru järgi kahanevas järjekorras:

    SORT(A2:C13, 3, -1)

    Ja siis pesitse ülaltoodud valemiga esimene ( massiivi ) argumendi INDEX, et massiiv oleks sorteeritud suurimast väikseimani.

    Teise ( row_num ) argument, mis näitab, mitu rida tagastada, genereerime vajalikud järjestikused numbrid, kasutades funktsiooni SEQUENCE. Kuna meil on vaja 3 ülemist väärtust, kasutame SEQUENCE(3), mis on sama, kui anda otse valemis vertikaalse massiivi konstant {1;2;3}.

    Kolmandaks ( col_num ) argument, mis määrab, mitu veergu tagastada, esitame veeru numbrid horisontaalse massiivi konstandina. Me tahame tagastada veerud B ja C, seega kasutame massiivi {2,3}.

    Lõpuks saame järgmise valemi:

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

    Ja see annab täpselt need tulemused, mida me soovime:

    Tagasi pöörduda 3 põhja väärtused, siis sorteerige algandmed lihtsalt väikseimast suurimani. Selleks muutke faili sort_order argumendiks -1 kuni 1:

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

    Tagastab sorteeritud väärtuse konkreetses positsioonis

    Vaadates teise nurga alt, mis siis, kui soovite tagastada ainult kindlat sorteerimispositsiooni? Ütleme, et ainult 1. , ainult 2. või ainult 3. kirje sorteeritud nimekirjast? Selleks kasutage eespool käsitletud INDEX SORT valemi lihtsustatud versiooni:

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

    Kus n on huvipakkuv positsioon.

    Näiteks, et saada teatud positsioon ülevalt (st andmete sorteerimisel allapoole), kasutage seda valemit:

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

    Konkreetse positsiooni saamiseks altpoolt (s.t. järjestatud andmetest ülespoole) kasuta seda:

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

    Kus A2:C13 on lähteandmed, F1 on positsioon ülevalt, I1 on positsioon altpoolt ja {2,3} on tagastatavad veerud.

    Kasutage Exceli tabelit, et saada sorteerimismassiivi automaatselt laiendada

    Nagu te juba teate, uuendab sorteeritud massiivi automaatselt, kui te muudate algandmeid. See on kõigi dünaamiliste massiivi funktsioonide, sealhulgas SORT funktsiooni standardkäitumine. Kui te aga lisate uusi kirjeid väljaspool viidatud massiivi, ei kaasata neid automaatselt valemisse. Kui soovite, et teie valem reageeriks sellistele muudatustele, teisendage lähtevahemik täielikult-funktsionaalset Exceli tabelit ja kasutage oma valemis struktureeritud viiteid.

    Et näha, kuidas see praktikas toimib, vaadake järgmist näidet.

    Oletame, et kasutate allpool esitatud Exceli SORTimisvalemit, et järjestada väärtused vahemikus A2:B8 tähestikulises järjekorras:

    =SORT(A2:B8, 1, 1)

    Seejärel sisestate uue kande reale 9... ja näete pettunult, et äsja lisatud kanne on jäänud väljapoole väljavooluala:

    Nüüd teisendage lähtevahemik tabeliks. Selleks valige lihtsalt oma vahemik koos veergude päistega (A1:B8) ja vajutage Ctrl + T . Valemi koostamisel valige lähtevahemik hiirega ja tabeli nimi lisatakse valemisse automaatselt (seda nimetatakse struktureeritud viiteks):

    =SORT(Tabel1, 1, 1)

    Kui sisestate uue kande otse viimase rea alla, laieneb tabel automaatselt ja uued andmed lisatakse SORTIMISvalemi väljavoolualasse:

    Exceli SORT funktsioon ei tööta

    Kui teie SORT-vormel annab vea, on see tõenäoliselt tingitud järgmistest põhjustest.

    #NAME viga: vanem Exceli versioon

    SORT on uus funktsioon ja töötab ainult Excel 365 ja Excel 2021. Vanemates versioonides, kus seda funktsiooni ei toetata, tekib #NAME? viga.

    #SPILL viga: midagi blokeerib lekkeulatust

    Kui üks või mitu lahtrit väljavoolualas ei ole täielikult tühi või ühendatud, kuvatakse veateade #SPILL! Selle kõrvaldamiseks eemaldage lihtsalt ummistus. Lisateavet leiate jaotisest Excel #SPILL! error - mida see tähendab ja kuidas seda parandada.

    #VALUE viga: kehtetud argumendid

    Iga kord, kui tekib #VALUE! viga, kontrollige funktsiooni sort_index ja sort_order argumendid. Sort_index ei tohiks ületada veergude arvu on massiivi ja sort_order peaks olema kas 1 (kasvav) või -1 (kahanev).

    #REF viga: lähtetööraamat on suletud

    Kuna dünaamilistel massiividel on piiratud tugi töövihikute vahelistele viidetele, nõuab funktsioon SORT, et mõlemad failid oleksid avatud. Kui lähtetöövihik on suletud, viskab valem #REF! vea. Selle parandamiseks avage lihtsalt viidatud fail.

    See on, kuidas sorteerida andmeid Excelis valemiga. Tänan teid lugemise eest ja loodan, et näeme teid järgmisel nädalal meie blogis!

    Praktiline töövihik allalaadimiseks

    Sorteerimine Excelis valemitega (.xlsx fail)

    Michael Brown on pühendunud tehnoloogia entusiast, kelle kirg on tarkvaratööriistade abil keerukate protsesside lihtsustamine. Rohkem kui kümneaastase kogemusega tehnoloogiatööstuses on ta lihvinud oma oskusi Microsoft Excelis ja Outlookis, samuti Google Sheetsis ja Docsis. Michaeli ajaveebi eesmärk on jagada oma teadmisi ja teadmisi teistega, pakkudes hõlpsasti järgitavaid näpunäiteid ja õpetusi tootlikkuse ja tõhususe parandamiseks. Olenemata sellest, kas olete kogenud professionaal või algaja, pakub Michaeli ajaveebi väärtuslikke teadmisi ja praktilisi nõuandeid nende oluliste tarkvaratööriistade maksimaalseks kasutamiseks.