Excel dynamiske arrays, funktioner og formler

  • Del Dette
Michael Brown

På grund af den revolutionerende opdatering af Excel 365-beregningsmotoren er arrayformler blevet meget enkle og forståelige for alle, ikke kun for superbrugere. Vejledningen forklarer konceptet med de nye dynamiske arrays i Excel og viser, hvordan de kan gøre dine regneark mere effektive og meget nemmere at opsætte.

Excel-arrayformler har altid været betragtet som et privilegium for guruer og formelsagkyndige. Hvis nogen siger "Dette kan gøres med en arrayformel", er mange brugeres umiddelbare reaktion "Åh, er der ikke en anden måde?".

Indførelsen af dynamiske arrays er en længe ventet og yderst velkommen ændring. På grund af deres evne til at arbejde med flere værdier på en enkel måde uden tricks og finurligheder er dynamiske arrayformler noget, som enhver Excel-bruger kan forstå og nyde at skabe.

    Excel dynamiske arrays

    Dynamiske arrays er arrays, der kan ændres i størrelse, og som automatisk beregner og returnerer værdier til flere celler på grundlag af en formel, der er indtastet i en enkelt celle.

    Gennem mere end 30 års historie har Microsoft Excel gennemgået mange ændringer, men én ting har været konstant - én formel, én celle. Selv med traditionelle arrayformler var det nødvendigt at indtaste en formel i hver celle, hvor du ønsker, at resultatet skal vises. Med dynamiske arrays er denne regel ikke længere sand. Nu er enhver formel, der returnerer et array af værdier, automatisk overført til naboceller, uden at du behøver at trykke på Ctrl + Shift + Enter eller foretage andre bevægelser. Med andre ord bliver det lige så nemt at arbejde med dynamiske arrays som at arbejde med en enkelt celle.

    Lad mig illustrere konceptet med et meget simpelt eksempel: Lad os antage, at du skal gange to grupper af tal, f.eks. for at beregne forskellige procentsatser.

    I de før-dynamiske versioner af Excel ville nedenstående formel kun virke i den første celle, medmindre du indtaster den i flere celler og trykker på Ctrl + Shift + Enter for at gøre den eksplicit til en array-formel:

    =A3:A5*B2:D2

    Se nu, hvad der sker, når den samme formel bruges i Excel 365. Du skriver den i en enkelt celle (B3 i vores tilfælde), trykker på Enter-tasten ... og får hele rækken fyldt med resultaterne på én gang:

    At udfylde flere celler med en enkelt formel kaldes spild , og det befolkede område af celler kaldes spill-området.

    En vigtig ting at bemærke er, at den seneste opdatering ikke blot er en ny måde at håndtere arrays på i Excel. Faktisk er der tale om en banebrydende ændring af hele beregningsmotoren. Med dynamiske arrays er der blevet tilføjet en masse nye funktioner til Excel-funktionsbiblioteket, og de eksisterende funktioner er begyndt at fungere hurtigere og mere effektivt. På sigt er det meningen, at nye dynamiske arrays helt og holdent skalerstatter de gammeldags array-formler, der indtastes med genvejstasten Ctrl + Shift + Enter.

    Excel dynamiske arrays tilgængelighed

    Dynamiske arrays blev introduceret på Microsoft Ignite-konferencen i 2018 og blev frigivet til Office 365-abonnenter i januar 2020. I øjeblikket er de tilgængelige i Microsoft 365-abonnementer og Excel 2021.

    Dynamiske arrays er understøttet i disse versioner:

    • Excel 365 til Windows
    • Excel 365 til Mac
    • Excel 2021
    • Excel 2021 til Mac
    • Excel til iPad
    • Excel til iPhone
    • Excel til Android-tablets
    • Excel til Android-telefoner
    • Excel til internettet

    Excel dynamiske array-funktioner

    Som en del af den nye funktionalitet blev der introduceret 6 nye funktioner i Excel 365, der håndterer arrays nativt og udsender data til en række celler. Udgangen er altid dynamisk - når der sker ændringer i kildedataene, opdateres resultaterne automatisk. Derfor er gruppens navn - dynamiske array-funktioner .

    Disse nye funktioner klarer nemt en række opgaver, der traditionelt anses for at være svære at løse, f.eks. kan de fjerne dubletter, udtrække og tælle unikke værdier, filtrere tomme felter, generere tilfældige heltal og decimaltal, sortere i stigende eller faldende rækkefølge og meget mere.

    Nedenfor finder du en kort beskrivelse af, hvad hver funktion gør, samt links til uddybende vejledninger:

    1. UNIQUE - udtrækker unikke elementer fra en række celler.
    2. FILTER - filtrerer data baseret på de kriterier, du definerer.
    3. Sortere - sorterer en række celler efter en angivet kolonne.
    4. SORTBY - sorterer et område af celler efter et andet område eller array.
    5. RANDARRAY - genererer et array af tilfældige tal.
    6. SEQUENCE - genererer en liste med fortløbende numre.
    7. TEXTSPLIT - opdeler strenge med en specificeret afgrænser på tværs af kolonner og/eller rækker.
    8. TOCOL - konverterer et array eller et område til en enkelt kolonne.
    9. TOROW - omdanner et område eller et array til en enkelt række.
    10. WRAPCOLS - konverterer en række eller kolonne til et 2D-array baseret på det angivne antal værdier pr. række.
    11. WRAPROWS - omdanner en række eller kolonne til et 2D-array baseret på det angivne antal værdier pr. kolonne.
    12. TAKE - udtrækker et angivet antal sammenhængende rækker og/eller kolonner fra starten eller slutningen af et array.

    Derudover er der to moderne erstatninger af de populære Excel-funktioner, som ikke officielt er med i gruppen, men som udnytter alle fordelene ved dynamiske arrays:

    XLOOKUP - er en mere kraftfuld efterfølger til VLOOKUP, HLOOKUP og LOOKUP, der kan slå op både i kolonner og rækker og returnere flere værdier.

    XMATCH - er en mere alsidig efterfølger til MATCH-funktionen, der kan udføre vertikale og horisontale opslag og returnere en relativ position for det angivne element.

    Excel dynamiske array-formler

    I moderne versioner af Excel er den dynamiske array-adfærd dybt integreret og bliver indfødt for alle funktioner , selv dem, der ikke oprindeligt var designet til at arbejde med arrays. For at sige det enkelt, for enhver formel, der returnerer mere end én værdi, opretter Excel automatisk et område, der kan ændres i størrelse, hvor resultaterne outputes. På grund af denne evne kan de eksisterende funktioner nu udføre magi!

    Nedenstående eksempler viser nye dynamiske array-formler i praksis samt effekten af dynamiske arrays på eksisterende funktioner.

    Eksempel 1. Ny dynamisk array-funktion

    Dette eksempel viser, hvor meget hurtigere og enklere en løsning kan opnås med Excel's dynamiske array-funktioner.

    Hvis du vil udtrække en liste over unikke værdier fra en kolonne, bruger du traditionelt en kompleks CSE-formel som denne. I dynamisk Excel skal du blot bruge en UNIQUE-formel i sin grundlæggende form:

    =UNIK(B2:B10)

    Du indtaster formlen i en tom celle og trykker på Enter. Excel udtrækker straks alle de forskellige værdier i listen og udsender dem i et område af celler, der begynder fra den celle, hvor du indtastede formlen (D2 i vores tilfælde). Når kildedataene ændres, genberegnes og opdateres resultaterne automatisk.

    Eksempel 2. Kombination af flere dynamiske array-funktioner i én formel

    Hvis der ikke er nogen måde at udføre en opgave på med én funktion, kan du kæde et par funktioner sammen! Hvis du f.eks. vil filtrere data baseret på en betingelse og arrangere resultaterne alfabetisk, skal du pakke SORT-funktionen omkring FILTER på følgende måde:

    =SORT(FILTER(A2:C13, B2:B13=F1, "Ingen resultater"))

    Hvor A2:C13 er kildedataene, B2:B13 er de værdier, der skal kontrolleres, og F1 er kriteriet.

    Eksempel 3. Brug af nye dynamiske array-funktioner sammen med eksisterende funktioner

    Da den nye beregningsmotor, der er implementeret i Excel 365, nemt kan omdanne konventionelle formler til arrays, er der intet, der forhindrer dig i at kombinere nye og gamle funktioner sammen.

    Hvis du f.eks. vil tælle, hvor mange unikke værdier der er i et bestemt område, skal du integrere den dynamiske array-funktion UNIQUE i den gode gamle COUNTA-funktion:

    =COUNTA(UNIK(B2:B10))

    Eksempel 4. Eksisterende funktioner understøtter dynamiske arrays

    Hvis du angiver en række celler til TRIM-funktionen i en ældre version som Excel 2016 eller Excel 2019, returnerer den et enkelt resultat for den første celle:

    =TRIM(A2:A6)

    I dynamisk Excel behandler den samme formel alle cellerne og returnerer flere resultater, som vist nedenfor:

    Eksempel 5. VLOOKUP-formel til returnering af flere værdier

    Som alle ved, er VLOOKUP-funktionen designet til at returnere en enkelt værdi baseret på det kolonneindeks, du angiver. I Excel 365 kan du imidlertid angive et array af kolonnumre for at returnere resultater fra flere kolonner:

    =VLOOKUP(F1, A2:C6, {1,2,3}, FALSE)

    Eksempel 6. TRANSPOSE-formlen gjort let

    I tidligere Excel-versioner gav syntaksen for TRANSPOSE-funktionen ikke plads til fejl. For at rotere data i dit regneark skulle du tælle de oprindelige kolonner og rækker, vælge det samme antal tomme celler, men ændre orienteringen (en uoverskuelig operation i store regneark!), skrive en TRANSPOSE-formel i det valgte område og trykke på Ctrl + Shift + Enter for at fuldføre den korrekt. Puh!

    I dynamisk Excel skal du blot indtaste formlen i den yderste venstre celle i outputområdet og trykke på Enter:

    =TRANSPOSE(A1:B6)

    Færdig!

    Spildområde - én formel, flere celler

    spildområde er et område af celler, der indeholder de værdier, der returneres af en dynamisk arrayformel.

    Når en celle i spildområdet er markeret, vises den blå kant for at vise, at alt, hvad der står i den, er beregnet af formlen i cellen øverst til venstre. Hvis du sletter formlen i den første celle, forsvinder alle resultaterne.

    Spill range er en rigtig god ting, der gør livet for Excel-brugere meget nemmere. Tidligere skulle vi med CSE-arrayformler gætte, hvor mange celler vi skulle kopiere dem til. Nu skal du bare indtaste formlen i den første celle, og så kan Excel klare resten.

    Bemærk. Hvis andre data blokerer for spill-området, opstår der en #SPILL-fejl. Når de blokerende data fjernes, forsvinder fejlen.

    Du kan finde flere oplysninger i Excel-spill range.

    Reference for spildområde (#-symbol)

    Hvis du vil henvise til spildområdet, skal du sætte et hashtag eller et pundtegn (#) efter adressen på den øverste venstre celle i området.

    Hvis du f.eks. vil finde ud af, hvor mange tilfældige tal der genereres af RANDARRAY-formlen i A2, skal du angive spill range-referencen til COUNTA-funktionen for at finde ud af, hvor mange tilfældige tal der genereres af RANDARRAY-formlen i A2:

    =COUNTA(A2#)

    Du kan lægge værdierne i spildområdet sammen ved at bruge:

    =SUM(A2#)

    Tips:

    • Hvis du hurtigt vil henvise til et spildområde, skal du blot vælge alle cellerne inden for den blå boks med musen, og Excel opretter spildområdet for dig.
    • I modsætning til en almindelig intervalreference er spill-intervalreference dynamisk og reagerer automatisk på ændring af intervallets størrelse.
    • For yderligere oplysninger, se Operatør for spildområde.

      Implicit krydsning og @-tegn

      I Excel med dynamisk array er der endnu en væsentlig ændring i formelsamarbejdet - indførelsen af @-tegnet, kendt som implicit skæringspunktoperatør .

      I Microsoft Excel, implicit skæringspunkt er en formeladfærd, der reducerer mange værdier til en enkelt værdi. I det gamle Excel kunne en celle kun indeholde en enkelt værdi, så det var standardadfærden, og der var ikke brug for en særlig operatør til det.

      I det nye Excel betragtes alle formler som standard som array-formler. Den implicitte intersection-operator bruges til at forhindre array-adfærd, hvis du ikke ønsker det i en bestemt formel. Med andre ord, hvis du ønsker, at formlen kun skal returnere én værdi, skal du sætte @ foran funktionens navn, og den vil opføre sig som en formel uden array-adfærd i det traditionelle Excel.

      For at se, hvordan det fungerer i praksis, kan du tage et kig på skærmbilledet nedenfor.

      I C2 er der en dynamisk array-formel, som spreder resultaterne i mange celler:

      =UNIQUE(A2:A9)

      I E2 er funktionen forsynet med @-tegnet, der angiver implicit intersektion, og som resultat heraf returneres kun den første unikke værdi:

      =@UNIK(A2:A9)

      Du kan finde flere oplysninger i Implicit intersektion i Excel.

      Fordele ved dynamiske Excel-arrays

      Dynamiske arrays er uden tvivl en af de bedste Excel-forbedringer i årevis. Som enhver ny funktion har de stærke og svage sider. Heldigvis for os er de stærke sider ved de nye dynamiske Excel-formler for dynamiske arrays overvældende!

      Enkel og mere kraftfuld

      Dynamiske arrays gør det muligt at skabe mere effektive formler på en meget enklere måde. Her er et par eksempler:

      • Udtrække unikke værdier: traditionelle formler
      • Tæl unikke og særskilte værdier: traditionelle formler
      • Sortere kolonner alfabetisk: traditionelle formler

      Indfødt for alle formler

      I dynamisk Excel behøver du ikke at bekymre dig om, hvilke funktioner der understøtter arrays, og hvilke der ikke gør. Hvis en formel kan returnere flere værdier, vil den som standard gøre det. Dette gælder også for aritmetiske operationer og ældre funktioner, som vist i dette eksempel.

      Inlejrede dynamiske array-funktioner

      Hvis du vil finde løsninger på mere komplekse opgaver, kan du kombinere nye dynamiske array-funktioner i Excel eller bruge dem sammen med gamle funktioner, som vist her og her.

      Relative og absolutte referencer er mindre vigtige

      Takket være "én formel, mange værdier" er det ikke nødvendigt at låse områder med $-tegnet, da formlen teknisk set kun er i én celle. Så for det meste er det ligegyldigt, om man bruger absolutte, relative eller blandede cellereferencer (hvilket altid har været en kilde til forvirring for uerfarne brugere) - en dynamisk array-formel vil alligevel give korrekte resultater!

      Begrænsninger ved dynamiske arrays

      Nye dynamiske arrays er fantastiske, men som med alle nye funktioner er der nogle få forbehold og overvejelser, som du skal være opmærksom på.

      Resultaterne kan ikke sorteres på den sædvanlige måde

      Det spill-område, der returneres af en dynamisk arrayformel, kan ikke sorteres ved hjælp af Excels sorteringsfunktion. Ethvert sådant forsøg vil resultere i " Du kan ikke ændre en del af et array " fejl. Hvis du vil arrangere resultaterne fra det mindste til det største eller omvendt, skal du pakke din aktuelle formel ind i funktionen Sortere. Sådan kan du f.eks. filtrere og sortere på én gang.

      Kan ikke slette nogen værdi i spildområdet

      Ingen af værdierne i et spill-område kan slettes af samme grund: Du kan ikke ændre en del af et array. Denne adfærd er forventet og logisk. Traditionelle CSE-arrayformler fungerer også på denne måde.

      Er ikke understøttet i Excel-tabeller

      Denne funktion (eller fejl?) er helt uventet. Dynamiske arrayformler fungerer ikke i Excel-tabeller, kun i almindelige intervaller. Hvis du forsøger at konvertere et spildområde til en tabel, vil Excel gøre det, men i stedet for resultaterne vil du kun se en #SPILL! fejl.

      Arbejder ikke med Excel Power Query

      Resultaterne af dynamiske arrayformler kan ikke indlæses i Power Query. Hvis du f.eks. forsøger at flette to eller flere spill-områder sammen ved hjælp af Power Query, vil det ikke fungere.

      Dynamiske arrays vs. traditionelle CSE-formler for arrays

      Med indførelsen af dynamiske arrays kan vi tale om to typer Excel:

      1. Dynamisk Excel der fuldt ud understøtter dynamiske arrays, funktioner og formler. I øjeblikket er det kun Excel 365 og Excel 2021.
      2. Arvede Excel , også kendt som traditionelt eller præ-dynamisk Excel, hvor kun Ctrl + Shift + Enter-formler er understøttet. Det er Excel 2019, Excel 2016, Excel 2013 og tidligere versioner.

      Det siger sig selv, at dynamiske arrays er CSE-formler overlegen i alle henseender. Selv om de traditionelle array-formler bevares af kompatibilitetshensyn, anbefales det fra nu af at bruge de nye formler.

      Her er de væsentligste forskelle:

      • En dynamisk arrayformel indtastes i én celle og afsluttes med et almindeligt Enter-tastetryk. Hvis du vil afslutte en gammeldags arrayformel, skal du trykke på Ctrl + Shift + Enter .
      • Nye array-formler spildes automatisk til mange celler. CSE-formler skal kopieres til en række celler for at returnere flere resultater.
      • Output af dynamiske arrayformler ændrer automatisk størrelse, når dataene i kildeområdet ændres. CSE-formler afkorter output, hvis returområdet er for lille, og returnerer fejl i ekstra celler, hvis returområdet er for stort.
      • En dynamisk arrayformel kan nemt redigeres i en enkelt celle. Hvis du vil ændre en CSE-formel, skal du vælge og redigere hele området.
      • Det er ikke muligt at slette og indsætte rækker i et CSE-formelområde - du skal først slette alle eksisterende formler. Med dynamiske arrays er det ikke noget problem at indsætte eller slette rækker.

      Bagudkompatibilitet: dynamiske arrays i ældre Excel

      Når du åbner et regneark, der indeholder en dynamisk arrayformel i det gamle Excel, konverteres den automatisk til en konventionel arrayformel omsluttet af {krumme parenteser}. Når du åbner regnearket igen i det nye Excel, vil de parenteser blive fjernet.

      I ældre Excel får de nye dynamiske array-funktioner og henvisninger til overløbsområder præfikset _xlfn for at angive, at denne funktionalitet ikke understøttes. Et tegn (#) for henvisning til overløbsområder erstattes af funktionen ANCHORARRAY.

      Her er f.eks. hvordan en UNIQUE-formel vises i Excel 2013 :

      De fleste dynamiske arrayformler (men ikke alle!) fortsætter med at vise deres resultater i det gamle Excel, indtil du foretager ændringer i dem. Redigering af en formel bryder den straks og viser en eller flere #NAME? fejlværdier.

      Excel dynamiske array-formler fungerer ikke

      Afhængigt af funktionen kan der opstå forskellige fejl, hvis du bruger forkert syntaks eller ugyldige argumenter. Nedenfor er de 3 mest almindelige fejl, som du kan støde på i forbindelse med en dynamisk arrayformel.

      #SPILL! fejl

      Når et dynamisk array returnerer flere resultater, men noget blokerer for spill-området, opstår en #SPILL!-fejl.

      For at rette fejlen skal du blot rydde eller slette alle celler i spildområdet, der ikke er helt tomme. For hurtigt at finde alle de celler, der er i vejen, skal du klikke på fejlindikatoren og derefter klikke på Vælg Obstruerende celler .

      Ud over et ikke-tomt spill-område kan denne fejl skyldes nogle få andre årsager. Du kan finde flere oplysninger i:

      • Excel #SPILL fejl - årsager og rettelser
      • Sådan retter du #SPILL! fejl med VLOOKUP, INDEX MATCH, SUMIF

      #REF! fejl

      På grund af den begrænsede understøttelse af eksterne referencer mellem arbejdsbøger kræver dynamiske arrays, at begge filer er åbne. Hvis kildearbejdsbogen er lukket, vises en #REF!-fejl.

      #NAME? fejl

      Der opstår en #NAME? fejl, hvis du forsøger at bruge en dynamisk array-funktion i en ældre version af Excel. Husk, at de nye funktioner kun er tilgængelige i Excel 365 og Excel 2021.

      Hvis denne fejl vises i understøttede Excel-versioner, skal du dobbelttjekke funktionens navn i den problematiske celle. Der er stor sandsynlighed for, at det er skrevet forkert :)

      Sådan bruger du dynamiske arrays i Excel. Forhåbentlig vil du elske denne fantastiske nye funktionalitet! Jeg takker dig 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.