Obsah
Dnes sa bližšie pozrieme na syntax a typické spôsoby použitia novej funkcie dynamického poľa SORTBY. Dozviete sa, ako v programe Excel pomocou vzorca zoradiť podľa vlastného uváženia, náhodne zoradiť zoznam, usporiadať bunky podľa dĺžky textu a podobne.
Microsoft Excel poskytuje množstvo spôsobov, ako usporiadať textové údaje podľa abecedy, dátumy chronologicky a čísla od najmenšieho po najväčšie alebo od najväčšieho po najmenšie. K dispozícii je aj spôsob triedenia podľa vlastných zoznamov. Okrem bežnej funkcie Triediť prináša Excel 365 úplne nový spôsob triedenia údajov pomocou vzorcov - veľmi pohodlné a neuveriteľne jednoduché použitie!
Funkcia Excel SORTBY
Funkcia SORTBY v programe Excel je určená na triedenie jedného rozsahu alebo poľa na základe hodnôt v inom rozsahu alebo poli. Triedenie možno vykonať podľa jedného alebo viacerých stĺpcov.
SORTBY je jednou zo šiestich nových funkcií dynamického poľa, ktoré sú k dispozícii v aplikácii Excel pre Microsoft 365 a Excel 2021. Jej výsledkom je dynamické pole, ktoré sa rozširuje do susedných buniek a automaticky sa aktualizuje pri zmene zdrojových údajov.
Funkcia SORTBY má variabilný počet argumentov - prvé dva sú povinné a ostatné sú nepovinné:
SORTBY(array, by_array1, [sort_order1], [by_array2, sort_order2],...)Pole (povinné) - rozsah buniek alebo pole hodnôt, ktoré sa majú zoradiť.
By_array1 (povinné) - rozsah alebo pole, podľa ktorého sa má triediť.
Sort_order1 (nepovinné) - poradie triedenia:
- 1 alebo vynechať (predvolené) - vzostupne
- -1 - zostupne
By_array2 / Sort_order2 , ... (nepovinné) - ďalšie dvojice polí / poradí, ktoré sa majú použiť na triedenie.
Dôležité upozornenie! V súčasnosti je funkcia SORTBY k dispozícii len s predplatným Microsoft 365 a Excel 2021. V aplikáciách Excel 2019, Excel 2016 a starších verziách nie je funkcia SORTBY k dispozícii.
Funkcia SORTBY - 4 veci, ktoré si treba zapamätať
Aby vzorec SORTBY v programe Excel fungoval správne, je potrebné dbať na niekoľko dôležitých bodov:
- By_array argumenty by mali mať výšku jedného riadku alebo šírku jedného stĺpca.
- Stránka pole a všetky by_array argumenty musia mať kompatibilné rozmery. Napríklad pri triedení podľa dvoch stĺpcov, pole , by_array1 a by_array2 by mali mať rovnaký počet riadkov, inak dôjde k chybe #VALUE.
- Ak je pole vrátené funkciou SORTBY konečným výsledkom (výstupom v bunke a nie je odovzdané inej funkcii), Excel vytvorí dynamický rozptylový rozsah a vyplní ho výsledkami. Preto sa uistite, že máte dostatok prázdnych buniek dole a/alebo napravo od bunky, do ktorej zadávate vzorec, inak sa zobrazí chyba #SPILL.
- Výsledky vzorcov SORTBY sa automaticky aktualizujú vždy, keď sa zdrojové údaje zmenia. Nové položky, ktoré sú pridané mimo poľa, na ktoré sa vzorec odvoláva, však nie sú zahrnuté do výsledkov, pokiaľ neaktualizujete pole Aby sa odkazované pole automaticky rozšírilo, preveďte zdrojový rozsah na tabuľku programu Excel alebo vytvorte dynamický pomenovaný rozsah.
Základný vzorec SORTBY v programe Excel
Tu je typický scenár použitia vzorca SORTBY v programe Excel:
Predpokladajme, že máte zoznam projektov s Hodnota pole. Projekty chcete zoradiť podľa ich hodnoty na samostatnom hárku. Keďže ostatní používatelia nepotrebujú vidieť čísla, radšej by ste nemali uvádzať Hodnota stĺpec vo výsledkoch.
Túto úlohu možno ľahko vykonať pomocou funkcie SORTBY, ktorej zadáte nasledujúce argumenty:
- Pole je A2:A10 - keďže si neželáte, aby Hodnota stĺpec, ktorý sa má zobraziť vo výsledkoch, vynecháte ho z poľa.
- By_array1 je B2:B10 - zoradiť podľa Hodnota .
- Sort_order1 je -1 - zostupne, t. j. od najvyššej po najnižšiu.
Ak si tieto argumenty spojíme, dostaneme tento vzorec:
=SORTBY(A2:B10, B2:B10, -1)
Pre jednoduchosť použijeme vzorec na tom istom liste - zadáme ho do bunky D2 a stlačíme kláves Enter. Výsledky sa automaticky "rozlejú" do toľkých buniek, koľko je potrebné (v našom prípade D2:D10). Technicky je však vzorec len v prvej bunke a jeho vymazaním z D2 sa vymažú všetky výsledky.
Pri použití na inom liste má vzorec nasledujúci tvar:
=SORTBY(List1!A2:A10, List1!B2:B10, -1)
Kde List1 je pracovný hárok obsahujúci pôvodné údaje.
Používanie funkcie SORTBY v programe Excel - príklady vzorcov
Nižšie nájdete niekoľko ďalších príkladov použitia SORTBY, ktoré, dúfajme, budú užitočné a poučné.
Triedenie podľa viacerých stĺpcov
Základný vzorec uvedený vyššie triedi údaje podľa jedného stĺpca. Ale čo ak potrebujete pridať ešte jednu úroveň triedenia?
Predpokladajme, že naša vzorová tabuľka má dve polia, Stav (stĺpec B) a Hodnota (stĺpec C) , chceme triediť najprv podľa Stav podľa abecedy a potom podľa Hodnota zostupne.
Ak chceme triediť podľa dvoch stĺpcov, stačí pridať ešte jeden pár by_array / sort_order argumenty:
- Pole je A2:C10 - tentoraz chceme do výsledkov zahrnúť všetky tri stĺpce.
- By_array1 je B2:B10 - najprv zoradiť podľa Stav .
- Sort_order1 je 1 - zoradenie podľa abecedy od A po Z.
- By_array2 je C2:C10 - potom zoraďte podľa Hodnota .
- Sort_order2 je -1 - zoraďte od najväčšieho po najmenší.
Výsledkom je nasledujúci vzorec:
=SORTBY(A2:B10, B2:B10, 1, C2:C10, -1)
Ktorá preskupí naše údaje presne podľa našich pokynov:
Vlastné triedenie v programe Excel pomocou vzorca
Ak chcete zoradiť údaje vo vlastnom poradí, môžete použiť funkciu Vlastné triedenie programu Excel alebo takto zostaviť vzorec SORTBY MATCH:
SORTBY(pole, MATCH( range_to_sort , custom_list , 0))Pri podrobnejšom pohľade na náš súbor údajov vám pravdepodobne príde vhodnejšie zoradiť projekty podľa ich stavu "logicky", napr. podľa dôležitosti, a nie podľa abecedy.
Ak to chcete urobiť, najprv vytvorte vlastný zoznam v požadovanom poradí ( Prebieha , Dokončené , Na počkanie ), pričom každú hodnotu napíšete do samostatnej bunky v rozsahu E2:E4.
A potom pomocou vyššie uvedeného všeobecného vzorca dodáme zdrojový rozsah pre pole (A2:C10). Stav stĺpec pre range_to_sort (B2:B10) a vlastný zoznam, ktorý sme vytvorili pre custom_list (E2:E4).
=SORTBY(A2:C10, MATCH(B2:B10, E2:E4, 0))
Výsledkom je, že máme projekty zoradené podľa ich stavu presne tak, ako je potrebné:
Ak chcete triediť podľa vlastného zoznamu v opačnom poradí, vložte -1 do sort_order1 argument:
=SORTBY(A2:C10, MATCH(B2:B10, E2:E4, 0), -1)
A projekty budete mať zoradené opačným smerom:
Chcete dodatočne zoradiť záznamy v rámci jednotlivých stavov? Žiadny problém. Stačí, ak do vzorca pridáte ešte jednu úroveň triedenia, napríklad podľa Hodnota (C2:C10) a definujte požadované poradie triedenia, v našom prípade vzostupné:
=SORTBY(A2:C10, MATCH(B2:B10, E2:E5, 0), 1, C2:C10, 1)
Veľkou výhodou vzorca SORTBY v porovnaní s funkciou Vlastné triedenie programu Excel je, že vzorec sa automaticky aktualizuje vždy, keď sa zmenia pôvodné údaje, zatiaľ čo táto funkcia vyžaduje čistenie a nové triedenie pri každej zmene.
Ako tento vzorec funguje:
Ako už bolo spomenuté, funkcia SORTBY programu Excel dokáže spracovať len polia "triedenia podľa", ktorých rozmery sú kompatibilné so zdrojovým poľom. Keďže naše zdrojové pole (C2:C10) obsahuje 9 riadkov a vlastný zoznam (E2:E4) len 3 riadky, nemôžeme ho priamo dodať funkcii by_array Namiesto toho použijeme funkciu MATCH na vytvorenie 9-riadkového poľa:
MATCH(B2:B10, E2:E5, 0)
Tu používame Stav (B2:B10) ako vyhľadávacie hodnoty a náš vlastný zoznam (E2:E5) ako vyhľadávacie pole. Posledný argument je nastavený na 0, aby sa hľadali presné zhody. Výsledkom je pole 9 čísel, z ktorých každé predstavuje relatívnu pozíciu daného Stav hodnota v zozname vlastných položiek:
{1;3;2;1;3;2;2;1;2}
Toto pole prechádza priamo do by_array argument funkcie SORTBY a núti ju umiestniť údaje v poradí zodpovedajúcom prvkom poľa, t. j. najprv položky reprezentované jednotkami, potom položky reprezentované dvojkami atď.
Náhodné triedenie v programe Excel pomocou vzorca
V predchádzajúcich verziách programu Excel môžete náhodné triedenie vykonať pomocou funkcie RAND, ako je vysvetlené v tomto návode: Ako náhodne zoradiť zoznam v programe Excel.
V novom programe Excel môžete použiť výkonnejšiu funkciu RANDARRAY spolu s funkciou SORTBY:
SORTBY( pole , RANDARRAY(RIADKY( pole )))Kde pole sú zdrojové údaje, ktoré chcete premiešať.
Tento všeobecný vzorec funguje pre zoznam pozostávajúci z jedného stĺpca, ako aj pre rozsah viacerých stĺpcov.
Ak chcete napríklad náhodne zoradiť zoznam v A2:A10, použite tento vzorec:
=SORTBY(A2:A10, RANDARRAY(ROWS(A2:A10))
Ak chcete premiešať údaje v A2:C10 a zachovať riadky pohromade, použite tento príkaz:
=SORTBY(A2:C10, RANDARRAY(ROWS(A2:C10))
Ako tento vzorec funguje:
Funkcia RANDARRAY vytvorí pole náhodných čísel, ktoré sa použije na triedenie, a vy ho odovzdáte v príkaze by_array Ak chcete určiť, koľko náhodných čísel sa má vygenerovať, spočítajte počet riadkov v zdrojovom rozsahu pomocou funkcie ROWS a "pridajte" toto číslo do funkcie SORTBY. riadky argument RANDARRAY. To je všetko!
Poznámka: Podobne ako jej predchodkyňa, aj funkcia RANDARRAY je nestála funkcia a pri každom prepočítaní pracovného hárka generuje nové pole náhodných čísel. Výsledkom je, že vaše údaje sa budú pri každej zmene na hárku presúvať. Ak chcete zabrániť automatickému presúvaniu, môžete použiť príkaz Vložiť špeciálne > Hodnoty nahradiť vzorce ich hodnotami.
Zoradiť bunky podľa dĺžky reťazca
Ak chcete zoradiť bunky podľa dĺžky textových reťazcov, ktoré obsahujú, použite funkciu LEN na spočítanie počtu znakov v každej bunke a vypočítané dĺžky zadajte do funkcie by_array argument SORTBY. sort_order argument môže byť nastavený na 1 alebo -1, v závislosti od preferovaného poradia triedenia.
Zoradenie podľa textového reťazca od najmenšieho po najväčší:
SORTBY(pole, LEN(pole), 1)Zoradenie podľa textového reťazca od najväčšieho po najmenší:
SORTBY(pole, LEN(pole), -1)A tu je vzorec, ktorý tento prístup demonštruje na reálnych údajoch:
=SORTBY(A2:A7, LEN(A2:A7), 1)
Kde A2:A7 sú pôvodné bunky, ktoré chcete zoradiť podľa dĺžky textu vzostupne:
SORTBY vs. SORT
V skupine nových funkcií dynamického poľa programu Excel sú dve určené na triedenie. Nižšie uvádzame najzásadnejšie rozdiely a podobnosti, ako aj to, kedy je najlepšie jednotlivé funkcie použiť.
- Na rozdiel od funkcie SORTBY funkcia SORTBY nevyžaduje, aby pole "sort by" bolo súčasťou zdrojového poľa, ani sa nemusí objaviť vo výsledkoch. Ak je teda vašou úlohou zoradiť rozsah na základe iného nezávislého poľa alebo vlastného zoznamu, je vhodnejšou funkciou SORTBY. Ak chcete zoradiť rozsah na základe jeho vlastných hodnôt, je vhodnejšia funkcia SORT.
- Obe funkcie podporujú viac úrovní triedenia a obe možno reťaziť spolu s inými dynamickými a konvenčnými funkciami.
- Obe funkcie sú dostupné len pre používateľov aplikácie Excel 365 a Excel 2021.
Nefunguje funkcia Excel SORTBY
Ak vzorec SORTBY vráti chybu, je to pravdepodobne z jedného z nasledujúcich dôvodov.
Neplatné argumenty by_array
Stránka by_array Argumenty musia mať veľkosť jedného riadku alebo jedného stĺpca a musia byť kompatibilné s veľkosťou pole argument. Napríklad, ak pole má 10 riadkov, by_array V opačnom prípade sa vyskytne chyba #VALUE!.
Neplatné argumenty sort_order
Stránka sort_order Argumenty môžu byť len 1 (vzostupné) alebo -1 (zostupné). Ak nie je nastavená žiadna hodnota, SORTBY je predvolené vzostupné poradie. Ak je nastavená akákoľvek iná hodnota, je vrátená chyba #VALUE!.
Na výsledky nie je dostatok priestoru
Podobne ako každá iná funkcia dynamického poľa, aj funkcia SORTBY rozsype výsledky do automaticky meniteľného a aktualizovateľného rozsahu. Ak nie je dostatok prázdnych buniek na zobrazenie všetkých hodnôt, vyhodí sa chyba #SPILL!.
Zdrojový zošit je zatvorený
Ak vzorec SORTBY odkazuje na iný súbor programu Excel, musia byť otvorené oba zošity. Ak je zdrojový zošit zatvorený, vyskytne sa chyba #REF!.
Vaša verzia programu Excel nepodporuje dynamické polia
Pri použití v preddynamickej verzii programu Excel funkcia SORT vráti chybu #NAME?.
Takto sa dá použiť funkcia SORTBY v programe Excel na vlastné triedenie a ďalšie veci. Ď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
Vzorce Excel SORTBY (.xlsx súbor)