Dynamický pojmenovaný rozsah aplikace Excel: jak vytvořit a používat

  • Sdílet Toto
Michael Brown

V tomto kurzu se dozvíte, jak v aplikaci Excel vytvořit dynamický pojmenovaný rozsah a jak jej použít ve vzorcích, aby se nová data automaticky zahrnovala do výpočtů.

V minulém díle jsme se zabývali různými způsoby definování statického pojmenovaného rozsahu v aplikaci Excel. Statický název se vždy vztahuje ke stejným buňkám, což znamená, že byste museli odkaz na rozsah aktualizovat ručně, kdykoli přidáte nová nebo odstraníte stávající data.

Pokud pracujete s průběžně se měnícím souborem dat, možná budete chtít, aby byl pojmenovaný rozsah dynamický, aby se automaticky rozšiřoval o nově přidané položky nebo zmenšoval, aby se vyloučila odstraněná data. Dále v tomto návodu najdete podrobný návod krok za krokem, jak to provést.

    Jak vytvořit dynamický pojmenovaný rozsah v aplikaci Excel

    Pro začátek vytvořme dynamický pojmenovaný rozsah sestávající z jednoho sloupce a proměnného počtu řádků. Chcete-li jej mít hotový, proveďte následující kroky:

    1. Na Vzorec na kartě Definované názvy klikněte na tlačítko Definovat název Nebo stisknutím klávesové zkratky Ctrl + F3 otevřete nástroj Excel Name Manger a klikněte na položku Nový... tlačítko.
    2. Ať tak či onak, Nový název Otevře se dialogové okno, ve kterém zadáte následující údaje:
      • V Název zadejte název dynamického rozsahu.
      • V Oblast působnosti v rozbalovacím seznamu nastavte rozsah názvu. Pracovní sešit (výchozí) se ve většině případů doporučuje.
      • V Vztahuje se na zadejte vzorec OFFSET COUNTA nebo INDEX COUNTA.
    3. Klikněte na tlačítko OK. Hotovo!

    Na následujícím obrázku definujeme dynamický rozsah s názvem položky který vyhovuje všem buňky s daty ve sloupci A, kromě řádku záhlaví:

    Vzorec OFFSET pro definici dynamického pojmenovaného rozsahu aplikace Excel

    Obecný vzorec pro vytvoření dynamického pojmenovaného rozsahu v aplikaci Excel je následující:

    OFFSET( first_cell , 0, 0, COUNTA( sloupec ), 1)

    Kde:

    • first_cell - první položka, která má být zahrnuta do pojmenovaného rozsahu, například $A$2.
    • sloupec - absolutní odkaz na sloupec jako $A:$A.

    Jádrem tohoto vzorce je funkce COUNTA, pomocí které získáte počet neprázdných buněk ve sloupci, který vás zajímá. Toto číslo se přenese přímo do funkce výška argument funkce OFFSET(reference, rows, cols, [height], [width]), který udává, kolik řádků má vrátit.

    Kromě toho je to obyčejný vzorec Offset, kde:

    • odkaz je výchozí bod, od kterého se odvíjí posun (first_cell).
    • řádky a cols jsou obě 0, protože neexistují žádné sloupce ani řádky, které by bylo třeba posunout.
    • šířka se rovná 1 sloupci.

    Například pro vytvoření dynamického pojmenovaného rozsahu pro sloupec A na listu 3, který začíná v buňce A2, použijeme tento vzorec:

    =OFFSET(Sheet3!$A$2, 0, 0, COUNTA(Sheet3!$A:$A), 1)

    Poznámka: Pokud definujete dynamický rozsah v aktuálním pracovním listu, nemusíte do odkazů uvádět název listu, Excel to udělá automaticky za vás. Pokud vytváříte rozsah pro nějaký jiný list, předepište odkaz na buňku nebo rozsah názvem listu následovaným vykřičníkem (jako v příkladu vzorce výše).

    Vzorec INDEX pro vytvoření dynamického pojmenovaného rozsahu v aplikaci Excel

    Dalším způsobem, jak vytvořit dynamický rozsah aplikace Excel, je použití funkce COUNTA v kombinaci s funkcí INDEX.

    first_cell :INDEX( sloupec ,COUNTA( sloupec ))

    Tento vzorec se skládá ze dvou částí:

    • Na levou stranu operátoru rozsahu (:) vložíte pevně zadaný počáteční odkaz, například $A$2.
    • Na pravé straně se pro zjištění koncového odkazu použije funkce INDEX(pole, číslo_řádku, [číslo_sloupce]). Zde se zadá celý sloupec A pro pole a pomocí COUNTA se zjistí číslo řádku (tj. počet nezadaných buněk ve sloupci A).

    Pro náš vzorový soubor dat (viz obrázek výše) je vzorec následující:

    =$A$2:INDEX($A:$A, COUNTA($A:$A))

    Protože ve sloupci A je 5 neprázdných buněk včetně záhlaví sloupce, COUNTA vrátí 5. INDEX tedy vrátí $A$5, což je poslední použitá buňka ve sloupci A (obvykle vzorec Index vrací hodnotu, ale operátor reference jej nutí vrátit odkaz). A protože jsme jako výchozí bod nastavili $A$2, konečným výsledkem vzorce je rozsah $A$2:$A$5.

    Chcete-li otestovat nově vytvořený dynamický rozsah, můžete nechat COUNTA načíst počet položek:

    =COUNTA(Položky)

    Pokud je vše provedeno správně, výsledek vzorce se změní, jakmile do seznamu přidáte nebo z něj odeberete položky:

    Poznámka: Oba výše uvedené vzorce dávají stejný výsledek, nicméně existuje rozdíl ve výkonu, který byste si měli uvědomit. OFFSET je nestálá funkce, která se přepočítává při každé změně v listu. Na výkonných moderních strojích a přiměřeně velkých souborech dat by to neměl být problém. Na málo výkonných strojích a velkých souborech dat to může zpomalit Excel. V takovém případě byste mělilépe použít vzorec INDEX k vytvoření dynamického pojmenovaného rozsahu.

    Jak vytvořit dvourozměrný dynamický rozsah v aplikaci Excel

    Chcete-li vytvořit dvourozměrný pojmenovaný rozsah, kde je dynamický nejen počet řádků, ale i počet sloupců, použijte následující modifikaci vzorce INDEX COUNTA:

    first_cell :INDEX($1:$1048576, COUNTA( first_column ), COUNTA( first_row )))

    V tomto vzorci máte dvě funkce COUNTA pro získání posledního neprázdného řádku a posledního neprázdného sloupce ( row_num a column_num argumentů funkce INDEX). pole argumentu se vloží celý pracovní list (1048576 řádků v Excelu 2016 - 2007; 65535 řádků v Excelu 2003 a nižších).

    A nyní definujme ještě jeden dynamický rozsah pro naši datovou sadu: rozsah s názvem prodej která obsahuje údaje o prodeji za 3 měsíce (leden až březen) a automaticky se upravuje, když do tabulky přidáte nové položky (řádky) nebo měsíce (sloupce).

    S údaji o prodeji začínajícími ve sloupci B, řádek 2, má vzorec následující tvar:

    =$B$2:INDEX($1:$1048576,COUNTA($B:$B),COUNTA($2:$2))

    Chcete-li se ujistit, že dynamický rozsah funguje, jak má, zadejte někde na listu následující vzorce:

    =SUMA(tržby)

    =SUMA(B2:D5)

    Jak vidíte na následujícím obrázku, oba vzorce vracejí stejný součet. Rozdíl se projeví v okamžiku, kdy do tabulky přidáte nové položky: první vzorec (s dynamickým pojmenovaným rozsahem) se aktualizuje automaticky, zatímco druhý vzorec se musí při každé změně aktualizovat ručně. To je obrovský rozdíl, že?

    Jak používat dynamické pojmenované rozsahy ve vzorcích aplikace Excel

    V předchozích částech tohoto kurzu jste již viděli několik jednoduchých vzorců, které využívají dynamické rozsahy. Nyní se pokusíme vymyslet něco smysluplnějšího, co by ukázalo skutečnou hodnotu dynamického pojmenovaného rozsahu aplikace Excel.

    Pro tento příklad použijeme klasický vzorec INDEX MATCH, který v aplikaci Excel provádí funkci Vlookup:

    INDEX ( return_range , MATCH ( lookup_value , lookup_range , 0))

    ...a podívejte se, jak můžeme vzorec ještě vylepšit pomocí dynamických pojmenovaných rozsahů.

    Jak je vidět na obrázku výše, snažíme se vytvořit řídicí panel, kde uživatel zadá název položky do H1 a v H2 získá celkové tržby za tuto položku. Naše ukázková tabulka vytvořená pro demonstrační účely obsahuje pouze 4 položky, ale ve vašich reálných tabulkách mohou být stovky a dokonce tisíce řádků. Kromě toho mohou být nové položky přidávány denně, takže použití odkazů nenímožnost, protože byste museli vzorec aktualizovat znovu a znovu. Na to jsem příliš líný! :)

    Aby se vzorec automaticky rozbalil, definujeme 3 názvy: 2 dynamické rozsahy a 1 statickou pojmenovanou buňku:

    Lookup_range: =$A$2:INDEX($A:$A, COUNTA($A:$A))

    Return_range: =$E$2:INDEX($E:$E, COUNTA($E:$E))

    Lookup_value: =$H$1

    Poznámka: Excel ke všem odkazům přidá název aktuálního listu, takže před vytvořením názvů nezapomeňte otevřít list se zdrojovými daty.

    Nyní začněte psát vzorec v H1. Když dojde na první argument, zadejte několik znaků názvu, který chcete použít, a Excel zobrazí všechny dostupné odpovídající názvy. Dvakrát klikněte na příslušný název a Excel jej ihned vloží do vzorce:

    Doplněný vzorec vypadá následovně:

    =INDEX(Return_range, MATCH(Lookup_value, Lookup_range, 0))

    A funguje perfektně!

    Jakmile do tabulky přidáte nové záznamy, budou ihned zahrnuty do výpočtů, aniž byste museli provést jedinou změnu ve vzorci! A pokud budete někdy potřebovat přenést vzorec do jiného souboru aplikace Excel, stačí v cílovém sešitu vytvořit stejná jména, zkopírovat/vložit vzorec a ihned jej zprovoznit.

    Tip: Kromě trvanlivějších vzorců se dynamické rozsahy hodí při vytváření dynamických rozevíracích seznamů.

    Tímto způsobem vytvoříte a použijete dynamické pojmenované rozsahy v aplikaci Excel. Chcete-li se blíže seznámit se vzorci popsanými v tomto návodu, můžete si stáhnout náš ukázkový sešit Dynamické pojmenované rozsahy aplikace Excel. Děkuji vám za přečtení a doufám, že se příští týden uvidíme na našem blogu!

    Michael Brown je oddaný technologický nadšenec s vášní pro zjednodušování složitých procesů pomocí softwarových nástrojů. S více než desetiletými zkušenostmi v technologickém průmyslu zdokonalil své dovednosti v aplikacích Microsoft Excel a Outlook a také v Tabulkách a Dokumentech Google. Michaelův blog je věnován sdílení jeho znalostí a odborných znalostí s ostatními a poskytuje snadno pochopitelné tipy a návody pro zlepšení produktivity a efektivity. Ať už jste zkušený profesionál nebo začátečník, Michaelův blog nabízí cenné postřehy a praktické rady, jak tyto základní softwarové nástroje co nejlépe využít.