INHOUDSOPGAWE
In hierdie tutoriaal sal jy leer hoe om 'n dinamiese benoemde reeks in Excel te skep en hoe om dit in formules te gebruik om nuwe data outomaties by berekeninge in te sluit.
In verlede week se tutoriaal, het ons na verskillende maniere gekyk om 'n statiese benoemde reeks in Excel te definieer. 'n Statiese naam verwys altyd na dieselfde selle, wat beteken dat jy die reeksverwysing handmatig moet opdateer wanneer jy nuwe data byvoeg of bestaande data verwyder.
As jy met 'n voortdurend veranderende datastel werk, wil jy dalk maak jou benoemde reeks dinamies sodat dit outomaties uitbrei om nuut bygevoegde inskrywings of kontrakte te akkommodeer om verwyderde data uit te sluit. Verder in hierdie tutoriaal sal jy gedetailleerde stap-vir-stap leiding kry oor hoe om dit te doen.
Hoe om 'n dinamiese benoemde reeks in Excel te skep
Vir begin, kom ons bou 'n dinamiese benoemde reeks wat bestaan uit 'n enkele kolom en 'n veranderlike aantal rye. Om dit te laat doen, voer hierdie stappe uit:
- Op die Formule -oortjie, in die Gedefinieerde Name -groep, klik Definieer Naam . Of, druk Ctrl + F3 om die Excel Name Manager oop te maak, en klik op die Nuwe... knoppie.
- In elk geval, die Nuwe Naam dialoog sal oopmaak, waar jy spesifiseer die volgende besonderhede:
- Tik in die Naam -blokkie die naam vir jou dinamiese reeks in.
- In die Omvang -aftreklys, stel die naam se omvang. Werkboek (verstek) word in die meeste aanbeveelgevalle.
- In die Verwys na -blokkie, voer óf OFFSET COUNTA óf INDEX COUNTA formule in.
- Klik OK. Klaar!
In die volgende skermkiekie definieer ons 'n dinamiese benoemde reeks items wat alle selle met data in kolom A akkommodeer, behalwe vir die kopry :
OFFSET-formule om 'n Excel-dinamiese benoemde reeks te definieer
Die generiese formule om 'n dinamiese benoemde reeks in Excel te maak, is soos volg:
OFFSET ( eerste_sel, 0, 0, COUNTA( kolom), 1)Waar:
- eerste_sel - die eerste item wat by die genoemde reeks ingesluit moet word, byvoorbeeld $A$2.
- kolom - 'n absolute verwysing na die kolom soos $A:$A.
In die kern van hierdie formule gebruik jy die COUNTA-funksie om die aantal nie-leë selle in die kolom van belang te kry. Daardie getal gaan direk na die hoogte -argument van die OFFSET(verwysing, rye, kole, [hoogte], [breedte]) funksie en vertel dit hoeveel rye om terug te gee.
Behalwe dit, dit is 'n gewone Offset-formule, waar:
- verwysing die beginpunt is vanwaar jy die offset (eerste_sel) baseer.
- rye en kole is albei 0, aangesien daar geen kolomme of rye is om te verreken nie.
- breedte is gelyk aan 1 kolom.
Om byvoorbeeld 'n dinamiese benoemde reeks vir kolom A in Blad3 te bou, wat in sel A2 begin, gebruik ons hierdie formule:
=OFFSET(Sheet3!$A$2, 0, 0, COUNTA(Sheet3!$A:$A), 1)
Let wel. As jy definieer'n dinamiese reeks in die huidige werkblad, hoef jy nie die bladnaam by die verwysings in te sluit nie, Excel sal dit outomaties vir jou doen. As jy 'n reeks vir 'n ander blad bou, voorvoeg die sel of reeksverwysing met die blad se naam gevolg deur die uitroepteken (soos in die formulevoorbeeld hierbo).
INDEKS formule om 'n dinamiese benoemde reeks in te maak Excel
Nog 'n manier om 'n Excel-dinamiese reeks te skep, is om COUNTA in kombinasie met die INDEX-funksie te gebruik.
eerste_sel:INDEX( kolom,COUNTA( kolom))Hierdie formule bestaan uit twee dele:
- Aan die linkerkant van die reeksoperateur (:), plaas jy die hardgekodeerde beginverwysing soos $A$2 .
- Aan die regterkant gebruik jy die INDEX(skikking, ry_getal, [kolom_nommer]) funksie om die eindverwysing uit te vind. Hier verskaf jy die hele kolom A vir die skikking en gebruik COUNTA om die rynommer te kry (d.i. die aantal nie-inskrywingselle in kolom A).
Vir ons voorbeelddatastel (sien asseblief die skermkiekie hierbo), gaan die formule soos volg:
=$A$2:INDEX($A:$A, COUNTA($A:$A))
Aangesien daar 5 nie-leë selle in kolom A is, insluitend 'n kolomopskrif, gee COUNTA 5 terug. Gevolglik gee INDEX $A $5, wat die laaste gebruikte sel in kolom A is (gewoonlik gee 'n indeksformule 'n waarde, maar die verwysingsoperateur dwing dit om 'n verwysing terug te gee). En omdat ons $A$2 as die beginpunt gestel het, is die finale resultaat vandie formule is die reeks $A$2:$A$5.
Om die nuutgeskepte dinamiese reeks te toets, kan jy COUNTA die itemstelling laat haal:
=COUNTA(Items)
As alles behoorlik gedoen is, sal die resultaat van die formule verander sodra jy items by/van die lys byvoeg of verwyder:
Let wel. Die twee formules wat hierbo bespreek is, lewer dieselfde resultaat, maar daar is 'n verskil in prestasie waarvan jy bewus moet wees. OFFSET is 'n vlugtige funksie wat herbereken met elke verandering aan 'n blad. Op kragtige moderne masjiene en redelike grootte datastelle behoort dit nie 'n probleem te wees nie. Op lae-kapasiteit masjiene en groot datastelle kan dit jou Excel vertraag. In daardie geval moet jy beter die INDEX-formule gebruik om 'n dinamiese benoemde reeks te skep.
Hoe om tweedimensionele dinamiese reeks in Excel te maak
Om 'n tweedimensionele benoemde reeks te bou, waar nie net die aantal rye nie, maar ook die aantal kolomme dinamies is, gebruik die volgende wysiging van die INDEX COUNTA formule:
eerste_sel:INDEX($1:$1048576, COUNTA( eerste_kolom), COUNTA( eerste_ry)))In hierdie formule het jy twee COUNTA-funksies om die laaste nie-leë ry en laaste nie-leë kolom te kry ( ry_num en kolom_getal argumente van die INDEX-funksie onderskeidelik). In die skikking -argument voer jy die hele werkblad (1048576 rye in Excel 2016 - 2007; 65535 rye in Excel 2003 en laer).
En nou,kom ons definieer nog een dinamiese reeks vir ons datastel: die reeks genaamd verkope wat verkoopsyfers vir 3 maande (Jan. tot Mrt) insluit en outomaties aanpas soos jy nuwe items (rye) of maande (kolomme) byvoeg. die tabel.
Met die verkoopsdata wat in kolom B, ry 2 begin, neem die formule die volgende vorm aan:
=$B$2:INDEX($1:$1048576,COUNTA($B:$B),COUNTA($2:$2))
Om seker te maak jou dinamiese reeks werk soos dit veronderstel is om te, voer die volgende formules iewers op die blad in:
=SUM(sales)
=SUM(B2:D5)
Soos jy in die skermkiekie hieronder kan sien , beide formules gee dieselfde totaal terug. Die verskil openbaar hom op die oomblik dat jy nuwe inskrywings by die tabel voeg: die eerste formule (met die dinamiese benoemde reeks) sal outomaties bywerk, terwyl die tweede een met elke verandering handmatig bygewerk sal moet word. Dit maak 'n groot verskil, uh?
Hoe om dinamiese benoemde reekse in Excel-formules te gebruik
In die vorige afdelings van hierdie tutoriaal het jy reeds gesien 'n paar eenvoudige formules wat dinamiese reekse gebruik. Kom ons probeer nou iets meer betekenisvols uitdink wat die werklike waarde van 'n Excel-dinamiese benoemde reeks toon.
Vir hierdie voorbeeld gaan ons die klassieke INDEX MATCH-formule neem wat Vlookup in Excel uitvoer:
INDEKS ( terugreeks, MATCH ( opsoekwaarde, opsoekreeks, 0))
...en kyk hoe ons kan die formule selfs kragtiger maak met die gebruik vandinamiese benoemde reekse.
Soos getoon in die skermkiekie hierbo, probeer ons om 'n kontroleskerm te bou, waar die gebruiker 'n itemnaam in H1 invoer en die totale verkope vir daardie item in H2 kry. Ons voorbeeldtabel wat vir demonstrasiedoeleindes geskep is, bevat slegs 4 items, maar in jou werklike blaaie kan daar honderde en selfs duisende rye wees. Verder kan nuwe items op 'n daaglikse basis bygevoeg word, so die gebruik van verwysings is nie 'n opsie nie, want jy sal die formule oor en oor moet bywerk. Ek is te lui daarvoor! :)
Om die formule te dwing om outomaties uit te brei, gaan ons 3 name definieer: 2 dinamiese reekse, en 1 statiese benoemde sel:
Opsoek_reeks: =$A$2:INDEX($ A:$A, COUNTA($A:$A))
Opbrengsreeks: =$E$2:INDEX($E:$E, COUNTA($E:$E))
Opsoekwaarde: =$H$1
Let wel. Excel sal die naam van die huidige blad by alle verwysings voeg, dus maak seker dat jy die blad met jou brondata oopmaak voordat jy die name skep.
Begin nou die formule in H1 te tik. Wanneer dit by die eerste argument kom, tik 'n paar karakters van die naam wat jy wil gebruik, en Excel sal alle beskikbare bypassende name wys. Dubbelklik op die toepaslike naam, en Excel sal dit dadelik in die formule invoeg:
Die voltooide formule lyk soos volg:
=INDEX(Return_range, MATCH(Lookup_value, Lookup_range, 0))
En werk perfek!
Sodra jy nuwe rekords by die tabel voeg, sal dit by jou berekeninge ingesluit word byeen keer, sonder dat jy 'n enkele verandering aan die formule hoef te maak! En as jy ooit die formule na 'n ander Excel-lêer moet oordra, skep eenvoudig dieselfde name in die bestemmingswerkboek, kopieer/plak die formule en laat dit dadelik werk.
Wenk. Behalwe om formules meer duursaam te maak, kom dinamiese reekse handig te pas om dinamiese aftreklyste te skep.
Dit is hoe jy dinamiese benoemde reekse in Excel skep en gebruik. Om die formules wat in hierdie tutoriaal bespreek word van nader te bekyk, is jy welkom om ons voorbeeld Excel Dynamic Named Range Workbook af te laai. Ek bedank jou vir die lees en hoop om jou volgende week op ons blog te sien!