Sadržaj
Danas ćemo pobliže pogledati sintaksu i tipične upotrebe nove funkcije dinamičkog niza SORTBY. Naučit ćete kako prilagođeno sortirati u Excelu pomoću formule, nasumično sortirati popis, rasporediti ćelije prema duljini teksta i još mnogo toga.
Microsoft Excel nudi niz načina za abecedno sređivanje tekstualnih podataka, datume kronološki, te brojeve od najmanjeg prema najvećem ili od najvećeg prema najmanjem. Također postoji način za sortiranje prema vlastitim prilagođenim popisima. Uz konvencionalnu funkciju sortiranja, Excel 365 predstavlja potpuno novi način sortiranja podataka s formulama - vrlo praktičan i nevjerojatno jednostavan za korištenje!
Excel SORTBY funkcija
Funkcija SORTBY u Excelu dizajnirana je za sortiranje jednog raspona ili niza na temelju vrijednosti u drugom rasponu ili nizu. Razvrstavanje se može izvršiti prema jednom ili više stupaca.
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 prelijeva u susjedne ćelije i automatski se ažurira kada izvorni podaci se mijenjaju.
Funkcija SORTBY ima varijabilan broj argumenata - prva dva su obavezna, a drugi su izborni:
SORTBY(niz, po_nizu1, [poredak_razvrstavanja1], [po_nizu2, poredak_razvrstavanja2] ,…)Niz (obavezno) - raspon ćelija ili niz vrijednosti koje treba sortirati.
Po_nizu1 (obavezno) - raspon ili niz sortiratiprema.
Sort_order1 (neobavezno) - redoslijed sortiranja:
- 1 ili izostavljeno (zadano) - uzlazno
- -1 - silazno
By_array2 / Sort_order2 , … (neobavezno) - dodatni parovi niza/redoslijeda koji se koriste za sortiranje.
Važna napomena! Trenutačno je funkcija SORTBY dostupna samo s pretplatama na Microsoft 365 i Excel 2021. U Excelu 2019, Excel 2016 i ranijim verzijama funkcija SORTBY nije dostupna.
Funkcija SORTBY - 4 stvari koje treba zapamtiti
Kako bi formula SORTBY u programu Excel radila ispravno, potrebno je obratiti pozornost na nekoliko važnih točaka:
- By_array argumenti trebaju biti ili jedan redak visoki ili jedan stupac široki.
- niz i svi argumenti po_nizu moraju imati kompatibilne dimenzije. Na primjer, kada sortirate prema dva stupca, array , by_array1 i by_array2 trebaju imati isti broj redaka; inače će se pojaviti pogreška #VALUE.
- Ako je niz koji vraća SORTBY konačni rezultat (izlaz u ćeliji i nije proslijeđen drugoj funkciji), Excel stvara dinamički raspon izlijevanja i popunjava ga rezultatima. Dakle, provjerite imate li dovoljno praznih ćelija dolje i/ili desno od ćelije u koju unosite formulu, inače ćete dobiti pogrešku #SPILL.
- Rezultati SORTBY formula automatski se ažuriraju kad god promjene izvornih podataka. Međutim, novi unosi koji se dodaju izvanpolje navedeno u formuli nije uključeno u rezultate osim ako ne ažurirate referencu niza . Da bi se referencirano polje automatski proširilo, pretvorite izvorni raspon u Excel tablicu ili stvorite dinamički imenovani raspon.
Osnovna formula SORTBY u Excelu
Ovo je tipični scenarij korištenja SORTBY formula u Excelu:
Pretpostavimo da imate popis projekata s poljem Vrijednost . Želite razvrstati projekte po njihovoj vrijednosti na zasebnom listu. Budući da drugi korisnici ne moraju vidjeti brojeve, radije ne biste uključili stupac Vrijednost u rezultate.
Zadatak se lako može izvršiti s funkcijom SORTBY, za koju dostavite sljedeće argumente:
- Niz je A2:A10 - budući da ne želite da se stupac Vrijednost prikazuje u rezultatima, ostavite ga izvan niza.
- By_array1 je B2:B10 - sortiraj po Vrijednosti .
- Sort_order1 je -1 - silazno, tj. od najvišeg prema najnižem.
Spajanjem argumenata dobivamo 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 "prolijevaju" u onoliko ćelija koliko je potrebno (D2:D10 u našem slučaju). No tehnički, formula se nalazi samo u prvoj ćeliji, a njezino brisanje iz D2 izbrisat će sve rezultate.
Kada se koristi na drugom listu, formula preuzimasljedeći oblik:
=SORTBY(Sheet1!A2:A10, Sheet1!B2:B10, -1)
Gdje je Sheet1 radni list koji sadrži izvorne podatke.
Korištenje SORTBY funkcije u Excelu - primjeri formula
U nastavku ćete pronaći još nekoliko primjera korištenja SORTBY, koji će se, nadamo se, pokazati korisnim i jasnim.
Sortiraj po više stupaca
Osnovna formula o kojoj je gore razmotreno razvrstava podatke po jednom stupcu. Ali što ako trebate dodati još jednu razinu sortiranja?
Uz pretpostavku da naša ogledna tablica ima dva polja, Status (stupac B) i Vrijednost (stupac C) , prvo želimo sortirati prema Statusu abecednim redom, a zatim prema Vrijednosti silazno.
Za sortiranje prema dva stupca, samo dodamo još jedan par by_array / sort_order argumenti:
- Array je A2:C10 - ovaj put želimo uključiti sva tri stupca u rezultate.
- By_array1 je B2:B10 - prvo, sortiraj prema Statusu .
- Sort_order1 je 1 - sortiraj po abecedi od A do Z.
- By_array2 je C2:C10 - tada sortiraj po Vrijednosti .
- Sort_order2 je -1 - sortiraj od najvećeg prema najmanjem.
Kao rezultat dobivamo sljedeću formulu:
=SORTBY(A2:B10, B2:B10, 1, C2:C10, -1)
Koja preuređuje naše podatke točno onako kako smo joj uputili:
Prilagođeno sortiranje u Excelu s formulom
Da biste sortirali podatke prilagođenim redoslijedom, možete koristiti Excelovu značajku prilagođenog sortiranja ili izraditi formulu SORTBY MATCH na ovaj način:
SORTBY(niz,MATCH( range_to_sort , custom_list , 0))Ako bolje pogledate naš skup podataka, vjerojatno će vam biti prikladnije sortirati projekte prema statusu "logički" , npr. po važnosti, a ne po abecedi.
Da bismo to učinili, prvo stvaramo prilagođeni popis u željenom redoslijedu ( U tijeku , Dovršeno , Na čekanju ) upisujući svaku vrijednost u zasebnu ćeliju u rasponu E2:E4.
A zatim, koristeći gornju generičku formulu, dostavljamo izvorni raspon za niz (A2 :C10), stupac Status za range_to_sort (B2:B10) i prilagođeni popis koji smo izradili za custom_list (E2:E4).
=SORTBY(A2:C10, MATCH(B2:B10, E2:E4, 0))
Kao rezultat toga, dobili smo projekte poredane po statusu točno onako kako je potrebno:
Za sortiranje prema prilagođenom popisu obrnutim redoslijedom, stavite -1 za sort_order1 argument:
=SORTBY(A2:C10, MATCH(B2:B10, E2:E4, 0), -1)
Imat ćete projekte poredane u suprotnom smjeru:
Želite li dodatno sortirati zapise unutar svakog statusa? Nema problema. Jednostavno, formuli dodajte još jednu razinu sortiranja, recimo prema Vrijednosti (C2:C10), i definirajte željeni redoslijed sortiranja, u našem slučaju rastući:
=SORTBY(A2:C10, MATCH(B2:B10, E2:E5, 0), 1, C2:C10, 1)
Velika prednost formule SORTBY u odnosu na Excelovu značajku prilagođenog sortiranja je ta da se formula automatski ažurira kad god se izvorni podaci promijene, dok značajka zahtijeva čišćenje i ponovno sortiranje sa svakom promjenom.
Kako ovu formuluradi:
Kao što je već spomenuto, Excelova funkcija SORTBY može obraditi samo "razvrstaj po" nizove čije su dimenzije kompatibilne s izvornim nizom. Kako naš izvorni niz (C2:C10) sadrži 9 redaka, a prilagođeni popis (E2:E4) samo 3 retka, ne možemo ga dostaviti izravno argumentu by_array . Umjesto toga, koristimo funkciju MATCH za stvaranje niza od 9 redaka:
MATCH(B2:B10, E2:E5, 0)
Ovdje koristimo stupac Status (B2:B10) kao vrijednosti pretraživanja i naš prilagođeni popis (E2:E5) kao niz za pretraživanje. Posljednji argument postavljen je na 0 za traženje točnih podudaranja. Kao rezultat, dobivamo niz od 9 brojeva, od kojih svaki predstavlja relativni položaj dane vrijednosti Status na prilagođenom popisu:
{1;3;2;1;3;2;2;1;2}
Ovaj niz ide izravno na argument by_array funkcije SORTBY i prisiljava je da postavi podatke redoslijedom koji odgovara elementima niza, tj. prvi unosi predstavljeni brojevima 1, zatim unosi predstavljeni brojevima 2, i tako dalje.
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 popis u Excelu.
U novom Excelu možete koristiti snažniju funkciju RANDARRAY zajedno s SORTBY:
SORTBY( array , RANDARRAY(ROWS( array )))Gdje su niz izvorni podaci koje želite miješati.
Ova generička formula radi za popis koji se sastoji odjedan stupac kao i za raspon s više stupaca.
Na primjer, za nasumično sortiranje popisa u A2:A10, koristite ovu formulu:
=SORTBY(A2:A10, RANDARRAY(ROWS(A2:A10)))
Za miješanje podataka u A2:C10 držeći retke zajedno, upotrijebite ovaj:
=SORTBY(A2:C10, RANDARRAY(ROWS(A2:C10)))
Kako ova formula funkcionira:
Funkcija RANDARRAY stvara niz nasumičnih brojeva koji će se koristiti za sortiranje, a vi ga proslijedite u argumentu by_array SORTBY. Da biste odredili koliko nasumičnih brojeva treba generirati, izbrojite broj redaka u izvornom rasponu pomoću funkcije ROWS i "dostavite" taj broj argumentu rows funkcije RANDARRAY. To je to!
Napomena. Kao i njegov prethodnik, RANDARRAY je nepostojana funkcija i generira novi niz slučajnih brojeva svaki put kada se radni list ponovno izračuna. Kao rezultat toga, vaši će se podaci pribjegavati svakoj promjeni na listu. Kako biste spriječili automatsko odabiranje, možete upotrijebiti značajku Posebno lijepljenje > Vrijednosti za zamjenu formula njihovim vrijednostima.
Sortiraj ćelije prema duljini niza
Da biste razvrstali ćelije prema duljini tekstualnih nizova koje sadrže, upotrijebite funkciju LEN da izbrojite broj znakova u svakoj ćeliji i dostavite izračunate duljine argumentu by_array funkcije SORTBY. Argument sort_order može se postaviti na 1 ili -1, ovisno o preferiranom redoslijedu sortiranja.
Za sortiranje po tekstualnom nizu od najmanjeg do najvećeg:
SORTBY(array, LEN(niz), 1)Za sortiranjetekstualni niz od najvećeg do najmanjeg:
SORTBY(niz, LEN(niz), -1)Evo formule koja demonstrira ovaj pristup na stvarnim podacima:
=SORTBY(A2:A7, LEN(A2:A7), 1)
Gdje su A2:A7 izvorne ćelije koje želite sortirati prema duljini teksta uzlaznim redoslijedom:
SORTBY naspram SORT
U grupi novih Excel funkcija dinamičkog niza postoje dvije dizajniran za sortiranje. U nastavku navodimo najbitnije razlike i sličnosti kao i kada je svaku najbolje koristiti.
- Za razliku od funkcije SORT, SORTBY ne zahtijeva da niz "razvrstaj po" bude dio izvora niz, niti se mora pojaviti u rezultatima. Dakle, kada je vaš zadatak sortirati raspon na temelju drugog neovisnog niza ili prilagođenog popisa, SORTBY je prava funkcija za korištenje. Ako želite razvrstati raspon na temelju vlastitih vrijednosti, SORT je prikladniji.
- Obje funkcije podržavaju više razina razvrstavanja i obje se mogu lančano povezati s drugim dinamičkim nizom i konvencionalnim funkcijama.
- Obje funkcije dostupne su samo korisnicima programa Excel 365 i Excel 2021.
Excel SORTBY funkcija ne radi
U slučaju da vaša formula SORTBY vraća pogrešku, to je najvjerojatnije zbog jedan od sljedećih razloga.
Nevažeći argumenti by_array
Argumenti by_array moraju biti jedan redak ili jedan stupac i kompatibilni po veličini s array argument. Na primjer, ako niz ima 10redaka, by_array također treba sadržavati 10 redaka. Inače #VRIJEDNOST! dolazi do pogreške.
Nevažeći argumenti sort_ordera
Argumenti sort_order mogu biti samo 1 (uzlazno) ili -1 (silazno). Ako vrijednost nije postavljena, SORTBY je prema zadanim postavkama uzlazni redoslijed. Ako je postavljena bilo koja druga vrijednost, #VALUE! vraća se pogreška.
Nema dovoljno prostora za rezultate
Kao i svaka druga funkcija dinamičkog niza, SORTBY raspršuje rezultate u raspon koji se može automatski mijenjati i ažurirati. Ako nema dovoljno praznih ćelija za prikaz svih vrijednosti, prikazuje se #SPILL! javlja se pogreška.
Izvorna radna knjiga je zatvorena
Ako formula SORTBY upućuje na drugu Excel datoteku, obje radne knjige moraju biti otvorene. Ako je izvorna radna knjiga zatvorena, #REF! dolazi do pogreške.
Vaša verzija programa Excel ne podržava dinamičke nizove
Kada se koristi u preddinamičkoj verziji programa Excel, funkcija SORT vraća #NAME? greška.
Tako se koristi funkcija SORTBY u Excelu za prilagođeno sortiranje i druge stvari. Zahvaljujem vam na čitanju i nadam se da se vidimo na našem blogu sljedeći tjedan!
Vježbe za preuzimanje
Excel SORTBY formule (.xlsx datoteka)