"Excel SORT" funkcija - automatinis duomenų rūšiavimas naudojant formulę

  • Pasidalinti
Michael Brown

Pamokoje parodoma, kaip naudoti funkciją SORT dinamiškai rūšiuoti duomenų masyvus. Sužinosite formulę, kaip "Excel" programoje rūšiuoti pagal abėcėlę, sudėlioti skaičius didėjančia arba mažėjančia tvarka, rūšiuoti pagal kelis stulpelius ir dar daugiau.

Rūšiavimo funkcija buvo naudojama jau seniai. Tačiau "Excel 365" pradėjus naudoti dinaminius masyvus, atsirado nepaprastai paprastas būdas rūšiuoti naudojant formules. Šio metodo grožis tas, kad rezultatai automatiškai atnaujinami, kai keičiasi šaltinio duomenys.

    "Excel SORT" funkcija

    "Excel" funkcija SORT rūšiuoja masyvo arba intervalo turinį pagal stulpelius arba eilutes didėjančia arba mažėjančia tvarka.

    SORT priklauso dinaminių masyvų funkcijų grupei. Rezultatas - dinaminis masyvas, kuris automatiškai išsilieja į kaimyninius langelius vertikaliai arba horizontaliai, priklausomai nuo šaltinio masyvo formos.

    SORT funkcijos sintaksė yra tokia:

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

    Kur:

    Masyvas (privaloma) - tai reikšmių masyvas arba ląstelių intervalas, kurį reikia rūšiuoti. Tai gali būti bet kokios reikšmės, įskaitant tekstą, skaičius, datas, laikus ir t. t.

    Sort_index (neprivaloma) - sveikasis skaičius, nurodantis, pagal kurį stulpelį ar eilutę rūšiuoti. Jei praleidžiama, naudojamas numatytasis indeksas 1.

    Sort_order (neprivaloma) - apibrėžia rūšiavimo tvarką:

    • 1 arba praleista (numatytoji reikšmė) - didėjančia tvarka, t. y. nuo mažiausio iki didžiausio
    • -1 - mažėjančia tvarka, t. y. nuo didžiausio iki mažiausio

    By_col (neprivaloma) - loginė reikšmė, nurodanti rūšiavimo kryptį:

    • FALSE arba praleista (numatytoji reikšmė) - rūšiuoti pagal eilutę. Šią parinktį naudosite dažniausiai.
    • TRUE - rūšiuoti pagal stulpelius. Šią parinktį naudokite, jei jūsų duomenys išdėstyti horizontaliai stulpeliais, kaip šiame pavyzdyje.

    "Excel" funkcija SORT - patarimai ir pastabos

    SORT yra nauja dinaminio masyvo funkcija, todėl ji turi keletą ypatumų, kuriuos turėtumėte žinoti:

    • Šiuo metu funkcija SORT galima tik "Microsoft 365" ir "Excel 2021". "Excel 2019", "Excel 2016" nepalaiko dinaminių masyvų formulių, todėl šiose versijose funkcija SORT negalima.
    • Jei SORT formulės grąžinamas masyvas yra galutinis rezultatas (t. y. neperduodamas kitai funkcijai), "Excel" dinamiškai sukuria tinkamo dydžio intervalą ir užpildo jį surūšiuotomis reikšmėmis. Todėl įsitikinkite, kad visada turite pakankamai tuščių langelių apačioje arba (ir) dešinėje langelio, į kurį įvedate formulę, pusėje, nes kitaip įvyks #SPILL klaida.
    • Rezultatai dinamiškai atnaujinami keičiantis šaltinio duomenims. Tačiau masyvas į formulę automatiškai neįtraukiami nauji įrašai, kurie pridedami už nuorodos ribų. masyvas Norėdami įtraukti tokius elementus, turite atnaujinti masyvas nuorodą formulėje arba konvertuokite šaltinio intervalą į lentelę, kaip parodyta šiame pavyzdyje, arba sukurkite dinaminį pavadintą intervalą.

    Pagrindinė "Excel" SORT formulė

    Šiame pavyzdyje parodyta pagrindinė formulė, skirta rūšiuoti duomenis "Excel" didėjimo ir mažėjimo tvarka.

    Tarkime, kad jūsų duomenys išdėstyti abėcėlės tvarka, kaip parodyta toliau pateiktoje ekrano kopijoje. Norite surūšiuoti B stulpelio numerius, nepertraukdami ir nesumaišydami duomenų.

    Formulė rūšiuoti didėjančia tvarka

    Norėdami surūšiuoti B stulpelio reikšmes nuo mažiausios iki didžiausios, naudokite šią formulę:

    =SORT(A2:B8, 2, 1)

    Kur:

    • A2:B8 yra šaltinio masyvas
    • 2 - stulpelio, pagal kurį norite rūšiuoti, numeris
    • 1 yra didėjanti rūšiavimo tvarka

    Kadangi mūsų duomenys suskirstyti eilutėmis, paskutinį argumentą galima praleisti, kad pagal nutylėjimą būtų FALSE - rūšiuoti pagal eilutes.

    Tiesiog įveskite formulę į bet kurią tuščią ląstelę (mūsų atveju - D2), paspauskite Enter , ir rezultatai automatiškai išsilies į D2:E8.

    Formulė rūšiuoti mažėjančia tvarka

    Norėdami duomenis rūšiuoti mažėjančia tvarka, t. y. nuo didžiausio iki mažiausio, nustatykite sort_order argumentą į -1 taip:

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

    Įveskite formulę į paskirties srities viršutinę kairę ląstelę ir gausite šį rezultatą:

    Panašiai galite rūšiuoti teksto reikšmes abėcėlės tvarka nuo A iki Z arba nuo Z iki A.

    Kaip rūšiuoti duomenis "Excel" programoje naudojant formulę

    Toliau pateiktuose pavyzdžiuose parodyta keletas tipinių ir keletas netrivialių funkcijos SORT naudojimo būdų "Excel" programoje.

    "Excel" rūšiavimas pagal stulpelį

    Rūšiuodami duomenis "Excel" dažniausiai keičiate eilučių eiliškumą. Tačiau kai duomenys yra išdėstyti horizontaliai, eilutėse pateikiamos etiketės, o stulpeliuose - įrašai, gali prireikti rūšiuoti ne iš viršaus į apačią, o iš kairės į dešinę.

    Norėdami "Excel" programoje rūšiuoti pagal stulpelį, nustatykite by_col argumentas yra TRUE. Šiuo atveju, sort_index vaizduos eilutę, o ne stulpelį.

    Pavyzdžiui, norėdami surūšiuoti toliau pateiktus duomenis pagal kiekį nuo didžiausio iki mažiausio, naudokite šią formulę:

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

    Kur:

    • B1:H2 yra rūšiuojami šaltinio duomenys
    • 2 yra rūšiavimo indeksas, nes rūšiuojame numerius antroje eilutėje.
    • -1 rodo mažėjančią rūšiavimo tvarką
    • TRUE reiškia, kad reikia rūšiuoti stulpelius, o ne eilutes

    Rūšiuoti pagal kelis stulpelius skirtinga tvarka (kelių lygių rūšiavimas)

    Dirbant su sudėtingais duomenų modeliais dažnai gali prireikti kelių lygių rūšiavimo. Ar tai galima padaryti naudojant formulę? Taip, lengvai! sort_index ir sort_order argumentai.

    Pavyzdžiui, norėdami surūšiuoti toliau pateiktus duomenis pirmiausia pagal Regionas (stulpelis A) nuo A iki Z, o tada Kiekis . (C stulpelis) nuo mažiausio iki didžiausio, nustatykite šiuos argumentus:

    • Masyvas yra A2:C13 duomenys.
    • Sort_index yra masyvo konstanta {1,3}, nes pirmiausia rūšiuojame pagal Regionas (1 stulpelis), o tada Kiekis . (3 stulpelis).
    • Sort_order yra masyvo konstanta {1,-1}, nes 1-asis stulpelis turi būti rūšiuojamas didėjimo tvarka, o 3-iasis - mažėjimo tvarka.
    • Iki_col praleidžiamas, nes rūšiuojame eilutes pagal numatytuosius nustatymus.

    Sudėję argumentus, gausime šią formulę:

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

    Teksto reikšmės pirmame stulpelyje surūšiuotos abėcėlės tvarka, o skaičiai trečiame stulpelyje - nuo didžiausio iki mažiausio:

    Rūšiuoti ir filtruoti "Excel" programoje

    Jei norite išfiltruoti duomenis pagal tam tikrus kriterijus ir sutvarkyti išvestį, naudokite funkcijas SORT ir FILTER kartu:

    SORT(FILTER(masyvas, kriterijų_diapazonas = kriterijai ), [sort_index], [sort_order], [by_col])

    Funkcija FILTER gauna reikšmių masyvą pagal apibrėžtus kriterijus ir perduoda šį masyvą pirmajam funkcijos SORT argumentui.

    Geriausia, kad ši formulė taip pat išveda rezultatus kaip dinaminį išsiliejimo intervalą, todėl nereikia spausti Ctrl + Shift + Enter arba spėlioti, į kiek langelių ją kopijuoti. Kaip įprasta, įveskite formulę į viršutinį langelį ir paspauskite klavišą Enter.

    Pavyzdžiui, iš šaltinio duomenų, esančių A2:B9, išskirsime elementus, kurių kiekis lygus arba didesnis nei 30 (>=30), ir rezultatus išdėstysime didėjančia tvarka.

    Tam pirmiausia nustatome sąlygą, tarkime, ląstelėje E2, kaip parodyta toliau pateiktame paveikslėlyje. Tada taip sukuriame "Excel" SORT formulę:

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

    Be masyvas sukurtą FILTER funkcija, nurodome tik sort_index likusieji du argumentai praleisti, nes numatytosios reikšmės veikia tiksliai taip, kaip mums reikia (rūšiuoti didėjančia tvarka pagal eilutes).

    Gaukite N didžiausių arba mažiausių verčių ir surūšiuokite rezultatus

    Analizuojant didžiulius informacijos kiekius, dažnai reikia išskirti tam tikrą skaičių geriausių reikšmių. Galbūt ne tik išskirti, bet ir sudėlioti jas norima tvarka. Ir, idealiu atveju, pasirinkti, kuriuos stulpelius įtraukti į rezultatus. Skamba sudėtingai? Tik ne su naujomis dinaminių masyvų funkcijomis!

    Pateikiame bendrą formulę:

    INDEKSAS(RŪŠIUOTI(...), SEKA(...) n ), { column1_to_return , column2_to_return , ...})

    Kur n yra reikšmių, kurias norite grąžinti, skaičius.

    Tarkime, kad iš toliau pateikto duomenų rinkinio norite sudaryti 3 geriausiųjų sąrašą pagal C stulpelyje pateiktus skaičius.

    Norėdami tai padaryti, pirmiausia surūšiuokite masyvą A2:C13 pagal 3 stulpelį mažėjančia tvarka:

    RŪŠIUOTI(A2:C13, 3, -1)

    Tada įkelkite pirmiau pateiktą formulę į pirmąją ( masyvas ) funkcijos INDEX argumentas, kad masyvas būtų surūšiuotas nuo didžiausio iki mažiausio.

    Antrasis ( eilutės_num ) argumentas, nurodantis, kiek eilučių reikia grąžinti, sugeneruokite reikiamus nuoseklius skaičius naudodami funkciją SEQUENCE. Kadangi mums reikia 3 viršutinių reikšmių, naudojame SEQUENCE(3), o tai yra tas pats, kas tiesiogiai formulėje pateikti vertikalaus masyvo konstantą {1;2;3}.

    Trečiasis ( col_num ) argumentą, kuris apibrėžia, kiek stulpelių grąžinti, stulpelių numerius pateikite horizontalios masyvo konstantos pavidalu. Norime grąžinti stulpelius B ir C, todėl naudojame masyvą {2,3}.

    Galiausiai gauname tokią formulę:

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

    Tai duoda būtent tokius rezultatus, kokių norime:

    Grįžti 3 dugnas reikšmes, paprasčiausiai surūšiuokite pradinius duomenis nuo mažiausios iki didžiausios. Tam pakeiskite sort_order argumentas nuo -1 iki 1:

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

    Grąžinti surūšiuotą vertę tam tikroje pozicijoje

    O jei norite grąžinti tik tam tikrą rūšiavimo poziciją? Tarkime, tik 1-ąjį, tik 2-ąjį arba tik 3-iąjį rūšiuoto sąrašo įrašą? Norėdami tai padaryti, naudokite supaprastintą pirmiau aptartą INDEX SORT formulės versiją:

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

    Kur n yra dominanti padėtis.

    Pavyzdžiui, norėdami gauti tam tikrą poziciją iš viršaus (t. y. iš duomenų, surūšiuotų mažėjimo tvarka), naudokite šią formulę:

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

    Norėdami gauti konkrečią poziciją nuo apačios (t. y. iš duomenų, surūšiuotų didėjančia tvarka), naudokite šią funkciją:

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

    Kai A2:C13 yra šaltinio duomenys, F1 yra pozicija iš viršaus, I1 yra pozicija iš apačios, o {2,3} yra grąžinami stulpeliai.

    Naudokite "Excel" lentelę, kad rūšiavimo masyvą išplėstumėte automatiškai

    Kaip jau žinote, surūšiuotas masyvas automatiškai atnaujinamas, kai atliekate bet kokius pradinių duomenų pakeitimus. Tai standartinis visų dinaminių masyvų funkcijų, įskaitant SORT, elgesys. Tačiau, kai pridedate naujų įrašų už nurodyto masyvo ribų, jie nėra automatiškai įtraukiami į formulę. Jei norite, kad jūsų formulė reaguotų į tokius pakeitimus, konvertuokite pradinį intervalą į visiškaifunkcinę "Excel" lentelę ir formulėje naudokite struktūrines nuorodas.

    Norėdami pamatyti, kaip tai veikia praktiškai, panagrinėkite šį pavyzdį.

    Tarkime, kad naudojate toliau pateiktą "Excel SORT" formulę, norėdami išdėstyti reikšmes intervale A2:B8 abėcėlės tvarka:

    =SORT(A2:B8, 1, 1)

    Tada 9 eilutėje įvedate naują įrašą... ir nusivylę pamatote, kad naujai įvestas įrašas neįtrauktas į išsiliejimo intervalą:

    Dabar šaltinio intervalą paverskite lentele. Tam paprasčiausiai pasirinkite intervalą, įskaitant stulpelių antraštes (A1:B8), ir paspauskite Ctrl + T . Kurdami formulę, pelės pagalba pasirinkite šaltinio intervalą ir lentelės pavadinimas bus automatiškai įterptas į formulę (tai vadinama struktūrine nuoroda):

    =SORT(Lentelė1, 1, 1)

    Įvedus naują įrašą tiesiai po paskutine eilute, lentelė išsiplės automatiškai ir nauji duomenys bus įtraukti į SORT formulės išsiliejimo intervalą:

    Neveikia "Excel SORT" funkcija

    Jei jūsų SORT formulėje atsiranda klaida, greičiausiai taip atsitiko dėl šių priežasčių.

    #NAME klaida: senesnė "Excel" versija

    SORT yra nauja funkcija ir veikia tik "Excel 365" ir "Excel 2021" versijose. Senesnėse versijose, kuriose ši funkcija nepalaikoma, atsiranda #NAME? klaida.

    #SPILL klaida: kažkas blokuoja išsiliejimo diapazoną

    Jei vienas ar keli išsiliejimo intervalo langeliai nėra visiškai tušti arba sujungti, rodoma #SPILL! klaida. Jei norite ją ištaisyti, tiesiog pašalinkite kliūtį. Daugiau informacijos rasite skyriuje "Excel" #SPILL! klaida - ką ji reiškia ir kaip ištaisyti.

    #VALUE klaida: negaliojantys argumentai

    Kai tik susiduriate su #VALUE! klaida, patikrinkite sort_index ir sort_order argumentai. Sort_index neturėtų viršyti stulpelių skaičiaus yra masyvas , ir sort_order turėtų būti 1 (didėjantis) arba -1 (mažėjantis).

    #REF klaida: šaltinio sąsiuvinis uždarytas

    Kadangi dinaminiai masyvai ribotai palaiko nuorodas tarp sąsiuvinių, SORT funkcija reikalauja, kad abu failai būtų atidaryti. Jei šaltinio sąsiuvinis yra uždarytas, formulėje bus išmesta #REF! klaida. Norėdami ją ištaisyti, tiesiog atidarykite failą, į kurį pateikiama nuoroda.

    Štai kaip rūšiuoti duomenis "Excel" programoje naudojant formulę. Dėkoju, kad perskaitėte, ir tikiuosi, kad kitą savaitę susitiksime mūsų tinklaraštyje!

    Atsisiųsti praktikos sąsiuvinį

    Rūšiavimas "Excel" programoje naudojant formules (.xlsx failas)

    Michaelas Brownas yra atsidavęs technologijų entuziastas, mėgstantis supaprastinti sudėtingus procesus naudojant programinės įrangos įrankius. Turėdamas daugiau nei dešimtmetį patirtį technologijų pramonėje, jis patobulino savo įgūdžius „Microsoft Excel“ ir „Outlook“, taip pat „Google“ skaičiuoklėse ir dokumentuose. Michaelio tinklaraštis skirtas dalytis savo žiniomis ir patirtimi su kitais, jame pateikiami lengvai įgyvendinami patarimai ir vadovėliai, kaip pagerinti produktyvumą ir efektyvumą. Nesvarbu, ar esate patyręs profesionalas, ar pradedantysis, Michaelo tinklaraštyje rasite vertingų įžvalgų ir praktinių patarimų, kaip išnaudoti visas šių pagrindinių programinės įrangos įrankių galimybes.