Obsah
Výukový kurz ukazuje, jak používat funkci SORT k dynamickému řazení datových polí. Naučíte se vzorec pro abecední řazení v Excelu, seřazení čísel vzestupně nebo sestupně, řazení podle více sloupců a další.
Funkce Seřadit je k dispozici již dlouho. Se zavedením dynamických polí v aplikaci Excel 365 se však objevil úžasně jednoduchý způsob třídění pomocí vzorců. Krása této metody spočívá v tom, že se výsledky automaticky aktualizují při změně zdrojových dat.
Funkce Excel SORT
Funkce SORT v aplikaci Excel seřadí obsah pole nebo rozsahu podle sloupců nebo řádků vzestupně nebo sestupně.
Funkce SORT patří do skupiny funkcí Dynamické pole. Výsledkem je dynamické pole, které se automaticky přelévá do sousedních buněk vertikálně nebo horizontálně v závislosti na tvaru zdrojového pole.
Syntaxe funkce SORT je následující:
SORT(pole, [sort_index], [sort_order], [by_col])Kde:
Pole (povinné) - je pole hodnot nebo rozsah buněk, které se mají seřadit. Mohou to být libovolné hodnoty včetně textu, čísel, dat, časů atd.
Sort_index (nepovinné) - celé číslo, které určuje, podle kterého sloupce nebo řádku se má řadit. Pokud je vynecháno, použije se výchozí index 1.
Sort_order (nepovinné) - určuje pořadí řazení:
- 1 nebo vynecháno (výchozí) - vzestupné pořadí, tj. od nejmenšího k největšímu
- -1 - sestupné pořadí, tj. od největšího po nejmenší.
By_col (nepovinné) - logická hodnota, která určuje směr třídění:
- FALSE nebo vynecháno (výchozí) - řazení podle řádků. Tuto možnost budete používat většinou.
- TRUE - řazení podle sloupců. Tuto možnost použijte, pokud jsou vaše data uspořádána horizontálně ve sloupcích jako v tomto příkladu.
Funkce Excel SORT - tipy a poznámky
SORT je nová funkce dynamického pole a jako taková má několik specifik, která byste měli znát:
- V současné době je funkce SORT k dispozici pouze v aplikacích Microsoft 365 a Excel 2021. Aplikace Excel 2019, Excel 2016 nepodporují dynamické vzorce pole, takže funkce SORT není v těchto verzích k dispozici.
- Pokud je pole vrácené vzorcem SORT konečným výsledkem (tj. není předáno jiné funkci), Excel dynamicky vytvoří vhodně velký rozsah a naplní jej seřazenými hodnotami. Dbejte tedy na to, abyste vždy měli dostatek prázdných buněk dole a/nebo vpravo od buňky, do které zadáváte vzorec, jinak dojde k chybě #SPILL.
- Výsledky se dynamicky aktualizují podle toho, jak se mění zdrojová data. pole automaticky nerozšiřuje na nové položky, které jsou přidány mimo odkazovaný vzorec. pole Chcete-li tyto položky zahrnout, musíte buď aktualizovat pole odkaz ve vzorci, nebo převést zdrojový rozsah na tabulku, jak je uvedeno v tomto příkladu, nebo vytvořit dynamický pojmenovaný rozsah.
Základní vzorec Excel SORT
Tento příklad ukazuje základní vzorec pro seřazení dat v aplikaci Excel vzestupně a sestupně.
Předpokládejme, že vaše data jsou uspořádána podle abecedy, jak je znázorněno na obrázku níže. Hledáte možnost seřadit čísla ve sloupci B, aniž byste data rozbili nebo promíchali.
Vzorec pro seřazení vzestupně
Chcete-li seřadit hodnoty ve sloupci B od nejmenší po největší, použijte tento vzorec:
=SORT(A2:B8, 2, 1)
Kde:
- A2:B8 je zdrojové pole
- 2 je číslo sloupce, podle kterého se má řadit
- 1 je vzestupné řazení
Vzhledem k tomu, že naše data jsou uspořádána v řádcích, lze poslední argument vynechat a nastavit výchozí hodnotu FALSE - třídění podle řádků.
Stačí zadat vzorec do libovolné prázdné buňky (v našem případě D2), stisknout Enter , a výsledky se automaticky přelijí do D2:E8.
Vzorec pro seřazení sestupně
Chcete-li data seřadit sestupně, tj. od největšího po nejmenší, nastavte parametr sort_order argument na -1 takto:
=SORT(A2:B8, 2, -1)
Zadejte vzorec do levé horní buňky cílového rozsahu a získáte tento výsledek:
Podobným způsobem můžete seřadit textové hodnoty v abecedním pořadí od A do Z nebo od Z do A.
Jak třídit data v aplikaci Excel pomocí vzorce
Následující příklady ukazují několik typických použití funkce SORT v aplikaci Excel a několik netriviálních.
Seřadit v aplikaci Excel podle sloupce
Při řazení dat v aplikaci Excel většinou měníte pořadí řádků. Pokud jsou však data uspořádána horizontálně s řádky obsahujícími štítky a sloupci obsahujícími záznamy, možná budete potřebovat řadit zleva doprava, nikoli shora dolů.
Chcete-li v aplikaci Excel řadit podle sloupců, nastavte by_col na hodnotu TRUE. V tomto případě, sort_index bude představovat řádek, nikoli sloupec.
Chcete-li například seřadit níže uvedená data podle množství od nejvyššího po nejnižší, použijte tento vzorec:
=SORT(B1:H2, 2, 1, TRUE)
Kde:
- B1:H2 jsou zdrojová data, která se mají třídit
- 2 je index třídění, protože třídíme čísla ve druhém řádku.
- -1 označuje sestupné řazení
- TRUE znamená třídění sloupců, nikoli řádků.
Řazení podle více sloupců v různém pořadí (víceúrovňové řazení)
Při práci se složitými datovými modely můžete často potřebovat víceúrovňové řazení. Lze to provést pomocí vzorce? Ano, snadno! Stačí zadat konstanty pole pro vzorec sort_index a sort_order argumenty.
Chcete-li například seřadit níže uvedená data nejprve podle Region (sloupec A) od A do Z a pak pomocí Množství . (sloupec C) od nejmenšího po největší, nastavte následující argumenty:
- Pole jsou údaje v A2:C13.
- Sort_index je konstanta pole {1,3}, protože nejprve seřadíme podle Region (1. sloupec), a pak Množství . (3. sloupec).
- Sort_order je konstanta pole {1,-1}, protože 1. sloupec má být seřazen vzestupně a 3. sloupec sestupně.
- By_col je vynechán, protože řadíme řádky, což je výchozí nastavení.
Po spojení argumentů získáme tento vzorec:
=SORT(A2:C13, {1,3}, {1,-1})
A funguje to perfektně! Textové hodnoty v prvním sloupci jsou seřazeny podle abecedy a čísla ve třetím sloupci od největšího po nejmenší:
Třídění a filtrování v aplikaci Excel
V případě, že chcete filtrovat data podle nějakých kritérií a seřadit výstup, použijte společně funkce SORT a FILTER:
SORT(FILTER(pole, criteria_range = kritéria ), [sort_index], [sort_order], [by_col])Funkce FILTER získá pole hodnot podle zadaných kritérií a předá je prvnímu argumentu funkce SORT.
Nejlepší na tomto vzorci je, že výsledky vypisuje také jako dynamický rozsah rozlití, aniž byste museli stisknout klávesy Ctrl + Shift + Enter nebo odhadovat, do kolika buněk jej zkopírovat. Jako obvykle napíšete vzorec do nejhořejší buňky a stisknete klávesu Enter.
Jako příklad vybereme ze zdrojových dat v A2:B9 položky s množstvím rovným nebo větším než 30 (>=30) a výsledky seřadíme vzestupně.
Za tímto účelem nejprve nastavíme podmínku, například v buňce E2, jak je znázorněno na obrázku níže. A poté sestavíme náš vzorec Excel SORT tímto způsobem:
=SORT(FILTER(A2:B9, B2:B9>=E2), 2)
Kromě pole vygenerované funkcí FILTER, zadáváme pouze hodnotu sort_index Zbylé dva argumenty jsou vynechány, protože výchozí hodnoty fungují přesně tak, jak potřebujeme (řazení vzestupně, podle řádků).
Získejte N největších nebo nejmenších hodnot a seřaďte výsledky
Při analýze obrovských objemů informací je často potřeba extrahovat určitý počet nejvyšších hodnot. Možná je nejen extrahovat, ale také uspořádat v požadovaném pořadí. A v ideálním případě vybrat, které sloupce zahrnout do výsledků. Zní to složitě? Ne s novými funkcemi dynamického pole!
Zde je obecný vzorec:
INDEX(SORT(...), SEQUENCE( n ), { column1_to_return , column2_to_return , ...})Kde: n je číslo hodnot, které chcete vrátit.
Předpokládejme, že z níže uvedeného souboru dat chcete získat seznam tří nejlepších na základě čísel ve sloupci C.
Chcete-li to provést, nejprve seřaďte pole A2:C13 podle 3. sloupce sestupně:
SORT(A2:C13, 3, -1)
A pak vnořte výše uvedený vzorec do prvního ( pole ) funkce INDEX, aby bylo pole seřazeno od největšího po nejmenší.
U druhého ( row_num ), který udává, kolik řádků se má vrátit, vygenerujeme požadovaná pořadová čísla pomocí funkce SEQUENCE. Protože potřebujeme 3 horní hodnoty, použijeme SEQUENCE(3), což je stejné, jako bychom přímo ve vzorci zadali konstantu svislého pole {1;2;3}.
U třetího ( col_num ), který určuje, kolik sloupců se má vrátit, zadejte čísla sloupců ve formě vodorovné konstanty pole. Chceme vrátit sloupce B a C, proto použijeme pole {2,3}.
Nakonec dostaneme následující vzorec:
=INDEX(SORT(A2:C13, 3, -1), SEQUENCE(3), {2,3})
A přináší přesně ty výsledky, které chceme:
Vrátit se 3 dno jednoduše seřaďte původní data od nejmenší po největší. Za tímto účelem změňte hodnotu sort_order od -1 do 1:
=INDEX(SORT(A2:C13, 3, 1), SEQUENCE(3), {2,3})
Vrátit seřazenou hodnotu na určité pozici
Když se na to podíváme z jiného úhlu, co když chcete vrátit pouze určitou pozici řazení? Řekněme pouze 1. , pouze 2. nebo pouze 3. záznam ze setříděného seznamu? Chcete-li to mít hotové, použijte zjednodušenou verzi výše uvedeného vzorce INDEX SORT:
INDEX(SORT(...), n , { column1_to_return , column2_to_return , ...})Kde: n je zájmová poloha.
Chcete-li například získat určitou pozici shora (tj. z dat seřazených sestupně), použijte tento vzorec:
=INDEX(SORT(A2:C13, 3, -1), F1, {2,3})
Chcete-li získat konkrétní pozici odspodu (tj. z dat seřazených vzestupně), použijte tento příkaz:
=INDEX(SORT(A2:C13, 3, 1), I1, {2,3})
Kde A2:C13 jsou zdrojová data, F1 je pozice shora, I1 je pozice zdola a {2,3} jsou sloupce, které se mají vrátit.
Použití tabulky aplikace Excel k automatickému rozbalení třídicího pole
Jak již víte, setříděné pole se automaticky aktualizuje, když provedete jakoukoli změnu v původních datech. To je standardní chování všech funkcí dynamického pole, včetně funkce SORT. Když však přidáte nové položky mimo odkazované pole, nejsou automaticky zahrnuty do vzorce. Pokud chcete, aby váš vzorec na takové změny reagoval, převeďte zdrojový rozsah na plně-funkční tabulku Excelu a ve vzorci použijte strukturované odkazy.
Chcete-li vidět, jak to funguje v praxi, podívejte se na následující příklad.
Předpokládejme, že pomocí níže uvedeného vzorce Excel SORT seřadíte hodnoty v rozsahu A2:B8 v abecedním pořadí:
=SORT(A2:B8, 1, 1)
Pak zadáte nový záznam do řádku 9... a jste zklamáni, že nově přidaný záznam je mimo rozsah rozsypu:
Nyní převeďte zdrojový rozsah na tabulku. K tomu stačí vybrat rozsah včetně záhlaví sloupců (A1:B8) a stisknout klávesy Ctrl + T . Při sestavování vzorce vyberte zdrojový rozsah pomocí myši a název tabulky se do vzorce vloží automaticky (říká se tomu strukturovaný odkaz):
=SORT(Tabulka1, 1, 1)
Když zadáte nový údaj přímo pod poslední řádek, tabulka se automaticky rozšíří a nová data budou zahrnuta do rozpisu vzorce SORT:
Nefunguje funkce Excel SORT
Pokud váš vzorec SORT vede k chybě, je to pravděpodobně z následujících důvodů.
#NAME chyba: starší verze aplikace Excel
Funkce SORT je nová a funguje pouze v aplikacích Excel 365 a Excel 2021. Ve starších verzích, kde tato funkce není podporována, dochází k chybě #NAME?.
#SPILL chyba: něco blokuje rozsah rozlití
Pokud jedna nebo více buněk v rozsahu rozlití není zcela prázdná nebo sloučená, zobrazí se chyba #SPILL! Chcete-li ji opravit, stačí odstranit blokování. Další informace naleznete v části Chyba aplikace Excel #SPILL! - co znamená a jak ji opravit.
#VALUE chyba: neplatné argumenty
Kdykoli narazíte na chybu #VALUE!, zkontrolujte, zda je sort_index a sort_order argumenty. Sort_index by neměl překročit počet sloupců je pole a sort_order by měla být buď 1 (vzestupně), nebo -1 (sestupně).
#REF chyba: zdrojový sešit je uzavřen
Protože dynamická pole mají omezenou podporu odkazů mezi sešity, vyžaduje funkce SORT otevření obou souborů. Pokud je zdrojový sešit zavřený, vzorec vyhodí chybu #REF!. Chcete-li to napravit, stačí otevřít odkazovaný soubor.
To je návod na třídění dat v Excelu pomocí vzorce. Děkuji vám za přečtení a doufám, že se příští týden uvidíme na našem blogu!
Cvičebnice ke stažení
Třídění v aplikaci Excel pomocí vzorců (.xlsx soubor)