Dynamický pomenovaný rozsah programu Excel: ako vytvoriť a používať

  • Zdieľajte To
Michael Brown

V tomto návode sa dozviete, ako vytvoriť dynamický pomenovaný rozsah v programe Excel a ako ho použiť vo vzorcoch, aby sa nové údaje automaticky zahrnuli do výpočtov.

V minulotýždňovom návode sme sa zaoberali rôznymi spôsobmi definovania staticky pomenovaného rozsahu v programe Excel. Statický názov sa vždy vzťahuje na tie isté bunky, čo znamená, že by ste museli odkaz na rozsah aktualizovať ručne vždy, keď pridáte nové alebo odstránite existujúce údaje.

Ak pracujete s neustále sa meniacim súborom údajov, možno budete chcieť, aby bol váš pomenovaný rozsah dynamický, aby sa automaticky rozšíril o novo pridané položky alebo zmenšil, aby sa vylúčili odstránené údaje. Ďalej v tomto návode nájdete podrobný návod krok za krokom, ako to urobiť.

    Ako vytvoriť dynamický pomenovaný rozsah v programe Excel

    Na začiatok vytvorme dynamický pomenovaný rozsah pozostávajúci z jedného stĺpca a premenlivého počtu riadkov. Ak to chcete mať hotové, vykonajte tieto kroky:

    1. Na Vzorec na karte Definované názvy kliknite na položku Definovať názov Alebo stlačením klávesovej skratky Ctrl + F3 otvorte aplikáciu Excel Name Manger a kliknite na položku Nové... tlačidlo.
    2. Tak či onak, Nový názov Otvorí sa dialógové okno, v ktorom zadáte nasledujúce údaje:
      • V Názov zadajte názov dynamického rozsahu.
      • V Rozsah pôsobnosti v rozbaľovacom zozname nastavte rozsah názvu. Pracovný zošit (predvolené nastavenie) sa odporúča vo väčšine prípadov.
      • V Vzťahuje sa na zadajte vzorec OFFSET COUNTA alebo INDEX COUNTA.
    3. Kliknite na tlačidlo OK. Hotovo!

    Na nasledujúcom obrázku definujeme dynamický rozsah s názvom položky ktorý vyhovuje všetkým bunky s údajmi v stĺpci A okrem riadku záhlavia:

    Vzorec OFFSET na definovanie dynamického pomenovaného rozsahu programu Excel

    Všeobecný vzorec na vytvorenie dynamického pomenovaného rozsahu v programe Excel je nasledujúci:

    OFFSET( first_cell , 0, 0, COUNTA( stĺpec ), 1)

    Kde:

    • first_cell - prvá položka, ktorá sa má zahrnúť do pomenovaného rozsahu, napríklad $A$2.
    • stĺpec - absolútny odkaz na stĺpec ako $A:$A.

    Jadrom tohto vzorca je funkcia COUNTA, pomocou ktorej získate počet neprázdnych buniek v stĺpci, ktorý vás zaujíma. Toto číslo sa prenesie priamo do výška argument funkcie OFFSET(reference, rows, cols, [height], [width]), ktorý hovorí, koľko riadkov má vrátiť.

    Okrem toho je to obyčajný vzorec Offset, kde:

    • odkaz je východiskový bod, z ktorého sa vychádza pri posunutí (first_cell).
    • riadky a cols sú obe 0, pretože neexistujú žiadne stĺpce ani riadky, ktoré by bolo potrebné posunúť.
    • šírka sa rovná 1 stĺpcu.

    Napríklad na vytvorenie dynamického pomenovaného rozsahu pre stĺpec A v hárku 3, ktorý začína v bunke A2, použijeme tento vzorec:

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

    Poznámka: Ak definujete dynamický rozsah v aktuálnom pracovnom hárku, nemusíte do odkazov uvádzať názov hárku, Excel to urobí automaticky za vás. Ak vytvárate rozsah pre nejaký iný hárok, pred názov bunky alebo odkaz na rozsah uveďte názov hárku, za ktorým nasleduje výkričník (ako v príklade vzorca vyššie).

    Vzorec INDEX na vytvorenie dynamického pomenovaného rozsahu v programe Excel

    Ďalším spôsobom vytvorenia dynamického rozsahu programu Excel je použitie funkcie COUNTA v kombinácii s funkciou INDEX.

    first_cell :INDEX( stĺpec ,COUNTA( stĺpec ))

    Tento vzorec sa skladá z dvoch častí:

    • Na ľavú stranu operátora rozsahu (:) vložíte pevne zakódovaný počiatočný odkaz, napríklad $A$2.
    • Na pravej strane použijete na zistenie koncového odkazu funkciu INDEX(array, row_num, [column_num]). Tu zadáte celý stĺpec A pre pole a pomocou COUNTA získate číslo riadku (t. j. počet nezadaných buniek v stĺpci A).

    Pre náš vzorový súbor údajov (pozri obrázok vyššie) je vzorec nasledovný:

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

    Keďže v stĺpci A je 5 neprázdnych buniek vrátane záhlavia stĺpca, COUNTA vráti 5. Následne INDEX vráti $A$5, čo je posledná použitá bunka v stĺpci A (zvyčajne vzorec Index vracia hodnotu, ale operátor odkazu ho núti vrátiť odkaz). A keďže sme ako počiatočný bod nastavili $A$2, konečným výsledkom vzorca je rozsah $A$2:$A$5.

    Ak chcete otestovať novovytvorený dynamický rozsah, môžete nechať COUNTA načítať počet položiek:

    =COUNTA(Položky)

    Ak je všetko vykonané správne, výsledok vzorca sa zmení, keď pridáte alebo odstránite položky do/z zoznamu:

    Poznámka: Oba vyššie uvedené vzorce poskytujú rovnaký výsledok, avšak existuje rozdiel vo výkone, ktorý by ste si mali uvedomiť. OFFSET je nestála funkcia, ktorá sa prepočítava pri každej zmene v hárku. Na výkonných moderných počítačoch a primerane veľkých súboroch údajov by to nemal byť problém. Na málo výkonných počítačoch a veľkých súboroch údajov to môže spomaliť váš Excel. V takom prípade by stelepšie použiť vzorec INDEX na vytvorenie dynamického pomenovaného rozsahu.

    Ako vytvoriť dvojrozmerný dynamický rozsah v programe Excel

    Ak chcete vytvoriť dvojrozmerný pomenovaný rozsah, v ktorom je dynamický nielen počet riadkov, ale aj počet stĺpcov, použite nasledujúcu modifikáciu vzorca INDEX COUNTA:

    first_cell :INDEX($1:$1048576, COUNTA( first_column ), COUNTA( prvý_riadok )))

    V tomto vzorci máte dve funkcie COUNTA na získanie posledného neprázdneho riadku a posledného neprázdneho stĺpca ( číslo_riadku a column_num argumentov funkcie INDEX). pole argumentu sa vloží celý pracovný hárok (1048576 riadkov v Exceli 2016 - 2007; 65535 riadkov v Exceli 2003 a nižších).

    A teraz definujme ešte jeden dynamický rozsah pre náš súbor údajov: rozsah s názvom predaj ktorá obsahuje údaje o predaji za 3 mesiace (január až marec) a automaticky sa upravuje, keď do tabuľky pridávate nové položky (riadky) alebo mesiace (stĺpce).

    Pri údajoch o predaji začínajúcich v stĺpci B v riadku 2 má vzorec nasledujúci tvar:

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

    Ak sa chcete uistiť, že váš dynamický rozsah funguje tak, ako má, zadajte niekde na hárku nasledujúce vzorce:

    =SUM(predaj)

    =SUM(B2:D5)

    Ako vidíte na nasledujúcom obrázku, oba vzorce vrátia rovnaký súčet. Rozdiel sa prejaví v okamihu, keď do tabuľky pridáte nové položky: prvý vzorec (s dynamickým menným rozsahom) sa aktualizuje automaticky, zatiaľ čo druhý vzorec sa musí pri každej zmene aktualizovať ručne. To je obrovský rozdiel, však?

    Ako používať dynamické pomenované rozsahy vo vzorcoch programu Excel

    V predchádzajúcich častiach tohto návodu ste už videli niekoľko jednoduchých vzorcov, ktoré využívajú dynamické rozsahy. Teraz sa pokúsime vymyslieť niečo zmysluplnejšie, čo ukáže skutočnú hodnotu dynamického pomenovaného rozsahu programu Excel.

    V tomto príklade použijeme klasický vzorec INDEX MATCH, ktorý v programe Excel vykonáva funkciu Vlookup:

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

    ...a pozrite sa, ako môžeme vzorec ešte vylepšiť pomocou dynamických pomenovaných rozsahov.

    Ako je znázornené na obrázku vyššie, pokúšame sa vytvoriť informačnú tabuľku, kde používateľ zadá názov položky do H1 a v H2 získa celkový predaj tejto položky. Naša vzorová tabuľka vytvorená na demonštračné účely obsahuje iba 4 položky, ale vo vašich reálnych hárkoch môžu byť stovky a dokonca tisíce riadkov. Okrem toho môžu byť nové položky pridávané denne, takže použitie odkazov nie jemožnosť, pretože by ste museli vzorec aktualizovať znova a znova. Na to som príliš lenivý! :)

    Aby sa vzorec automaticky rozbalil, definujeme 3 názvy: 2 dynamické rozsahy a 1 statickú pomenovanú bunku:

    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 pridá ku všetkým odkazom názov aktuálneho hárka, takže pred vytvorením názvov nezabudnite otvoriť hárok so zdrojovými údajmi.

    Teraz začnite písať vzorec v H1. Keď príde na prvý argument, zadajte niekoľko znakov názvu, ktorý chcete použiť, a Excel zobrazí všetky dostupné zodpovedajúce názvy. Dvakrát kliknite na príslušný názov a Excel ho hneď vloží do vzorca:

    Dokončený vzorec vyzerá takto:

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

    A funguje perfektne!

    Akonáhle do tabuľky pridáte nové záznamy, budú ihneď zahrnuté do výpočtov bez toho, aby ste museli vykonať jedinú zmenu vo vzorci! A ak budete niekedy potrebovať preniesť vzorec do iného súboru programu Excel, jednoducho vytvorte rovnaké názvy v cieľovom zošite, skopírujte/vložte vzorec a ihneď ho spustite.

    Tip. Okrem toho, že dynamické rozsahy umožňujú trvanlivejšie vzorce, sú užitočné aj pri vytváraní dynamických rozbaľovacích zoznamov.

    Takto sa vytvárajú a používajú dynamické pomenované rozsahy v programe Excel. Ak sa chcete bližšie zoznámiť so vzorcami, o ktorých sa hovorí v tomto návode, môžete si stiahnuť náš vzorový zošit programu Excel s dynamickými pomenovanými rozsahmi. Ďakujem vám za prečítanie a dúfam, že sa uvidíme na našom blogu budúci týždeň!

    Michael Brown je nadšený technologický nadšenec s vášňou pre zjednodušovanie zložitých procesov pomocou softvérových nástrojov. S viac ako desaťročnými skúsenosťami v technologickom priemysle si zdokonalil svoje zručnosti v programoch Microsoft Excel a Outlook, ako aj Tabuľky Google a Dokumenty. Michaelov blog je venovaný zdieľaniu svojich vedomostí a odborných znalostí s ostatnými a poskytuje jednoduché tipy a návody na zlepšenie produktivity a efektivity. Či už ste skúsený profesionál alebo začiatočník, Michaelov blog ponúka cenné poznatky a praktické rady, ako z týchto základných softvérových nástrojov vyťažiť maximum.