Tartalomjegyzék
Ebben a bemutatóban megtanulja, hogyan hozhat létre dinamikus névtartományt az Excelben, és hogyan használhatja azt képletekben, hogy az új adatok automatikusan bekerüljenek a számításokba.
A múlt heti bemutatóban különböző módokat tekintettünk meg a statikus nevű tartományok definiálására az Excelben. A statikus név mindig ugyanazokra a cellákra utal, ami azt jelenti, hogy a tartományhivatkozást manuálisan kell frissítenie, amikor új adatokat ad hozzá vagy meglévő adatokat távolít el.
Ha folyamatosan változó adatkészlettel dolgozik, érdemes dinamikussá tenni a nevesített tartományt, hogy az automatikusan bővüljön az újonnan hozzáadott bejegyzésekhez, vagy szűküljön az eltávolított adatok kizárásához. A bemutató további részében részletes, lépésről-lépésre történő útmutatást talál ennek elvégzéséhez.
Hogyan hozzon létre dinamikus névtartományt az Excelben
Kezdetnek hozzunk létre egy dinamikus névleges tartományt, amely egyetlen oszlopból és változó számú sorból áll. Ehhez a következő lépéseket kell végrehajtani:
- A Formula lapon, a Meghatározott nevek csoport, kattintson a Név meghatározása Vagy nyomja meg a Ctrl + F3 billentyűkombinációt az Excel névváltozójának megnyitásához, és kattintson az Excel névváltójára. Új... gomb.
- Akárhogy is, a Új név párbeszédpanel fog megnyílni, ahol megadhatja a következő adatokat:
- A Név mezőbe írja be a dinamikatartomány nevét.
- A Terjedelem legördülő listában állítsa be a név hatókörét. Munkafüzet (alapértelmezett) ajánlott a legtöbb esetben.
- A A következőkre vonatkozik mezőbe írja be az OFFSET COUNTA vagy az INDEX COUNTA képletet.
- Kattintson az OK gombra. Kész!
A következő képernyőképen egy dinamikus tartományt definiálunk. tételek amely befogadja az összes cellák adatokkal az A oszlopban, kivéve a fejléc sorát:
OFFSET képlet egy Excel dinamikus névleges tartomány meghatározásához
A dinamikus névleges tartomány létrehozásának általános képlete az Excelben a következő:
OFFSET( first_cell , 0, 0, COUNTA( oszlop ), 1)Hol:
- first_cell - az első elem, amelyet a megnevezett tartományba kell felvenni, például $A$2.
- oszlop - abszolút hivatkozás az oszlopra, például $A:$A.
A képlet lényege, hogy a COUNTA függvénnyel megkapjuk a nem üres cellák számát az adott oszlopban. Ez a szám közvetlenül a COUNTA függvénybe kerül. magasság az OFFSET(reference, rows, cols, [height], [width]) függvény argumentuma, amely megadja, hogy hány sort adjon vissza.
Ezen túlmenően ez egy közönséges Offset formula, ahol:
- hivatkozás az a kiindulási pont, amelyből az eltolás kiindul (first_cell).
- sorok és cols mindkettő 0, mivel nincsenek eltolandó oszlopok vagy sorok.
- szélesség 1 oszlopnak felel meg.
Például a 3. lap A oszlopának dinamikus névleges tartományának létrehozásához, az A2 cellával kezdve, ezt a képletet használjuk:
=OFFSET(Sheet3!$A$2, 0, 0, 0, COUNTA(Sheet3!$A:$A), 1)
Megjegyzés: Ha dinamikus tartományt határoz meg az aktuális munkalapon, akkor nem kell a hivatkozásokban feltüntetnie a lap nevét, az Excel automatikusan megteszi ezt Ön helyett. Ha egy másik laphoz készít tartományt, akkor a cella- vagy tartományhivatkozás elé írja a lap nevét, amelyet felkiáltójel követ (mint a fenti képletpéldában).
INDEX-képlet dinamikus névleges tartomány létrehozásához az Excelben
Az Excel dinamikus tartomány létrehozásának másik módja a COUNTA és az INDEX függvény kombinációja.
first_cell :INDEX( oszlop ,COUNTA( oszlop ))Ez a képlet két részből áll:
- A tartományoperátor (:) bal oldalára a keményen kódolt kezdő hivatkozást, például $A$2-t írjuk.
- A jobb oldalon az INDEX(array, row_num, [column_num]) függvényt használjuk a befejező hivatkozás kiszámításához. Itt a teljes A oszlopot adjuk meg a tömbhöz, és a COUNTA segítségével megkapjuk a sorszámot (azaz az A oszlopban lévő nem bejegyzett cellák számát).
A mintaadatkészletünk esetében (lásd a fenti képernyőképet) a képlet a következőképpen néz ki:
=$A$2:INDEX($A:$A, COUNTA($A:$A))
Mivel az A oszlopban 5 nem üres cella van, beleértve az oszlop fejlécét is, a COUNTA 5-t ad vissza. Következésképpen az INDEX az A oszlop utolsó használt celláját, az A$5-öt adja vissza (általában az Index formula egy értéket ad vissza, de a referencia operátor kikényszeríti, hogy hivatkozást adjon vissza). És mivel az $A$2-t adtuk meg kiindulási pontnak, a formula végeredménye az $A$2:$A$5 tartomány.
Az újonnan létrehozott dinamikus tartomány teszteléséhez a COUNTA lekérheti az elemek számát:
=COUNTA(Tételek)
Ha minden megfelelően történik, a képlet eredménye megváltozik, amint elemeket adsz hozzá vagy veszel ki a listából:
Megjegyzés: A fent tárgyalt két képlet ugyanazt az eredményt adja, azonban van egy teljesítménybeli különbség, amivel tisztában kell lennie. Az OFFSET egy illékony függvény, amely a lap minden egyes módosításakor újraszámol. Nagy teljesítményű modern gépeken és ésszerű méretű adathalmazokon ez nem jelenthet problémát. Kis kapacitású gépeken és nagy adathalmazokon ez lelassíthatja az Excel-t. Ebben az esetben a következő lépéseket kell tenniejobban használja az INDEX képletet egy dinamikus névtartomány létrehozásához.
Hogyan készítsünk kétdimenziós dinamikus tartományt az Excelben?
Kétdimenziós névleges tartomány létrehozásához, ahol nemcsak a sorok, hanem az oszlopok száma is dinamikus, használja az INDEX COUNTA formula következő módosítását:
first_cell :INDEX($1:$1048576, COUNTA( first_column ), COUNTA( first_row )))Ebben a képletben két COUNTA függvényt használunk az utolsó nem üres sor és az utolsó nem üres oszlop kinyerésére ( row_num és column_num az INDEX függvény argumentumai). Az INDEX függvényben a array argumentummal a teljes munkalapot (1048576 sor az Excel 2016 - 2007 programban; 65535 sor az Excel 2003 és alacsonyabb programokban) táplálja.
Most pedig definiáljunk még egy dinamikus tartományt az adathalmazunkhoz: a következő tartományt értékesítés amely 3 hónap (január-március) értékesítési adatait tartalmazza, és automatikusan kiigazodik, amint új tételeket (sorokat) vagy hónapokat (oszlopokat) ad hozzá a táblázathoz.
A B oszlop 2. sorában kezdődő értékesítési adatokkal a képlet a következő alakot veszi fel:
=$B$2:INDEX($1:$1048576,COUNTA($B:$B),COUNTA($2:$2))
Hogy megbizonyosodjon arról, hogy a dinamikatartomány a kívánt módon működik, írja be a következő képleteket valahová a lapon:
=SUM(értékesítés)
=SUM(B2:D5)
Amint az alábbi képernyőképen látható, mindkét képlet ugyanazt a végösszeget adja vissza. A különbség abban a pillanatban mutatkozik meg, amikor új bejegyzéseket adsz hozzá a táblázathoz: az első képlet (a dinamikus nevű tartományban) automatikusan frissül, míg a másodikat minden egyes változásnál manuálisan kell frissíteni. Ez óriási különbség, nem?
Dinamikus névleges tartományok használata az Excel képletekben
A bemutató előző részeiben már láttunk néhány egyszerű képletet, amelyek dinamikus tartományokat használnak. Most próbáljunk meg valami értelmesebbet kitalálni, amely megmutatja az Excel dinamikus nevű tartományának valódi értékét.
Ehhez a példához a klasszikus INDEX MATCH képletet fogjuk használni, amely az Excelben Vlookupot végez:
INDEX ( return_range , MATCH ( lookup_value , lookup_range , 0))...és nézzük meg, hogyan tehetjük a képletet még erőteljesebbé a dinamikus névleges tartományok használatával.
Ahogy a fenti képernyőképen látható, egy olyan műszerfalat próbálunk létrehozni, ahol a felhasználó a H1-be beír egy cikknevet, és a H2-ben megkapja az adott cikk teljes eladását. A bemutató céllal létrehozott mintatáblánk csak 4 tételt tartalmaz, de a valós életben használt táblázatokban több száz, sőt akár több ezer sor is lehet.opciót, mert akkor újra és újra frissíteni kellene a képletet. Én túl lusta vagyok ehhez! :)
Ahhoz, hogy a képlet automatikusan kibővüljön, 3 nevet fogunk definiálni: 2 dinamikus tartományt és 1 statikus nevű cellát:
Lookup_range: =$A$2:INDEX($A:$A, COUNTA($A:$A))
Return_range: =$E$2:INDEX($E:$E, COUNTA($E:$E))
Lookup_value: =$H$1
Megjegyzés: Az Excel minden hivatkozáshoz az aktuális lap nevét adja hozzá, ezért a nevek létrehozása előtt mindenképpen nyissa meg a forrásadatokat tartalmazó lapot.
Most kezdje el begépelni a képletet a H1-ben. Amikor az első argumentumra kerül a sor, írjon be néhány karaktert a használni kívánt névből, és az Excel megjeleníti az összes rendelkezésre álló megfelelő nevet. Kattintson duplán a megfelelő névre, és az Excel azonnal beilleszti azt a képletbe:
Az elkészült képlet a következőképpen néz ki:
=INDEX(Return_range, MATCH(Lookup_value, Lookup_range, 0))
És tökéletesen működik!
Amint új rekordokat ad hozzá a táblázathoz, azok azonnal bekerülnek a számításokba, anélkül, hogy egyetlen módosítást kellene végrehajtania a képleten! És ha valaha is át kell vinnie a képletet egy másik Excel-fájlba, egyszerűen hozza létre ugyanazokat a neveket a célmunkafüzetben, másolja be a képletet, és máris működőképes lesz.
Tipp: A képletek tartósabbá tételén kívül a dinamikus tartományok jól jönnek dinamikus legördülő listák létrehozásához.
Így hozhat létre és használhat dinamikus nevesített tartományokat az Excelben. Ha közelebbről meg szeretné nézni az ebben a bemutatóban tárgyalt képleteket, akkor szívesen letöltheti az Excel dinamikus nevesített tartományok munkafüzet mintáját. Köszönöm, hogy elolvasta, és remélem, hogy jövő héten találkozunk a blogunkon!