Excel dynamisk navngivet område: hvordan du opretter og bruger

  • Del Dette
Michael Brown

I denne vejledning lærer du, hvordan du opretter et dynamisk navngivet område i Excel, og hvordan du bruger det i formler for automatisk at få nye data medtaget i beregninger.

I sidste uges vejledning så vi på forskellige måder at definere et statisk navngivet område i Excel på. Et statisk navn henviser altid til de samme celler, hvilket betyder, at du skal opdatere områdehenvisningen manuelt, når du tilføjer nye eller fjerner eksisterende data.

Hvis du arbejder med et datasæt, der ændrer sig løbende, vil du måske gøre dit navngivne område dynamisk, så det automatisk udvides for at rumme nyligt tilføjede poster eller kontraheres for at udelukke fjernede data. Længere nede i denne vejledning finder du detaljeret trin-for-trin vejledning i, hvordan du gør dette.

    Sådan opretter du et dynamisk navngivet område i Excel

    Lad os først opbygge et dynamisk navngivet område bestående af en enkelt kolonne og et variabelt antal rækker. For at få det gjort skal du udføre disse trin:

    1. På den Formel under fanen, i fanen Definerede navne gruppe, klik på Definer navn Eller tryk på Ctrl + F3 for at åbne Excel Name Manger, og klik på Ny... knap.
    2. Uanset hvad, så er det Nyt navn åbnes en dialogboks, hvor du kan angive følgende oplysninger:
      • I den Navn feltet, skal du skrive navnet på dit dynamiske område.
      • I den Anvendelsesområde indstiller du navnets anvendelsesområde. Arbejdsbog (standard) anbefales i de fleste tilfælde.
      • I den Henviser til feltet, skal du indtaste enten OFFSET COUNTA eller INDEX COUNTA formlen.
    3. Klik på OK. Færdig!

    I det følgende skærmbillede definerer vi et dynamisk område med navnet varer der rummer alle celler med data i kolonne A, undtagen i overskriftsrækken:

    OFFSET-formel til at definere et dynamisk navngivet område i Excel

    Den generiske formel til at lave et dynamisk navngivet område i Excel er som følger:

    OFFSET( første_celle , 0, 0, 0, COUNTA( kolonne ), 1)

    Hvor:

    • første_celle - det første element, der skal medtages i det angivne område, f.eks. $A$2.
    • kolonne - en absolut reference til kolonnen som f.eks. $A:$A.

    Kernen i denne formel er, at du bruger funktionen COUNTA til at få antallet af ikke-tomme celler i den pågældende kolonne. Dette tal går direkte til højde argumentet i funktionen OFFSET(reference, rows, cols, [height], [width]), der fortæller den, hvor mange rækker den skal returnere.

    Ud over det er det en almindelig Offset-formel, hvor:

    • reference er det udgangspunkt, som du baserer forskydningen på (first_cell).
    • rækker og cols er begge 0, da der ikke er nogen kolonner eller rækker, der skal forskydes.
    • bredde er lig med 1 kolonne.

    For at oprette et dynamisk navngivet område for kolonne A i ark 3, der begynder i celle A2, bruger vi f.eks. denne formel:

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

    Bemærk: Hvis du definerer et dynamisk område i det aktuelle regneark, behøver du ikke at medtage arknavnet i referencerne, Excel gør det automatisk for dig. Hvis du opretter et område til et andet ark, skal du sætte et udråbstegn foran celle- eller områdehenvisningen med arkets navn efterfulgt af et udråbstegn (som i formelseksemplet ovenfor).

    INDEX-formel til at lave et dynamisk navngivet område i Excel

    En anden måde at oprette et dynamisk område i Excel på er ved at bruge COUNTA i kombination med INDEX-funktionen.

    første_celle :INDEX( kolonne ,COUNTA( kolonne ))

    Denne formel består af to dele:

    • På venstre side af range-operatoren (:) angiver du den hårdtkodede startreference, f.eks. $A$2.
    • På højre side bruger du funktionen INDEX(array, row_num, [column_num]) til at finde ud af den afsluttende reference. Her angiver du hele kolonne A for arrayet og bruger COUNTA til at få rækkeantallet (dvs. antallet af celler i kolonne A, der ikke er indtastet).

    For vores eksempeldatasæt (se skærmbilledet ovenfor) ser formlen således ud:

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

    Da der er 5 ikke-blanke celler i kolonne A, herunder en kolonneoverskrift, returnerer COUNTA 5. INDEX returnerer derfor $A$5, som er den sidst anvendte celle i kolonne A (normalt returnerer en indeksformel en værdi, men referenceoperatoren tvinger den til at returnere en reference). Og da vi har angivet $A$2 som udgangspunkt, er det endelige resultat af formlen intervallet $A$2:$A$5.

    For at teste det nyligt oprettede dynamiske område kan du få COUNTA til at hente antallet af elementer:

    =COUNTA(Items)

    Hvis det hele er gjort korrekt, vil resultatet af formlen ændre sig, når du tilføjer eller fjerner elementer til/fra listen:

    Bemærk. De to formler, der er beskrevet ovenfor, giver det samme resultat, men der er en forskel i ydeevne, som du bør være opmærksom på. OFFSET er en flygtig funktion, der genberegnes ved hver ændring i et ark. På kraftige moderne maskiner og rimeligt store datasæt bør dette ikke være et problem. På maskiner med lav kapacitet og store datasæt kan dette gøre Excel langsommere. I så fald bør dubedre bruge INDEX-formlen til at oprette et dynamisk navngivet område.

    Sådan laver du todimensionale dynamiske områder i Excel

    Hvis du vil oprette et todimensionelt navngivet område, hvor ikke kun antallet af rækker, men også antallet af kolonner er dynamisk, skal du bruge følgende ændring af INDEX COUNTA-formlen:

    første_celle :INDEX($1:$1048576, COUNTA( første_kolonne ), COUNTA( første_række )))

    I denne formel har du to COUNTA-funktioner til at få den sidste ikke-tomme række og den sidste ikke-tomme kolonne ( row_num og kolonne_nummer argumenterne for henholdsvis INDEX-funktionen). I array argumentet, indlæses hele regnearket (1048576 rækker i Excel 2016 - 2007; 65535 rækker i Excel 2003 og lavere).

    Og lad os nu definere endnu et dynamisk område for vores datasæt: området med navnet salg der indeholder salgstal for 3 måneder (januar til marts) og justeres automatisk, når du tilføjer nye varer (rækker) eller måneder (kolonner) til tabellen.

    Med salgsdataene, der begynder i kolonne B, række 2, får formlen følgende formular:

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

    For at sikre, at dit dynamiske område fungerer, som det skal, skal du indtaste følgende formler et sted på arket:

    =SUM(salg)

    =SUM(B2:D5)

    Som du kan se på skærmbilledet nedenfor, returnerer begge formler det samme totalbeløb. Forskellen viser sig i det øjeblik, du tilføjer nye poster til tabellen: Den første formel (med det dynamiske navngivne område) opdateres automatisk, mens den anden skal opdateres manuelt ved hver ændring. Det gør en stor forskel, ikke?

    Sådan bruger du dynamiske navngivne områder i Excel-formler

    I de foregående afsnit af denne vejledning har du allerede set et par enkle formler, der bruger dynamiske intervaller. Lad os nu prøve at finde på noget mere meningsfuldt, der viser den reelle værdi af et dynamisk navngivet Excel-interval.

    I dette eksempel tager vi den klassiske INDEX MATCH-formel, der udfører Vlookup i Excel:

    INDEX ( return_range , MATCH ( opslagsværdi , lookup_range , 0))

    ...og se, hvordan vi kan gøre formlen endnu mere effektiv ved hjælp af dynamiske navngivne intervaller.

    Som vist i skærmbilledet ovenfor forsøger vi at lave et dashboard, hvor brugeren indtaster et varenavn i H1 og får det samlede salg for den pågældende vare i H2. Vores eksempeltabel, der er oprettet til demonstrationsformål, indeholder kun 4 varer, men i dine virkelige ark kan der være hundredvis og endda tusindvis af rækker. Desuden kan der dagligt tilføjes nye varer, så det er ikke en god idé at bruge referencer.mulighed, for så skal du opdatere formlen igen og igen. Det er jeg for doven til! :)

    For at tvinge formlen til at ekspandere automatisk skal vi definere 3 navne: 2 dynamiske intervaller og 1 statisk celle med et navn:

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

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

    Lookup_value: =$H$1

    Bemærk. Excel tilføjer navnet på det aktuelle ark til alle referencer, så før du opretter navnene, skal du sørge for at åbne arket med dine kildedata.

    Begynd nu at skrive formlen i H1. Når du kommer til det første argument, skal du skrive et par tegn af det navn, du vil bruge, og Excel vil vise alle tilgængelige navne, der matcher. Dobbeltklik på det passende navn, og Excel vil indsætte det i formlen med det samme:

    Den færdige formel ser ud som følger:

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

    Og det fungerer perfekt!

    Så snart du tilføjer nye poster til tabellen, vil de blive inkluderet i dine beregninger med det samme, uden at du behøver at foretage en eneste ændring i formlen! Og hvis du nogensinde har brug for at overføre formlen til en anden Excel-fil, skal du blot oprette de samme navne i destinationsarbejdsmappen, kopiere/indsætte formlen og få den til at fungere med det samme.

    Tip. Ud over at gøre formler mere holdbare er dynamiske intervaller praktiske til at oprette dynamiske dropdown-lister.

    Sådan opretter og bruger du dynamiske navngivne intervaller i Excel. Hvis du vil se nærmere på de formler, der er beskrevet i denne vejledning, er du velkommen til at downloade vores eksempel på en arbejdsmappe med dynamiske navngivne intervaller i Excel. Tak for din læsning og håber at se dig på vores blog i næste uge!

    Michael Brown er en dedikeret teknologientusiast med en passion for at forenkle komplekse processer ved hjælp af softwareværktøjer. Med mere end ti års erfaring i teknologibranchen har han finpudset sine færdigheder i Microsoft Excel og Outlook samt Google Sheets og Docs. Michaels blog er dedikeret til at dele sin viden og ekspertise med andre og giver nemme at følge tips og vejledninger til at forbedre produktiviteten og effektiviteten. Uanset om du er en erfaren professionel eller nybegynder, tilbyder Michaels blog værdifuld indsigt og praktiske råd til at få mest muligt ud af disse vigtige softwareværktøjer.