Obsah
V tomto tutoriálu najdete řadu příkladů vzorců, které demonstrují nejefektivnější použití INDEXu v aplikaci Excel.
Ze všech funkcí Excelu, jejichž síla je často podceňována a nevyužívána, by INDEX rozhodně patřil někam do první desítky. Přitom je to funkce chytrá, pružná a všestranná.
Co je tedy funkce INDEX v aplikaci Excel? Vzorec INDEX v podstatě vrací odkaz na buňku v rámci daného pole nebo rozsahu. Jinými slovy, funkci INDEX použijete, pokud znáte (nebo můžete vypočítat) pozici prvku v rozsahu a chcete získat skutečnou hodnotu tohoto prvku.
Může to znít trochu triviálně, ale jakmile si uvědomíte skutečný potenciál funkce INDEX, může to zásadně změnit způsob, jakým počítáte, analyzujete a prezentujete data ve svých pracovních listech.
Funkce INDEX aplikace Excel - syntaxe a základní použití
V aplikaci Excel existují dvě verze funkce INDEX - forma pole a referenční forma. Obě formy lze používat ve všech verzích aplikace Microsoft Excel 365 - 2003.
Formulář pole INDEX
Formulář INDEX pole vrací hodnotu určitého prvku v rozsahu nebo poli na základě zadaných čísel řádků a sloupců.
INDEX(pole, číslo_řádku, [číslo_sloupce])- pole - je rozsah buněk, pojmenovaný rozsah nebo tabulka.
- row_num - je číslo řádku v poli, ze kterého se má vrátit hodnota. Pokud je vynecháno číslo_řádku, je vyžadováno číslo_sloupce.
- column_num - je číslo sloupce, ze kterého se má vrátit hodnota. Pokud je vynecháno číslo sloupce, je vyžadováno číslo řádku.
Například vzorec =INDEX(A1:D6, 4, 3)
vrátí hodnotu v průsečíku 4. řádku a 3. sloupce v rozsahu A1:D6, což je hodnota v buňce C4.
Chcete-li si udělat představu o tom, jak vzorec INDEX funguje na skutečných datech, podívejte se na následující příklad:
Místo zadávání čísel řádků a sloupců do vzorce můžete zadat odkazy na buňky a získat tak univerzálnější vzorec: =INDEX($B$2:$D$6, G2, G1)
Tento vzorec INDEX tedy vrací počet položek přesně v průsečíku čísla výrobku zadaného v buňce G2 (číslo_řádku) a čísla týdne zadaného v buňce G1 (číslo_sloupce).
Tip: Použití absolutních odkazů ($B$2:$D$6) namísto relativních odkazů (B2:D6) v argumentu pole usnadňuje kopírování vzorce do dalších buněk. Případně můžete rozsah převést na tabulku ( Ctrl + T ) a odkazovat na něj názvem tabulky.
Formulář pole INDEX - na co nezapomenout
- Pokud se argument pole skládá pouze z jednoho řádku nebo sloupce, můžete, ale nemusíte zadat odpovídající argument row_num nebo column_num.
- Pokud argument pole obsahuje více než jeden řádek a argument číslo_řádku je vynechán nebo nastaven na hodnotu 0, funkce INDEX vrátí pole celého sloupce. Podobně pokud pole obsahuje více než jeden sloupec a argument číslo_sloupce je vynechán nebo nastaven na hodnotu 0, vzorec INDEX vrátí celý řádek. Zde je příklad vzorce, který demonstruje toto chování.
- Argumenty číslo_řádku a číslo_sloupce musí odkazovat na buňku v poli, jinak vzorec INDEX vrátí chybu #REF!.
Referenční formulář INDEX
Referenční forma funkce INDEX aplikace Excel vrací odkaz na buňku v průsečíku zadaného řádku a sloupce.
INDEX(reference, číslo_řádku, [číslo_sloupce], [číslo_oblasti] )- odkaz - je jeden nebo několik rozsahů.
Pokud zadáváte více rozsahů, oddělte je čárkami a referenční argument uzavřete do závorek, například (A1:B5, D1:F5).
Pokud každý rozsah v referenci obsahuje pouze jeden řádek nebo sloupec, je příslušný argument row_num nebo column_num nepovinný.
- row_num - číslo řádku v rozsahu, z něhož se má vrátit odkaz na buňku, je to podobné jako u formuláře pole.
- column_num - číslo sloupce, ze kterého se má vrátit odkaz na buňku, funguje také podobně jako formulář pole.
- area_num - nepovinný parametr, který určuje, který rozsah z referenčního argumentu se má použít. Pokud je vynechán, vzorec INDEX vrátí výsledek pro první rozsah uvedený v referenci.
Například vzorec =INDEX((A2:D3, A5:D7), 3, 4, 2)
vrátí hodnotu buňky D7, která se nachází v průsečíku 3. řádku a 4. sloupce druhé oblasti (A5:D7).
Referenční formulář INDEX - na co nezapomenout
- Pokud je argument číslo_řádku nebo číslo_sloupce nastaven na nulu (0), vzorec INDEX vrátí odkaz na celý sloupec, resp. řádek.
- Pokud je vynecháno číslo_řádku i číslo_sloupce, funkce INDEX vrátí oblast zadanou v argumentu area_num.
- Všechny argumenty _num (číslo_řádku, číslo_sloupce a číslo_oblasti) musí odkazovat na buňku v rámci reference, jinak vzorec INDEX vrátí chybu #REF!.
Oba vzorce INDEXu, které jsme dosud probrali, jsou velmi jednoduché a pouze ilustrují tento koncept. Vaše skutečné vzorce budou pravděpodobně mnohem složitější, proto se pojďme podívat na několik nejefektivnějších použití INDEXu v aplikaci Excel.
Jak používat funkci INDEX v aplikaci Excel - příklady vzorců
Samotný INDEX v Excelu asi nemá mnoho praktických využití, ale v kombinaci s dalšími funkcemi, jako je MATCH nebo COUNTA, může vytvořit velmi výkonné vzorce.
Zdrojová data
Ve všech našich vzorcích INDEX (kromě posledního) budeme používat níže uvedená data. Pro větší pohodlí jsou uspořádána v tabulce s názvem SourceData .
Použití tabulek nebo pojmenovaných rozsahů může vzorce trochu prodloužit, ale také je činí podstatně flexibilnějšími a lépe čitelnými. K úpravě jakéhokoli vzorce INDEX pro pracovní listy stačí upravit jediný název, což plně vynahradí delší délku vzorce.
Samozřejmě vám nic nebrání použít obvyklé rozsahy, pokud chcete. V tomto případě jednoduše nahradíte název tabulky SourceData s příslušným referenčním rozsahem.
1. Získání N-té položky ze seznamu
Toto je základní použití funkce INDEX a nejjednodušší vzorec. Chcete-li získat určitou položku ze seznamu, stačí napsat. =INDEX(rozsah, n)
kde rozsah je rozsah buněk nebo pojmenovaný rozsah a n je pozice položky, kterou chcete získat.
Při práci s tabulkami aplikace Excel můžete vybrat sloupec pomocí myši a aplikace Excel vytáhne název sloupce spolu s názvem tabulky do vzorce:
Chcete-li získat hodnotu buňky v průsečíku daného řádku a sloupce, použijete stejný postup s tím rozdílem, že zadáte obojí - číslo řádku i číslo sloupce. Takový vzorec jste již vlastně viděli v akci, když jsme probírali formulář INDEX pole.
A zde je ještě jeden příklad. V naší ukázkové tabulce, chcete-li najít druhou největší planetu ve Sluneční soustavě, seřadíte tabulku podle hodnoty Průměr a použijte následující vzorec INDEX:
=INDEX(SourceData, 2, 3)
Pole
je název tabulky nebo odkaz na rozsah, SourceData v tomto příkladu.Row_num
je 2, protože hledáte druhou položku v seznamu, která se nachází ve 2. seznamu.Column_num
je 3, protože Průměr je 3. sloupec tabulky.
Pokud chcete vrátit název planety místo jejího průměru, změňte hodnotu sloupce_num na 1. A samozřejmě můžete použít odkaz na buňku v argumentech řádek_num a/nebo sloupec_num, aby byl váš vzorec univerzálnější, jak ukazuje obrázek níže:
2. Získání všech hodnot v řádku nebo sloupci
Funkce INDEX dokáže kromě načtení jedné buňky vrátit pole hodnot ze souboru. celý řádek nebo sloupec . Chcete-li získat všechny hodnoty z určitého sloupce, musíte vynechat argument row_num nebo jej nastavit na 0. Stejně tak chcete-li získat celý řádek, předáte prázdnou hodnotu nebo 0 v column_num.
Takovéto vzorce INDEX lze jen stěží použít samostatně, protože Excel není schopen vměstnat pole hodnot vrácených vzorcem do jediné buňky a místo toho byste dostali chybu #VALUE!. Pokud však použijete INDEX ve spojení s jinými funkcemi, jako je SUMA nebo PRŮMĚR, dosáhnete úžasných výsledků.
K výpočtu průměrné teploty planety ve Sluneční soustavě můžete použít například následující vzorec:
=AVERAGE(INDEX(SourceData, , 4))
Ve výše uvedeném vzorci je argument column_num 4, protože Teplota ve 4. sloupci naší tabulky. Parametr row_num je vynechán.
Podobným způsobem můžete zjistit minimální a maximální teploty:
=MAX(INDEX(SourceData, , 4))
=MIN(INDEX(SourceData, , 4))
A vypočítejte celkovou hmotnost planety (hmotnost je 2. sloupec v tabulce):
=SUMA(INDEX(SourceData, , 2))
Z praktického hlediska je funkce INDEX ve výše uvedeném vzorci zbytečná. Stačí napsat. =AVERAGE(rozsah)
nebo =SUMA(rozsah)
a získáte stejné výsledky.
Při práci s reálnými daty se tato funkce může ukázat jako užitečná v rámci složitějších vzorců, které používáte pro analýzu dat.
3. Použití INDEXu s dalšími funkcemi (SUMA, PRŮMĚR, MAX, MIN)
Z předchozích příkladů jste mohli nabýt dojmu, že vzorec INDEX vrací hodnoty, ale ve skutečnosti vrací hodnotu. odkaz do buňky obsahující hodnotu. Tento příklad ukazuje skutečnou podstatu funkce INDEX aplikace Excel.
Protože výsledkem vzorce INDEX je odkaz, můžeme jej použít v rámci jiných funkcí, abychom vytvořili. dynamický rozsah . Zní to zmateně? Následující vzorec vše objasní.
Předpokládejme, že máte vzorec =PRŮMĚR(A1:A10)
který vrátí průměr hodnot v buňkách A1:A10. Místo přímého zápisu rozsahu do vzorce můžete nahradit buď A1, nebo A10, nebo obojí funkcí INDEX, například takto:
=PRŮMĚR(A1 : INDEX(A1:A20,10))
Oba výše uvedené vzorce poskytnou stejný výsledek, protože funkce INDEX také vrací odkaz na buňku A10 (číslo_řádku je nastaveno na 10, číslo_kolíku je vynecháno). Rozdíl je v tom, že rozsah je ve vzorci AVERAGE / INDEX dynamický, a jakmile změníte argument číslo_řádku ve funkci INDEX, změní se i rozsah zpracovávaný funkcí AVERAGE a vzorec vrátí jiný výsledek.
Zdá se, že cesta vzorce INDEX je příliš složitá, ale má praktické využití, jak ukazují následující příklady.
Příklad 1. Vypočítejte průměr nejvyšších N položek v seznamu
Řekněme, že chcete znát průměrný průměr N největších planet v naší soustavě. Průměr sloupce od největšího po nejmenší a použijte následující vzorec Průměr / Index:
=AVERAGE(C5 : INDEX(SourceData[Diameter], B1))
Příklad 2. Součet položek mezi zadanými dvěma položkami
Pokud chcete ve vzorci definovat horní a dolní hranici, stačí použít dvě funkce INDEX, které vrátí první a poslední požadovanou položku.
Například následující vzorec vrací součet hodnot v poli Průměr mezi dvěma položkami zadanými v buňkách B1 a B2:
=SUMA(INDEX(SourceData[Průměr],B1) : INDEX(SourceData[Průměr], B2))
4. Vzorec INDEX pro vytváření dynamických rozsahů a rozevíracích seznamů
Jak už to tak bývá, když začínáte organizovat data v pracovním listu, možná nevíte, kolik položek nakonec budete mít. To není případ naší tabulky planet, která se zdá být kompletní, ale kdo ví...
Pokud se v daném sloupci mění počet položek, například od A1 do A. n , můžete chtít vytvořit dynamický pojmenovaný rozsah, který bude zahrnovat všechny buňky s daty. Přitom chcete, aby se tento rozsah automaticky upravoval, jakmile přidáte nové položky nebo odstraníte některé ze stávajících. Například pokud máte v současné době 10 položek, váš pojmenovaný rozsah je A1:A10. Pokud přidáte novou položku, pojmenovaný rozsah se automaticky rozšíří na A1:A11, a pokud si to rozmyslíte a nově přidaná data odstraníte,rozsah se automaticky vrátí na A1:A10.
Hlavní výhodou tohoto přístupu je, že nemusíte neustále aktualizovat všechny vzorce v sešitě, abyste zajistili, že se vztahují ke správným rozsahům.
Jedním ze způsobů, jak definovat dynamický rozsah, je použití funkce OFFSET aplikace Excel:
=OFFSET(Sheet_Name!$A$1, 0, 0, COUNTA(Sheet_Name!$A:$A), 1)
Dalším možným řešením je použití INDEXU Excelu společně s COUNTA:
=Název_listu!$A$1:INDEX(Název_listu!$A:$A, COUNTA(Název_listu!$A:$A))
V obou vzorcích je A1 buňka obsahující první položku seznamu a dynamický rozsah vytvořený oběma vzorci bude stejný.
Rozdíl je v přístupech. Zatímco funkce OFFSET se posune od počátečního bodu o určitý počet řádků a/nebo sloupců, funkce INDEX najde buňku v průsečíku určitého řádku a sloupce. Funkce COUNTA, použitá v obou vzorcích, získá počet neprázdných buněk v zájmovém sloupci.
V tomto příkladu je ve sloupci A 9 neprázdných buněk, takže COUNTA vrátí 9. INDEX tedy vrátí $A$9, což je poslední použitá buňka ve sloupci A (obvykle INDEX vrací hodnotu, ale v tomto vzorci jej operátor odkazu (:) nutí vrátit odkaz). A protože $A$1 je náš výchozí bod, konečným výsledkem vzorce je rozsah $A$1:$A$9.
Následující obrázek ukazuje, jak lze pomocí takového vzorce Index vytvořit dynamický rozevírací seznam.
Tip: Nejjednodušší způsob, jak vytvořit dynamicky aktualizovaný rozevírací seznam, je vytvořit pojmenovaný seznam na základě tabulky. V tomto případě nebudete potřebovat žádné složité vzorce, protože tabulky aplikace Excel jsou dynamické rozsahy jako takové.
K vytvoření závislých rozevíracích seznamů můžete použít také funkci INDEX a následující návod vysvětluje postup: Vytvoření kaskádového rozevíracího seznamu v aplikaci Excel.
5. Výkonné vyhledávání pomocí INDEX / MATCH
Provádění vertikálních vyhledávání - zde funkce INDEX skutečně zazáří. Pokud jste někdy zkoušeli používat funkci VLOOKUP aplikace Excel, dobře víte o jejích četných omezeních, jako je nemožnost vytáhnout hodnoty ze sloupců nalevo od vyhledávacího sloupce nebo omezení počtu znaků pro vyhledávací hodnotu na 255.
Spojení INDEX / MATCH je v mnoha ohledech lepší než VLOOKUP:
- Žádné problémy s levými vlookupy.
- Velikost hodnoty vyhledávání není omezena.
- Není vyžadováno žádné třídění (VLOOKUP s přibližnou shodou vyžaduje seřazení sloupce vyhledávání vzestupně).
- Můžete libovolně vkládat a odebírat sloupce v tabulce, aniž byste museli aktualizovat každý související vzorec.
- A v neposlední řadě INDEX / MATCH nezpomaluje Excel tak jako několikanásobné Vlookupy.
INDEX / MATCH se používá následujícím způsobem:
=INDEX ( sloupec vrátit hodnotu z , (MATCH ( vyhledávací hodnota , sloupec, podle kterého se má vyhledávat , 0))Pokud například převrátíme naši zdrojovou tabulku tak, že Název planety se stane nejpravějším sloupcem, vzorec INDEX / MATCH stále bez problémů načte odpovídající hodnotu z levého sloupce.
Další tipy a příklad vzorce naleznete v tutoriálu Excel INDEX / MATCH.
6. Vzorec INDEX aplikace Excel pro získání 1 rozsahu ze seznamu rozsahů
Dalším chytrým a výkonným využitím funkce INDEX v aplikaci Excel je možnost získat jeden rozsah ze seznamu rozsahů.
Předpokládejme, že máte několik seznamů s různým počtem položek v každém z nich. Věřte mi nebo ne, ale můžete vypočítat průměr nebo součet hodnot v libovolném zvoleném rozsahu pomocí jediného vzorce.
Nejprve vytvoříte pojmenovaný rozsah pro každý seznam; nechť je to. PlanetsD a MoonsD v tomto příkladu:
Doufám, že výše uvedený obrázek vysvětluje důvody pro názvy rozsahů : ) BTW, the Měsíce tabulka není zdaleka kompletní, v naší sluneční soustavě je známo 176 přirozených měsíců, jen Jupiter jich má v současné době 63 a počítá se. Pro tento příklad jsem vybral náhodně 11, no... možná ne úplně náhodně - měsíců s nejkrásnějšími jmény : )
Omluvte prosím odbočku a vraťte se k našemu vzorci INDEX. Za předpokladu, že PlanetsD je váš rozsah 1 a MoonsD je rozsah 2 a buňka B1 je místo, kam jste vložili číslo rozsahu, můžete použít následující vzorec Index pro výpočet průměru hodnot ve vybraném pojmenovaném rozsahu:
=AVERAGE(INDEX((PlanetsD, MoonsD), , , B1))
Upozorňujeme, že nyní používáme referenční tvar funkce INDEX a číslo v posledním argumentu (area_num) říká vzorci, který rozsah má vybrat.
Na obrázku níže je area_num (buňka B1) nastaveno na hodnotu 2, takže vzorec vypočítá průměrný průměr buňky B1. Měsíce protože rozsah MoonsD je na 2. místě v referenčním argumentu.
Pokud pracujete s více seznamy a nechcete si pamatovat přiřazená čísla, můžete použít vnořenou funkci IF, která to udělá za vás:
=AVERAGE(INDEX((PlanetsD, MoonsD), , , IF(B1="planets", 1, IF(B1="moons", 2))))
Ve funkci IF použijete několik jednoduchých a snadno zapamatovatelných názvů seznamů, které mají uživatelé zadávat do buňky B1 místo čísel. Mějte na paměti, že pro správnou funkci vzorce by měl být text v buňce B1 přesně stejný (nerozlišuje se velikost písmen) jako v parametrech funkce IF, jinak váš vzorec Index vyhodí chybu #VALUE.
Aby byl vzorec ještě uživatelsky přívětivější, můžete pomocí funkce Ověření dat vytvořit rozevírací seznam s předdefinovanými názvy, abyste zabránili pravopisným chybám a překlepům:
Aby byl váš vzorec INDEX naprosto dokonalý, můžete jej uzavřít funkcí IFERROR, která uživatele vyzve k výběru položky z rozevíracího seznamu, pokud dosud nebyl proveden žádný výběr:
=IFERROR(AVERAGE(INDEX((PlanetsD, MoonsD), , , IF(B1="planeta", 1, IF(B1="měsíc", 2)))), "Vyberte prosím seznam!")
Takto se v Excelu používají vzorce INDEX. Doufám, že vám tyto příklady ukázaly způsob, jak využít potenciál funkce INDEX ve vašich pracovních listech. Děkuji za přečtení!