Excel vzorec: Dynamický pojmenovaný rozsah s INDEX -

Obsah

Obecný vzorec

=$A$1:INDEX($A:$A,lastrow)

souhrn

Jedním ze způsobů, jak vytvořit dynamický pojmenovaný rozsah v aplikaci Excel, je použití funkce INDEX. V zobrazeném příkladu je pojmenovaná oblast „data“ definována následujícím vzorcem:

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

, která se pohybuje v rozmezí $ A $ 2: $ A $ 10.

Poznámka: tento vzorec má definovat pojmenovaný rozsah, který lze použít v jiných vzorcích.

Vysvětlení

Tato stránka ukazuje příklad dynamického pojmenovaného rozsahu vytvořeného pomocí funkce INDEX společně s funkcí COUNTA. Dynamické pojmenované rozsahy se automaticky rozšiřují a smršťují, když jsou data přidávána nebo odebírána. Jsou alternativou k použití tabulky aplikace Excel, která také mění velikost při přidávání nebo odebírání dat.

Funkce INDEX vrací hodnotu na dané pozici v rozsahu nebo poli. INDEX můžete použít k načtení jednotlivých hodnot nebo celých řádků a sloupců v rozsahu. Díky čemuž je INDEX zvláště užitečný pro dynamické pojmenované rozsahy, je to, že ve skutečnosti vrací referenci. To znamená, že můžete použít INDEX k vytvoření smíšeného odkazu, jako je $ A $ 1: A100.

V zobrazeném příkladu je pojmenovaná oblast „data“ definována následujícím vzorcem:

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

, která se pohybuje v rozmezí $ A $ 2: $ A $ 10.

Jak tyto vzorce fungují

Nejprve si všimněte, že tento vzorec je složen ze dvou částí, které sedí po obou stranách operátoru rozsahu (:). Vlevo máme počáteční referenci rozsahu, pevně kódovanou jako:

$A$2

Vpravo je koncová reference rozsahu, vytvořená pomocí INDEXu takto:

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

Zde vložíme INDEX do celého sloupce A pro pole a poté pomocí funkce COUNTA zjistíme „poslední řádek“ v rozsahu. COUNTA zde funguje dobře, protože ve sloupci A je 10 hodnot, včetně řádku záhlaví. COUNTA proto vrací 10, což jde přímo do INDEXU jako číslo řádku. INDEX poté vrátí odkaz na $ A $ 10, poslední použitý řádek v rozsahu:

INDEX($A:$A,10) // resolves to $A$10

Konečným výsledkem vzorce je tedy tento rozsah:

$A$2:$A$10

Dvourozměrný rozsah

Výše uvedený příklad funguje pro jednorozměrný rozsah. Chcete-li vytvořit dvourozměrný dynamický rozsah, kde je také počet sloupců dynamický, můžete použít stejný přístup, rozšířený takto:

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

Stejně jako dříve se COUNTA používá k určení „lastrow“ a my znovu použijeme COUNTA k získání „lastcolumn“. Ty jsou dodávány do indexu jako row_num, respektive column_num.

Pro pole však dodáváme celý list, zadaný jako všech 1048576 řádků, což umožňuje INDEXU vrátit referenci v 2D prostoru.

Poznámka: Excel 2003 podporuje pouze 65535 řádků.

Určení posledního řádku

Existuje několik způsobů, jak určit poslední řádek (poslední relativní polohu) v sadě dat, v závislosti na struktuře a obsahu dat v listu:

  • Poslední řádek se smíšenými daty s mezerami
  • Poslední řádek se smíšenými daty bez mezer
  • Poslední řádek v textových datech
  • Poslední řádek v číselných datech

Dobré odkazy

Impozantní INDEX (fantastický článek Daniela Ferryho)

Zajímavé články...