S tímto tématem se setkáte na našich kurzech ExcelTown.
Aktuálně: kurzy můžete absolvovat jak online, tak prezenčně.

Tento příklad je o tom, jak pomocí funkcí LARGE a SMALL dynamicky řadit tabulku. Tedy řadit tak, aby se neuspořádaná data v jedné tabulce rovnou řadila do tabulky druhé a změny hodnot v první tabulce se rovnou promítaly do řazení.

V příkladu vyjdeme z těchto dat, kde jsou počty dosažených bodů a jména studentů. 

původní data řazení

Naším úkolem bude seřadit tyto studenty od toho, který má největší počet bodů, po toho nejméně úspěšného. Takto má vypadat výsledek:

hotová tabulka řazení

Návod

Připravím si někde sloupeček, kde budou čísla od jedničky do tolika, kolik je studentů. Pak do vedlejších sloupečku zapíšu funkci LARGE (řazení od největšího), resp. SMALL (řazení od nejmenšího) v kombinaci s funkcí SVYHLEDAT.
Tato funkce bude mít v prvním parametru oblast, kde jsou původní neseřazená čísla, a ve druhém číslo z vedlejšího sloupce. Toto číslo vyjadřuje, kolikáté největší (nejmenší) číslo se právě na této pozici má zobrazit.
Funkce je zapsána takto:

  • =SVYHLEDAT(LARGE(A:A;D:D);A:B;2;0)

Protože:

  • LARGE najde ve sloupci A hodnotu, která je první, druhá, třetí… nejvyšší – podle toho, jaká číslo je v D.
  • SVYHLEDAT pak tomuto číslu přiřadí jméno.

řazení zápis funkce

S tímto tématem se setkáte na našich kurzech ExcelTown.
Aktuálně: kurzy můžete absolvovat jak online, tak prezenčně.

  1. Dobrý den,
    jak se řeší situace v případě, že dva studenti dosáhnou stejného počtu bodů? Pokud bude mít Adam a Dana stejný počet bodů tak v tabulce pořadí bude dvakrát jméno Adam a Dana tam nebude vůbec. Děkuji.

  2. Zná, prosím, někdo odpověď na výše uvedený kmentář? Děkuji

  3. Pokusil jsem se pořešit pomocí fcí RANK a INDEX.
    Sloupec C: Num;1;2; … ;6
    D: Index;=E2*1000+C2; …
    E: Poř.netř.;=RANK(A2;A:A); …
    G: Pořadí;=RANK(I2;I:I); …
    H: Student;=INDEX($B$2:$B$7;SMALL(D:D;C2)-(G2*1000)); …
    I: Body;=LARGE(A:A;C2); …
    Vzorce z řádku 2 rozkopírovat do dalších řádků, Pomocné sloupce C, D a E případně skrýt. Nejspíše to půjde ještě zjednodušit.

  4. Tohle nefunguje, bohužel… při použití příkazu Svyhledat musí být vyhledávaná data bohužel vzestupně seřazena..

  5. Upřesním – svyhledat vyžaduje řazení druhé tabulky jen v případě, že máte jako poslední argument PRAVDA (1, nevyplněno). Pokud zadáte jako poslední argument NEPRAVDA (0), pak toto pravidlo naštěstí naplatí. Nápověda funkce je v tomto trochu zavádějící.

  6. Dobry den,
    Resil nekdo vzorec , tak aby se vysledna data zobrazovala v jednom radku (cislo 1), (sloupec C,D,E atd)

  7. To bude úplně analogické, jen místo sloupce D se to bude brát z nějakého řádku…

Napsat komentář

Vaše emailová adresa nebude publikována.

*

smazat formulářOdeslat komentář