"Excel" funkcija SORTBY - pasirinktinis rūšiavimas pagal formulę

  • Pasidalinti
Michael Brown

Šiandien atidžiai apžvelgsime naujos dinaminės masyvo funkcijos SORTBY sintaksę ir tipinius jos naudojimo būdus. Sužinosite, kaip pagal užsakymą rūšiuoti "Excel" programoje naudojant formulę, atsitiktinai rūšiuoti sąrašą, išdėstyti ląsteles pagal teksto ilgį ir dar daugiau.

"Microsoft Excel" siūlo daugybę būdų, kaip teksto duomenis išdėstyti abėcėlės tvarka, datas - chronologiškai, o skaičius - nuo mažiausio iki didžiausio arba nuo didžiausio iki mažiausio. Taip pat yra būdas rūšiuoti pagal savo pasirinktus sąrašus. Be įprastos rūšiavimo funkcijos, "Excel 365" pristato visiškai naują būdą rūšiuoti duomenis naudojant formules - tai labai patogu ir neįtikėtinai paprasta naudoti!

    "Excel" funkcija SORTBY

    "Excel" funkcija SORTBY skirta rūšiuoti vieną intervalą arba masyvą pagal kito intervalo arba masyvo reikšmes. Rūšiuoti galima pagal vieną arba kelis stulpelius.

    SORTBY yra viena iš šešių naujų dinaminių masyvų funkcijų, esančių "Excel" programose "Microsoft 365" ir "Excel 2021". Jos rezultatas - dinaminis masyvas, kuris išsilieja į kaimyninius langelius ir automatiškai atnaujinamas, kai keičiasi šaltinio duomenys.

    Funkcija SORTBY turi kintamą argumentų skaičių - pirmieji du argumentai yra privalomi, o kiti - neprivalomi:

    SORTBY(array, by_array1, [sort_order1], [by_array2, sort_order2],...)

    Masyvas (privaloma) - rūšiuojamų langelių diapazonas arba reikšmių masyvas.

    Pagal_dėlionę1 (privaloma) - intervalas arba masyvas, pagal kurį bus rūšiuojama.

    Sort_order1 (neprivaloma) - rūšiavimo tvarka:

    • 1 arba praleista (numatytoji reikšmė) - didėjanti
    • -1 - mažėjančia tvarka

    Pagal_dėlionę2 / Sort_order2 , ... (neprivaloma) - papildomos masyvo ir tvarkos poros, naudojamos rūšiavimui.

    Svarbi pastaba! Šiuo metu funkcija SORTBY galima tik su "Microsoft 365" prenumerata ir "Excel 2021". 2019 m., 2016 m. ir ankstesnėse "Excel" versijose funkcija SORTBY negalima.

    Funkcija SORTBY - 4 dalykai, kuriuos reikia prisiminti

    Kad "Excel" SORTBY formulė veiktų teisingai, reikia atkreipti dėmesį į keletą svarbių dalykų:

    • Pagal_detalę argumentai turėtų būti vienos eilutės aukščio arba vieno stulpelio pločio.
    • Svetainė masyvas ir visi by_array argumentai turi būti suderinamų matmenų. Pavyzdžiui, rūšiuojant pagal du stulpelius, masyvas , by_array1 ir by_array2 turėtų turėti vienodą eilučių skaičių; priešingu atveju įvyks #VALUE klaida.
    • Jei SORTBY grąžinamas masyvas yra galutinis rezultatas (išvedamas ląstelėje ir neperduodamas kitai funkcijai), "Excel" sukuria dinaminį išsiliejimo diapazoną ir užpildo jį rezultatais. Taigi įsitikinkite, kad turite pakankamai tuščių langelių apačioje ir (arba) dešinėje ląstelės, kurioje įvedate formulę, pusėje, kitaip gausite #SPILL klaidą.
    • SORTBY formulių rezultatai atnaujinami automatiškai, kai tik pasikeičia šaltinio duomenys. Tačiau nauji įrašai, įtraukti už formulėje nurodyto masyvo ribų, į rezultatus neįtraukiami, nebent atnaujinate masyvas nuorodą. Jei norite, kad nurodomas masyvas išsiplėstų automatiškai, konvertuokite šaltinio diapazoną į "Excel" lentelę arba sukurkite dinaminį pavadintą diapazoną.

    Pagrindinė SORTBY formulė programoje "Excel

    Štai tipinis "Excel" formulės SORTBY naudojimo scenarijus:

    Tarkime, turite projektų sąrašą su Vertė norite rūšiuoti projektus pagal jų vertę atskirame lape. Kadangi kitiems naudotojams nereikia matyti skaičių, verčiau neįtraukite Vertė rezultatų stulpelyje.

    Šią užduotį galima nesunkiai atlikti naudojant funkciją SORTBY, kuriai pateikiami šie argumentai:

    • Masyvas yra A2:A10 - kadangi nenorite, kad Vertė stulpelio, kuris bus rodomas rezultatuose, neįtrauksite į masyvą.
    • Pagal_dėlionę1 yra B2:B10 - rūšiuoti pagal Vertė .
    • Sort_order1 yra -1 - mažėjantis, t. y. nuo didžiausio iki mažiausio.

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

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

    Kad būtų paprasčiau, formulę naudojame tame pačiame lape - įrašome ją į D2 ir spaudžiame klavišą Enter. Rezultatai automatiškai "išsilieja" į tiek langelių, kiek reikia (mūsų atveju D2:D10). Tačiau techniškai formulė yra tik pirmajame langelyje, o ją ištrynus iš D2 bus ištrinti visi rezultatai.

    Kai formulė naudojama kitame lape, ji įgauna tokią formą:

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

    Kur 1 lapas yra darbalapis, kuriame yra pirminiai duomenys.

    Funkcijos SORTBY naudojimas programoje "Excel" - formulės pavyzdžiai

    Toliau rasite dar keletą SORTBY naudojimo pavyzdžių, kurie, tikimės, bus naudingi ir įžvalgūs.

    Rūšiuoti pagal kelis stulpelius

    Pagal pirmiau aptartą pagrindinę formulę duomenys surūšiuojami pagal vieną stulpelį. Tačiau ką daryti, jei reikia pridėti dar vieną rūšiavimo lygį?

    Tarkime, kad mūsų pavyzdinėje lentelėje yra du laukai, Statusas (B stulpelis) ir Vertė (C stulpelis) , pirmiausia norime rūšiuoti pagal Statusas pagal abėcėlę, o tada pagal Vertė mažėjančia tvarka.

    Norėdami rūšiuoti pagal du stulpelius, tiesiog pridėkite dar vieną porą by_array / sort_order argumentai:

    • Masyvas yra A2:C10 - šį kartą į rezultatus norime įtraukti visus tris stulpelius.
    • Pagal_dėlionę1 yra B2:B10 - pirmiausia rūšiuokite pagal Statusas .
    • Sort_order1 yra 1 - rūšiuokite pagal abėcėlę nuo A iki Z.
    • Pagal_dėlionę2 yra C2:C10 - tada rūšiuokite pagal Vertė .
    • Sort_order2 yra -1 - rūšiuokite nuo didžiausio iki mažiausio.

    Gauname tokią formulę:

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

    Kuris pertvarko mūsų duomenis tiksliai taip, kaip nurodėme:

    Pasirinktinis rūšiavimas programoje "Excel" naudojant formulę

    Norėdami rūšiuoti duomenis pasirinktine tvarka, galite naudoti "Excel" pasirinktinio rūšiavimo funkciją arba tokiu būdu sukurti formulę SORTBY MATCH:

    SORTBY(masyvas, MATCH( range_to_sort , custom_list , 0))

    Atidžiau pažvelgę į mūsų duomenų rinkinį, tikriausiai pastebėsite, kad patogiau projektus rūšiuoti ne pagal abėcėlę, o "logiškai", pavyzdžiui, pagal svarbą.

    Norėdami tai padaryti, pirmiausia sukuriame pasirinktinį sąrašą norima rūšiavimo tvarka ( Vykdoma , Užbaigta , Sulaikyta ), kiekvieną reikšmę įrašydami į atskirą E2:E4 intervalo langelį.

    Tada, naudodami pirmiau pateiktą bendrąją formulę, pateikiame šaltinio diapazoną masyvas (A2:C10). Statusas stulpelis range_to_sort (B2:B10) ir pasirinktinį sąrašą, kurį sukūrėme custom_list (E2:E4).

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

    Todėl projektai surūšiuoti pagal būseną būtent taip, kaip reikia:

    Norėdami rūšiuoti pagal pasirinktinį sąrašą atvirkštine tvarka, įrašykite -1 kaip sort_order1 argumentas:

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

    O jūs projektus rūšiuosite priešinga kryptimi:

    Norite papildomai rūšiuoti įrašus pagal kiekvieną būseną? Jokių problemų. Paprasčiausiai į formulę įtraukite dar vieną rūšiavimo lygį, pvz., pagal Vertė (C2:C10) ir nustatykite pageidaujamą rūšiavimo tvarką, mūsų atveju - didėjimo tvarka:

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

    Didelis SORTBY formulės pranašumas prieš "Excel" pasirinktinio rūšiavimo funkciją yra tas, kad formulė atnaujinama automatiškai, kai tik pasikeičia pradiniai duomenys, o šią funkciją reikia išvalyti ir iš naujo rūšiuoti po kiekvieno pakeitimo.

    Kaip veikia ši formulė:

    Kaip jau minėta, "Excel" funkcija SORTBY gali apdoroti tik tuos "rūšiavimo pagal" masyvus, kurių matmenys atitinka pradinio masyvo matmenis. Kadangi mūsų pradiniame masyve (C2:C10) yra 9 eilutės, o pasirinktiniame sąraše (E2:E4) - tik 3 eilutės, negalime jo tiesiogiai pateikti funkcijai by_array Vietoj to, naudodami funkciją MATCH, sukuriame 9 eilučių masyvą:

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

    Čia mes naudojame Statusas stulpelį (B2:B10) kaip paieškos reikšmes ir mūsų pasirinktinį sąrašą (E2:E5) kaip paieškos masyvą. Paskutinis argumentas yra lygus 0, kad būtų ieškoma tikslių atitikmenų. Statusas reikšmė pasirinktiniame sąraše:

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

    Šis masyvas patenka tiesiai į by_array funkcijos SORTBY argumentas ir priverčia ją duomenis išdėstyti tokia tvarka, kuri atitinka masyvo elementus, t. y. pirmieji įrašai žymimi vienetais, po to įrašai žymimi dvejetais ir t. t.

    Atsitiktinis rūšiavimas "Excel" programoje naudojant formulę

    Ankstesnėse "Excel" versijose atsitiktinį rūšiavimą galite atlikti naudodami funkciją RAND, kaip paaiškinta šioje pamokoje: Kaip atsitiktinai rūšiuoti sąrašą "Excel" programoje.

    Naujojoje "Excel" programoje galite naudoti galingesnę funkciją RANDARRAY kartu su SORTBY:

    SORTBY( masyvas , RANDARRAY(ROWS( masyvas )))

    Kur masyvas yra šaltinio duomenys, kuriuos norite išmaišyti.

    Ši bendroji formulė tinka tiek vieno stulpelio sąrašui, tiek kelių stulpelių diapazonui.

    Pavyzdžiui, norėdami atsitiktine tvarka surūšiuoti sąrašą A2:A10, naudokite šią formulę:

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

    Norėdami išmaišyti A2:C10 duomenis, išlaikydami eilutes kartu, naudokite šią funkciją:

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

    Kaip veikia ši formulė:

    Funkcija RANDARRAY sukuria atsitiktinių skaičių masyvą, kuris bus naudojamas rūšiavimui, o jūs jį perduodate į by_array Norint nurodyti, kiek atsitiktinių skaičių generuoti, reikia suskaičiuoti eilučių skaičių šaltinio diapazone naudojant funkciją ROWS ir "paduoti" šį skaičių į funkciją SORTBY. eilutės RANDARRAY argumentas. Štai ir viskas!

    Pastaba. Kaip ir jos pirmtakė, RANDARRAY yra nepastovi funkcija, todėl kiekvieną kartą perskaičiuojant darbalapį ji sukuria naują atsitiktinių skaičių masyvą. Dėl to jūsų duomenys bus persiunčiami su kiekvienu lapo pakeitimu. Norėdami išvengti automatinio persiuntimo, galite naudoti Specialusis įklijavimas > Vertybės funkciją, kad pakeistumėte formules jų reikšmėmis.

    Rūšiuoti ląsteles pagal eilutės ilgį

    Norėdami surūšiuoti langelius pagal juose esančių teksto eilučių ilgį, naudokite funkciją LEN, kad suskaičiuotumėte kiekviename langelyje esančių simbolių skaičių, ir apskaičiuotus ilgius pateikite funkcijai by_array SORTBY argumentas. sort_order argumentas gali būti 1 arba -1, priklausomai nuo pageidaujamos rūšiavimo tvarkos.

    Rūšiuoti pagal teksto eilutę nuo mažiausios iki didžiausios:

    SORTBY(masyvas, LEN(masyvas), 1)

    Rūšiuoti pagal teksto eilutę nuo didžiausios iki mažiausios:

    SORTBY(masyvas, LEN(masyvas), -1)

    Štai formulė, kurioje šis metodas demonstruojamas naudojant realius duomenis:

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

    Kai A2:A7 yra pradinės ląstelės, kurias norite rūšiuoti pagal teksto ilgį didėjančia tvarka:

    SORTBY ir SORT

    Naujų "Excel" dinaminių masyvų funkcijų grupėje yra dvi rūšiavimui skirtos funkcijos. Toliau išvardijami esminiai skirtumai ir panašumai bei nurodoma, kada geriausia naudoti kiekvieną iš jų.

    • Skirtingai nei SORT funkcija, SORTBY nereikalauja, kad masyvas "rūšiuoti pagal" būtų šaltinio masyvo dalis ir kad jis būtų rodomas rezultatuose. Taigi, kai jūsų užduotis yra rūšiuoti intervalą pagal kitą nepriklausomą masyvą arba pasirinktinį sąrašą, SORTBY yra tinkama funkcija. Jei norite rūšiuoti intervalą pagal jo paties reikšmes, labiau tinka SORT.
    • Abi funkcijos palaiko kelių lygių rūšiavimą ir abi gali būti sujungtos su kitomis dinaminio masyvo ir įprastinėmis funkcijomis.
    • Abi funkcijos prieinamos tik "Excel 365" ir "Excel 2021" naudotojams.

    "Excel" SORTBY funkcija neveikia

    Jei SORTBY formulė grąžina klaidą, greičiausiai taip atsitiko dėl vienos iš šių priežasčių.

    Netinkami by_array argumentai

    Svetainė by_array argumentai turi būti viena eilutė arba vienas stulpelis, kurių dydis turi būti suderinamas su masyvas argumentas. Pavyzdžiui, jei masyvas turi 10 eilučių, by_array taip pat turėtų būti 10 eilučių. Priešingu atveju įvyks #VALUE! klaida.

    Netinkami sort_order argumentai

    Svetainė sort_order Argumentai gali būti tik 1 (didėjimo tvarka) arba -1 (mažėjimo tvarka). Jei nenustatyta jokia reikšmė, SORTBY numatytoji tvarka yra didėjimo tvarka. Jei nustatyta bet kokia kita reikšmė, grąžinama #VALUE! klaida.

    Rezultatams nepakanka vietos

    Kaip ir bet kuri kita dinaminių masyvų funkcija, SORTBY išpila rezultatus į automatiškai keičiamo dydžio ir atnaujinamą sritį. Jei tuščių langelių nepakanka visoms reikšmėms parodyti, išmetama #SPILL! klaida.

    Šaltinio sąsiuvinis uždarytas

    Jei SORTBY formulėje pateikiama nuoroda į kitą "Excel" failą, abu sąsiuviniai turi būti atidaryti. Jei šaltinio sąsiuvinis uždarytas, atsiranda #REF! klaida.

    Jūsų "Excel" versija nepalaiko dinaminių masyvų

    Naudojant "Excel" priešdinaminėje versijoje, funkcija SORT grąžina klaidą #NAME?.

    Štai kaip "Excel" programoje naudoti funkciją SORTBY, kad galėtumėte atlikti pasirinktinį rūšiavimą ir kitus dalykus. Dėkoju, kad perskaitėte, ir tikiuosi, kad kitą savaitę susitiksime mūsų tinklaraštyje!

    Atsisiųsti praktikos sąsiuvinį

    "Excel" SORTBY formulės (.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.