Excel funkcija SORTBY - prilagođeno sortiranje s formulom

  • Podijeli Ovo
Michael Brown

Danas ćemo pomno pogledati sintaksu i tipične upotrebe nove funkcije dinamičkog niza SORTBY. Naučit ćete kako prilagoditi sortiranje u Excelu pomoću formule, nasumično sortirati listu, rasporediti ćelije po dužini teksta i još mnogo toga.

Microsoft Excel nudi brojne načine za sređivanje tekstualnih podataka po abecednom redu, datume hronološki, i brojevi od najmanjeg do najvećeg ili od najvišeg do najmanjeg. Postoji i način sortiranja prema vlastitim prilagođenim listama. Pored uobičajene funkcije sortiranja, Excel 365 uvodi potpuno novi način sortiranja podataka pomoću formula - vrlo zgodan i nevjerovatno jednostavan za korištenje!

    Excel funkcija SORTBY

    Funkcija SORTBY u Excelu je dizajnirana da sortira jedan raspon ili niz na osnovu vrijednosti u drugom rasponu ili nizu. Sortiranje se može izvršiti po jednoj ili više kolona.

    SORTBY je jedna od šest novih funkcija dinamičkog niza dostupnih u Excelu za Microsoft 365 i Excel 2021. Njegov rezultat je dinamički niz koji se prenosi na susjedne ćelije i automatski se ažurira kada izvorni podaci se mijenjaju.

    Funkcija SORTBY ima promjenjiv broj argumenata - prva dva su obavezna, a drugi su opcioni:

    SORTBY(niz, po_nizu1, [sort_order1], [po_nizu2, sort_order2] ,…)

    Niz (obavezno) - raspon ćelija ili niz vrijednosti koje treba sortirati.

    Po_nizu1 (obavezno) - raspon ili niz sortiratipo.

    Sort_order1 (opcionalno) - redoslijed sortiranja:

    • 1 ili izostavljen (zadano) - rastući
    • -1 - silazni

    Po_nizu2 / Sort_order2 , … (opciono) - dodatni niz / red parovi koji se koriste za sortiranje.

    Važna napomena! Trenutno je funkcija SORTBY dostupna samo uz pretplate na Microsoft 365 i Excel 2021. U Excel 2019, Excel 2016 i ranijim verzijama funkcija SORTBY nije dostupna.

    Funkcija SORTBY - 4 stvari koje treba zapamtiti

    Da bi Excel formula SORTBY ispravno radila, treba obratiti pažnju na nekoliko važnih tačaka:

    • By_array argumenti bi trebali biti visoki ili jedan red ili jedan stupac široki.
    • Argumenti niz i svi by_array argumenti moraju imati kompatibilne dimenzije. Na primjer, kada se sortira po dvije kolone, niz , po_nizu1 i po_nizu2 trebaju imati isti broj redova; inače će doći do greške #VALUE.
    • Ako je niz koji vraća SORTBY konačni rezultat (izlaz u ćeliji i nije proslijeđen drugoj funkciji), Excel kreira dinamički raspon prelivanja i popunjava ga rezultatima. Dakle, budite sigurni da imate dovoljno praznih ćelija dolje i/ili desno od ćelije u koju unosite formulu, inače ćete dobiti grešku #SPILL.
    • Rezultati SORTBY formula se automatski ažuriraju kad god se promjene izvornih podataka. Međutim, novi unosi koji se dodaju izvanniz referenciran u formuli nije uključen u rezultate osim ako ne ažurirate referencu array . Da bi se referentni niz automatski proširio, pretvorite izvorni raspon u Excel tablicu ili kreirajte dinamički imenovani raspon.

    Osnovna formula SORTBY u Excelu

    Evo tipičnog scenarija korištenja Formula SORTBY u Excelu:

    Pretpostavimo da imate listu projekata sa poljem Vrijednost . Želite sortirati projekte po njihovoj vrijednosti na posebnom listu. Kako drugi korisnici ne moraju vidjeti brojeve, radije ne biste uključili kolonu Vrijednost u rezultate.

    Zadatak se može lako izvršiti pomoću funkcije SORTBY, za koju ste navedite sljedeće argumente:

    • Niz je A2:A10 - pošto ne želite da se kolona Vrijednost prikazuje u rezultatima, ostavite je izvan niza.
    • Po_nizu1 je B2:B10 - sortiraj po Vrijednosti .
    • Sortiraj_red1 je -1 - silazno, tj. od najvišeg ka najnižem.

    Stavljajući argumente, dobijamo ovu formulu:

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

    Radi jednostavnosti koristimo formulu na istom list - unesite ga u D2 i pritisnite tipku Enter. Rezultati se automatski "prosipaju" na onoliko ćelija koliko je potrebno (D2:D10 u našem slučaju). Ali tehnički, formula je samo u prvoj ćeliji, a brisanjem iz D2 izbrisat će se svi rezultati.

    Kada se koristi na drugom listu, formula uzimasljedeći oblik:

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

    Gdje je Sheet1 radni list koji sadrži originalne podatke.

    Upotreba funkcije SORTBY u Excelu - primjeri formule

    U nastavku ćete pronaći još nekoliko primjera korištenja SORTBY-a, koji će se, nadamo se, pokazati korisnim i pronicljivim.

    Sortiraj po više kolona

    Osnovna formula o kojoj smo gore govorili sortira podatke po jednoj koloni. Ali šta ako trebate dodati još jedan nivo sortiranja?

    Pod pretpostavkom da naša tablica uzorka ima dva polja, Status (kolona B) i Vrijednost (kolona C) , želimo prvo sortirati po Status po abecedi, a zatim po Vrijednosti opadajućem.

    Da sortiramo po dvije kolone, samo dodamo još jedan par by_array / sort_order argumenti:

    • Niz je A2:C10 - ovog puta želimo uključiti sve tri kolone u rezultate.
    • Po_nizu1 je B2:B10 - prvo, sortiraj po Status .
    • Sortiran_red1 je 1 - sortiraj po abecedi od A do Z.
    • Po_nizu2 je C2:C10 - onda, sortiraj po Vrijednosti .
    • Sortiraj_red2 je -1 - sortiraj od najvećeg prema najmanjem.

    Kao rezultat, dobijamo sljedeću formulu:

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

    Koja preuređuje naše podatke točno onako kako smo im dali upute:

    Prilagođeno sortiranje u Excelu s formulom

    Da sortirate podatke po prilagođenom redoslijedu, možete koristiti Excelovu funkciju prilagođenog sortiranja ili napraviti formulu SORTBY MATCH na ovaj način:

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

    Kada pažljivije pogledate naš skup podataka, vjerovatno će vam biti zgodnije sortirati projekte prema njihovom statusu "logično" , npr. po važnosti, a ne po abecednom redu.

    Da bismo to učinili, prvo kreiramo prilagođenu listu u željenom redoslijedu sortiranja ( U toku , Završeno , Na čekanju ) upisivanje svake vrijednosti u posebnu ćeliju u rasponu E2:E4.

    A zatim, koristeći gornju generičku formulu, dostavljamo izvorni raspon za array (A2 :C10), kolona Status za range_to_sort (B2:B10), i prilagođena lista koju smo kreirali za custom_list (E2:E4).

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

    Kao rezultat, dobili smo projekte sortirane po njihovom statusu tačno prema potrebi:

    Da sortirate po prilagođenoj listi obrnutim redoslijedom, stavite -1 za sort_order1 argument:

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

    I imat ćete projekte sortirane u suprotnom smjeru:

    Želite li dodatno sortirati zapise unutar svakog statusa? Nema problema. Jednostavno, dodajte još jedan nivo sortiranja u formulu, recimo po Vrijednost (C2:C10), i definirajte željeni redoslijed sortiranja, uzlazno u našem slučaju:

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

    Velika prednost formule SORTBY u odnosu na Excelovu funkciju prilagođenog sortiranja je da se formula automatski ažurira kad god se originalni podaci promijene, dok funkcija zahtijeva čišćenje i ponovno sortiranje sa svakom promjenom.

    Kako ovu formuluradi:

    Kao što je već spomenuto, Excelova funkcija SORTBY može obraditi samo "sort by" nizove čije su dimenzije kompatibilne s izvornim nizom. Kako naš izvorni niz (C2:C10) sadrži 9 redova, a prilagođena lista (E2:E4) samo 3 reda, ne možemo ga dostaviti direktno argumentu by_array . Umjesto toga, koristimo funkciju MATCH za kreiranje niza od 9 redaka:

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

    Ovdje koristimo kolonu Status (B2:B10) kao vrijednosti pretraživanja i našu prilagođenu listu (E2:E5) kao niz pretraživanja. Posljednji argument je postavljen na 0 za traženje tačnih podudaranja. Kao rezultat, dobijamo niz od 9 brojeva, od kojih svaki predstavlja relativnu poziciju date vrijednosti Status na prilagođenoj listi:

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

    Ovaj niz ide direktno argumentu by_array funkcije SORTBY i prisiljava ga da postavi podatke redoslijedom koji odgovara elementima niza, tj. prvi unosi predstavljeni 1, zatim unosi predstavljeni 2, itd.

    Nasumično sortiranje u Excelu s formulom

    U ranijim verzijama Excela, možete izvršiti nasumično sortiranje pomoću funkcije RAND kao što je objašnjeno u ovom vodiču: Kako nasumično sortirati listu u Excelu.

    U novom Excelu, možete koristiti moćniju funkciju RANDARRAY zajedno sa SORTBY:

    SORTBY( array , RANDARRAY(ROWS( array )))

    Gdje je array izvorni podaci koje želite promiješati.

    Ova generička formula radi za listu koja se sastoji odjedan stupac kao i za raspon s više kolona.

    Na primjer, da nasumično sortirate listu u A2:A10, koristite ovu formulu:

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

    Za miješanje podaci u A2:C10 držeći redove zajedno, koristite ovaj:

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

    Kako ova formula funkcionira:

    Funkcija RANDARRAY proizvodi niz slučajnih brojeva koji će se koristiti za sortiranje, a vi ga prosljeđujete u argument by_array SORTBY. Da biste odredili koliko nasumičnih brojeva treba generirati, brojite broj redova u izvornom rasponu korištenjem funkcije ROWS i "unosite" taj broj u argument rows RANDARRAY. To je to!

    Napomena. Kao i njegov prethodnik, RANDARRAY je promjenjiva funkcija i generiše novi niz slučajnih brojeva svaki put kada se radni list ponovo izračuna. Kao rezultat, vaši podaci će biti korišteni sa svakom promjenom na listu. Da spriječite automatsko korištenje, možete koristiti funkciju Specijalno lijepljenje > Vrijednosti da zamijenite formule njihovim vrijednostima.

    Sortirajte ćelije po dužini niza

    Da biste sortirali ćelije po dužini tekstualnih nizova koje sadrže, koristite funkciju LEN da prebrojite broj znakova u svakoj ćeliji i dostavite izračunate dužine u argument by_array SORTBY. Argument sort_order može se postaviti na 1 ili -1, ovisno o željenom redoslijedu sortiranja.

    Da biste sortirali po tekstualnom nizu od najmanjeg do najvećeg:

    SORTBY(niz, LEN(niz), 1)

    Za sortiranje potekstualni niz od najvećeg do najmanjeg:

    SORTBY(niz, LEN(niz), -1)

    I evo formule koja pokazuje ovaj pristup na stvarnim podacima:

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

    Gdje su A2:A7 originalne ćelije koje želite sortirati po dužini teksta u rastućem redoslijedu:

    SORTBY vs. SORT

    U grupi novih funkcija dinamičkog niza Excel, postoje dvije dizajniran za sortiranje. U nastavku navodimo najvažnije razlike i sličnosti, kao i kada je svaku najbolje koristiti.

    • Za razliku od funkcije SORT, SORTBY ne zahtijeva da niz "sortiraj po" bude dio izvora niz, niti se mora pojaviti u rezultatima. Dakle, kada je vaš zadatak sortirati raspon na osnovu drugog nezavisnog niza ili prilagođene liste, SORTBY je prava funkcija za korištenje. Ako želite sortirati raspon na osnovu njegovih vlastitih vrijednosti, onda je SORT prikladniji.
    • Obje funkcije podržavaju više nivoa sortiranja i obje se mogu povezati zajedno s drugim dinamičkim nizom i konvencionalnim funkcijama.
    • Obe funkcije dostupne su samo korisnicima programa Excel 365 i Excel 2021.

    Excel funkcija SORTBY ne radi

    U slučaju da vaša SORTBY formula vrati grešku, to je najvjerovatnije zbog jedan od sljedećih razloga.

    Nevažeći argumenti by_array

    Argumenti by_array moraju biti jedan red ili jedan stupac i kompatibilni po veličini s array argument. Na primjer, ako niz ima 10rows, by_array također treba uključiti 10 redova. Inače #VRIJEDNOST! javlja se greška.

    Nevažeći argumenti sort_order

    Argumenti sort_order mogu biti samo 1 (uzlazno) ili -1 (opadajuće). Ako nije postavljena nijedna vrijednost, SORTBY se prema zadanim postavkama postavlja uzlaznim redoslijedom. Ako je postavljena bilo koja druga vrijednost, #VRIJEDNOST! greška se vraća.

    Nema dovoljno prostora za rezultate

    Kao i svaka druga funkcija dinamičkog niza, SORTBY prebacuje rezultate u raspon koji se automatski može mijenjati i ažurirati. Ako nema dovoljno praznih ćelija da se prikažu sve vrijednosti, pojavit će se #SPILL! javlja se greška.

    Izvorna radna knjiga je zatvorena

    Ako formula SORTBY referencira drugu Excel datoteku, obje radne knjige moraju biti otvorene. Ako je izvorna radna sveska zatvorena, #REF! dolazi do greške.

    Vaša verzija Excela ne podržava dinamičke nizove

    Kada se koristi u preddinamičkoj verziji Excela, funkcija SORT vraća #NAME? greška.

    Tako se koristi funkcija SORTBY u Excelu za prilagođeno sortiranje i druge stvari. Zahvaljujem vam što čitate i nadam se da se vidimo na našem blogu sljedeće sedmice!

    Vježbajte radnu svesku za preuzimanje

    Excel SORTBY formule (.xlsx datoteka)

    Michael Brown je posvećen tehnološki entuzijasta sa strašću za pojednostavljenje složenih procesa pomoću softverskih alata. Sa više od decenije iskustva u tehnološkoj industriji, usavršio je svoje vještine u Microsoft Excelu i Outlooku, kao i Google Sheets i Docs. Michaelov blog je posvećen dijeljenju svog znanja i stručnosti s drugima, pružajući jednostavne savjete i tutorijale za poboljšanje produktivnosti i efikasnosti. Bilo da ste iskusni profesionalac ili početnik, Michaelov blog nudi vrijedne uvide i praktične savjete za izvlačenje maksimuma iz ovih osnovnih softverskih alata.