Obsah
Učebnica ukazuje, ako používať funkciu SORT na dynamické triedenie dátových polí. Naučíte sa vzorec na abecedné triedenie v programe Excel, zoraďovanie čísel vzostupne alebo zostupne, triedenie podľa viacerých stĺpcov a ďalšie.
Funkcia Triediť je tu už dlho. Ale so zavedením dynamických polí v programe Excel 365 sa objavil úžasne jednoduchý spôsob triedenia pomocou vzorcov. Krása tejto metódy spočíva v tom, že výsledky sa automaticky aktualizujú pri zmene zdrojových údajov.
Funkcia Excel SORT
Funkcia SORT v programe Excel zoradí obsah poľa alebo rozsahu podľa stĺpcov alebo riadkov vo vzostupnom alebo zostupnom poradí.
Funkcia SORT patrí do skupiny funkcií Dynamické pole. Výsledkom je dynamické pole, ktoré sa automaticky prelieva do susedných buniek vertikálne alebo horizontálne, v závislosti od tvaru zdrojového poľa.
Syntax funkcie SORT je nasledujúca:
SORT(pole, [sort_index], [sort_order], [by_col])Kde:
Pole (povinné) - je pole hodnôt alebo rozsah buniek na triedenie. Môžu to byť akékoľvek hodnoty vrátane textu, čísel, dátumov, časov atď.
Sort_index (nepovinné) - celé číslo, ktoré určuje, podľa ktorého stĺpca alebo riadku sa má triediť. Ak sa vynechá, použije sa predvolený index 1.
Sort_order (nepovinné) - definuje poradie triedenia:
- 1 alebo vynechať (predvolené) - vzostupné poradie, t. j. od najmenšieho po najväčší
- -1 - zostupné poradie, t. j. od najväčšieho po najmenší
By_col (nepovinné) - logická hodnota, ktorá určuje smer triedenia:
- FALSE alebo vynechať (predvolené) - triedenie podľa riadkov. Túto možnosť budete používať väčšinou.
- TRUE - zoradenie podľa stĺpcov. Túto možnosť použite, ak sú vaše údaje usporiadané horizontálne v stĺpcoch ako v tomto príklade.
Funkcia Excel SORT - tipy a poznámky
SORT je nová funkcia dynamického poľa a ako taká má niekoľko špecifík, ktoré by ste si mali uvedomiť:
- V súčasnosti je funkcia SORT k dispozícii len v aplikáciách Microsoft 365 a Excel 2021. Excel 2019, Excel 2016 nepodporujú vzorce dynamických polí, takže funkcia SORT nie je v týchto verziách k dispozícii.
- Ak je pole vrátené vzorcom SORT konečným výsledkom (t. j. nie je odovzdané inej funkcii), Excel dynamicky vytvorí primerane veľký rozsah a vyplní ho zoradenými hodnotami. Preto sa vždy uistite, že máte dostatok prázdnych buniek dole a/alebo napravo od bunky, do ktorej zadávate vzorec, inak dôjde k chybe #SPILL.
- Výsledky sa dynamicky aktualizujú podľa toho, ako sa menia zdrojové údaje. pole dodaný do vzorca sa automaticky nerozšíri tak, aby zahŕňal nové položky, ktoré sú pridané mimo odkazovaného pole Ak chcete zahrnúť takéto položky, musíte buď aktualizovať pole odkaz vo vzorci, alebo prekonvertovať zdrojový rozsah na tabuľku, ako je uvedené v tomto príklade, alebo vytvoriť dynamický pomenovaný rozsah.
Základný vzorec Excel SORT
Tento príklad ukazuje základný vzorec na zoradenie údajov v programe Excel vzostupne a zostupne.
Predpokladajme, že vaše údaje sú usporiadané abecedne, ako je znázornené na snímke nižšie. Hľadáte možnosť zoradiť čísla v stĺpci B bez toho, aby ste údaje rozdelili alebo premiešali.
Vzorec na zoradenie vo vzostupnom poradí
Ak chcete zoradiť hodnoty v stĺpci B od najmenšej po najväčšiu, použite tento vzorec:
=SORT(A2:B8, 2, 1)
Kde:
- A2:B8 je zdrojové pole
- 2 je číslo stĺpca, podľa ktorého sa má triediť
- 1 je vzostupné poradie
Keďže naše údaje sú usporiadané v riadkoch, posledný argument možno vynechať, aby bola predvolená hodnota FALSE - triedenie podľa riadkov.
Stačí zadať vzorec do ľubovoľnej prázdnej bunky (v našom prípade D2), stlačiť kláves Enter a výsledky sa automaticky prenesú do buniek D2:E8.
Vzorec na zoradenie v zostupnom poradí
Ak chcete údaje zoradiť zostupne, t. j. od najväčšieho po najmenší, nastavte sort_order argument na -1 takto:
=SORT(A2:B8, 2, -1)
Zadajte vzorec do ľavej hornej bunky cieľového rozsahu a dostanete tento výsledok:
Podobným spôsobom môžete zoradiť textové hodnoty v abecednom poradí od A po Z alebo od Z po A.
Ako triediť údaje v programe Excel pomocou vzorca
V nasledujúcich príkladoch je uvedených niekoľko typických použití funkcie SORT v programe Excel a niekoľko netriviálnych použití.
Excel Triediť podľa stĺpca
Pri triedení údajov v programe Excel väčšinou meníte poradie riadkov. Ak sú však vaše údaje usporiadané horizontálne s riadkami obsahujúcimi štítky a stĺpcami obsahujúcimi záznamy, možno budete potrebovať triedenie zľava doprava, a nie zhora nadol.
Ak chcete v programe Excel triediť podľa stĺpcov, nastavte by_col na TRUE. V tomto prípade, sort_index bude predstavovať riadok, nie stĺpec.
Ak chcete napríklad zoradiť nižšie uvedené údaje podľa množstva od najvyššieho po najnižšie, použite tento vzorec:
=SORT(B1:H2, 2, 1, TRUE)
Kde:
- B1:H2 sú zdrojové údaje na triedenie
- 2 je index triedenia, pretože triedime čísla v druhom riadku
- -1 označuje zostupné poradie
- TRUE znamená triedenie stĺpcov, nie riadkov
Triedenie podľa viacerých stĺpcov v rôznom poradí (viacúrovňové triedenie)
Pri práci so zložitými dátovými modelmi môžete často potrebovať viacúrovňové triedenie. Dá sa to urobiť pomocou vzorca? Áno, jednoducho! Stačí, ak zadáte konštanty poľa pre sort_index a sort_order argumenty.
Ak chcete napríklad zoradiť nasledujúce údaje najprv podľa Región (stĺpec A) z A do Z a potom Množstvo . (stĺpec C) od najmenšieho po najväčší, nastavte nasledujúce argumenty:
- Pole sú údaje v A2:C13.
- Sort_index je konštanta poľa {1,3}, pretože najprv triedime podľa Región (1. stĺpec) a potom Množstvo . (3. stĺpec).
- Sort_order je konštanta poľa {1,-1}, pretože 1. stĺpec má byť zoradený vzostupne a 3. stĺpec zostupne.
- By_col je vynechaný, pretože triedime riadky, čo je predvolené.
Ak si tieto argumenty spojíme, dostaneme tento vzorec:
=SORT(A2:C13, {1,3}, {1,-1})
Textové hodnoty v prvom stĺpci sú zoradené podľa abecedy a čísla v treťom stĺpci od najväčšieho po najmenšie:
Triedenie a filtrovanie v programe Excel
V prípade, že chcete údaje filtrovať podľa určitých kritérií a zoradiť výstup, použite funkcie SORT a FILTER spoločne:
SORT(FILTER(pole, criteria_range = kritériá ), [sort_index], [sort_order], [by_col])Funkcia FILTER získa pole hodnôt na základe definovaných kritérií a toto pole odovzdá prvému argumentu funkcie SORT.
Najlepšie na tomto vzorci je, že výsledky vypíše aj ako dynamický rozsah rozsypu bez toho, aby ste museli stláčať klávesovú skratku Ctrl + Shift + Enter alebo hádať, do koľkých buniek ho skopírovať. Ako zvyčajne, vzorec napíšete do najvrchnejšej bunky a stlačíte kláves Enter.
Ako príklad vyberieme položky s množstvom rovným alebo väčším ako 30 (>=30) zo zdrojových údajov v A2:B9 a výsledky usporiadame vzostupne.
Na tento účel najprv nastavíme podmienku, napríklad v bunke E2, ako je znázornené na obrázku nižšie. A potom takto zostavíme náš vzorec Excel SORT:
=SORT(FILTER(A2:B9, B2:B9>=E2), 2)
Okrem pole generované funkciou FILTER, zadávame len sort_index Zvyšné dva argumenty sú vynechané, pretože predvolené hodnoty fungujú presne tak, ako potrebujeme (triedenie vzostupne, podľa riadkov).
Získanie N najväčších alebo najmenších hodnôt a zoradenie výsledkov
Pri analýze obrovských objemov informácií je často potrebné extrahovať určitý počet najvyšších hodnôt. Možno nielen extrahovať, ale aj usporiadať ich v požadovanom poradí. A v ideálnom prípade vybrať, ktoré stĺpce sa zahrnú do výsledkov. Znie to zložito? Nie s novými funkciami dynamického poľa!
Tu je všeobecný vzorec:
INDEX(SORT(...), SEQUENCE( n ), { column1_to_return , column2_to_return , ...})Kde n je číslo hodnôt, ktoré chcete vrátiť.
Predpokladajme, že z nižšie uvedeného súboru údajov chcete získať zoznam 3 najlepších na základe čísel v stĺpci C.
Ak to chcete urobiť, najprv zoraďte pole A2:C13 podľa tretieho stĺpca zostupne:
SORT(A2:C13, 3, -1)
A potom vložte vyššie uvedený vzorec do prvého ( pole ) argumentu funkcie INDEX, aby sa pole zoradilo od najväčšieho po najmenšie.
V prípade druhého ( číslo_riadku ), ktorý udáva, koľko riadkov sa má vrátiť, vygenerujte požadované sekvenčné čísla pomocou funkcie SEQUENCE. Keďže potrebujeme 3 vrcholové hodnoty, použijeme SEQUENCE(3), čo je rovnaké ako zadanie konštanty vertikálneho poľa {1;2;3} priamo vo vzorci.
V prípade tretieho ( col_num ), ktorý definuje, koľko stĺpcov sa má vrátiť, uveďte čísla stĺpcov vo forme konštanty horizontálneho poľa. Chceme vrátiť stĺpce B a C, preto použijeme pole {2,3}.
Nakoniec dostaneme nasledujúci vzorec:
=INDEX(SORT(A2:C13, 3, -1), SEQUENCE(3), {2,3})
A prináša presne tie výsledky, ktoré chceme:
Vrátiť sa 3 dno hodnoty, jednoducho zoraďte pôvodné údaje od najmenšej po najväčšiu. Na tento účel zmeňte sort_order argument od -1 do 1:
=INDEX(SORT(A2:C13, 3, 1), SEQUENCE(3), {2,3})
Vrátiť zoradenú hodnotu na konkrétnej pozícii
Ak sa na to pozrieme z iného uhla pohľadu, čo ak chcete vrátiť len určitú pozíciu triedenia? Povedzme len 1. , len 2. alebo len 3. záznam z triedeného zoznamu? Ak to chcete urobiť, použite zjednodušenú verziu vzorca INDEX SORT, o ktorej sme hovorili vyššie:
INDEX(SORT(...), n , { column1_to_return , column2_to_return , ...})Kde n je poloha, ktorá je predmetom záujmu.
Ak chcete napríklad získať konkrétnu pozíciu zhora (t. j. z údajov zoradených zostupne), použite tento vzorec:
=INDEX(SORT(A2:C13, 3, -1), F1, {2,3})
Ak chcete získať konkrétnu pozíciu zdola (t. j. z údajov zoradených vzostupne), použite tento príkaz:
=INDEX(SORT(A2:C13, 3, 1), I1, {2,3})
Kde A2:C13 sú zdrojové údaje, F1 je pozícia zhora, I1 je pozícia zdola a {2,3} sú stĺpce, ktoré sa majú vrátiť.
Použitie tabuľky programu Excel na automatické rozšírenie triediaceho poľa
Ako už viete, zoradené pole sa automaticky aktualizuje, keď vykonáte akékoľvek zmeny v pôvodných údajoch. Ide o štandardné správanie všetkých funkcií dynamického poľa vrátane funkcie SORT. Keď však pridáte nové položky mimo odkazovaného poľa, nebudú automaticky zahrnuté do vzorca. Ak chcete, aby váš vzorec reagoval na takéto zmeny, prekonvertujte zdrojový rozsah na plnefunkčnú tabuľku Excelu a vo vzorci použite štruktúrované odkazy.
Ak chcete vidieť, ako to funguje v praxi, pozrite si nasledujúci príklad.
Predpokladajme, že použijete nasledujúci vzorec Excel SORT na usporiadanie hodnôt v rozsahu A2:B8 v abecednom poradí:
=SORT(A2:B8, 1, 1)
Potom zadáte nový záznam do riadku 9... a ste sklamaní, keď zistíte, že novo pridaný záznam zostal mimo rozsahu prelievania:
Teraz preveďte zdrojový rozsah na tabuľku. Na tento účel jednoducho vyberte svoj rozsah vrátane hlavičiek stĺpcov (A1:B8) a stlačte klávesovú skratku Ctrl + T . Pri zostavovaní vzorca vyberte zdrojový rozsah pomocou myši a názov tabuľky sa automaticky vloží do vzorca (nazýva sa to štruktúrovaný odkaz):
=SORT(Tabuľka1, 1, 1)
Keď zadáte nový údaj priamo pod posledný riadok, tabuľka sa automaticky rozšíri a nové údaje sa zahrnú do rozsahu rozsypu vzorca SORT:
Nefunguje funkcia Excel SORT
Ak váš vzorec SORT vedie k chybe, je to pravdepodobne z nasledujúcich dôvodov.
#NAME chyba: staršia verzia programu Excel
Funkcia SORT je nová funkcia a funguje len v aplikáciách Excel 365 a Excel 2021. V starších verziách, v ktorých táto funkcia nie je podporovaná, sa vyskytne chyba #NAME?
#SPILL chyba: niečo blokuje rozsah rozliatia
Ak jedna alebo viac buniek v rozsahu rozsypu nie je úplne prázdna alebo zlúčená, zobrazí sa chyba #SPILL! Ak ju chcete opraviť, stačí odstrániť blokovanie. Ďalšie informácie nájdete v časti Chyba programu Excel #SPILL! - čo znamená a ako ju opraviť.
#VALUE chyba: neplatné argumenty
Vždy, keď narazíte na chybu #VALUE!, skontrolujte sort_index a sort_order argumenty. Sort_index by nemal prekročiť počet stĺpcov je pole a sort_order by mala byť 1 (vzostupne) alebo -1 (zostupne).
#REF chyba: zdrojový zošit je uzavretý
Keďže dynamické polia majú obmedzenú podporu odkazov medzi zošitmi, funkcia SORT vyžaduje, aby boli oba súbory otvorené. Ak je zdrojový zošit zatvorený, vzorec vyhodí chybu #REF! Ak to chcete opraviť, stačí otvoriť odkazovaný súbor.
To je spôsob, ako triediť údaje v programe Excel pomocou vzorca. Ďakujem vám za prečítanie a dúfam, že sa uvidíme na našom blogu budúci týždeň!
Cvičebnica na stiahnutie
Triedenie v programe Excel pomocou vzorcov (.xlsx súbor)