Array-formler og -funktioner i Excel - eksempler og retningslinjer

  • Del Dette
Michael Brown

I denne vejledning lærer du, hvad en Excel-arrayformel er, hvordan du indtaster den korrekt i dine regneark, og hvordan du bruger arraykonstanter og arrayfunktioner.

Array-formler i Excel er et ekstremt kraftfuldt værktøj og et af de sværeste at mestre. En enkelt array-formel kan udføre flere beregninger og erstatte tusindvis af almindelige formler. Og alligevel har 90 % af brugerne aldrig brugt array-funktioner i deres regneark, simpelthen fordi de er bange for at begynde at lære dem.

Arrayformler er faktisk en af de mest forvirrende Excel-funktioner at lære. Formålet med denne vejledning er at gøre indlæringskurven så let og smidig som muligt.

    Hvad er et array i Excel?

    Inden vi begynder på array-funktioner og formler, skal vi først finde ud af, hvad udtrykket "array" betyder. Et array er i bund og grund en samling af elementer. Elementerne kan være tekst eller tal, og de kan være placeret i en enkelt række eller kolonne eller i flere rækker og kolonner.

    Hvis du f.eks. lægger din ugentlige indkøbsliste ind i et Excel-format, ville den se således ud:

    {"Mælk", "Æg", "Smør", "Cornflakes"}

    Hvis du derefter markerer cellerne A1 til D1, indtaster ovenstående matrix med et lighedstegn (=) foran i formellelinjen og trykker på CTRL + SHIFT + ENTER , får du følgende resultat:

    Du har lige oprettet et endimensionalt horisontalt array. Ikke noget forfærdeligt indtil videre, vel?

    Hvad er en array-formel i Excel?

    Forskellen mellem en arrayformel og en almindelig formel er, at en arrayformel behandler flere værdier i stedet for kun én. Med andre ord evaluerer en arrayformel i Excel alle individuelle værdier i et array og udfører flere beregninger på et eller flere elementer i henhold til de betingelser, der er udtrykt i formlen.

    En arrayformel kan ikke blot behandle flere værdier på samme tid, den kan også returnere flere værdier ad gangen. De resultater, der returneres af en arrayformel, er således også et array.

    Array-formler er tilgængelige i alle versioner af Excel 2019, Excel 2016, Excel 2013, Excel 2010, Excel 2007 og lavere versioner af Excel 2019, Excel 2016, Excel 2013, Excel 2010, Excel 2007 og lavere.

    Og nu er det vist det rigtige tidspunkt for dig at oprette din første array-formel.

    Simpelt eksempel på Excel-formel for array

    Antag, at du har nogle varer i kolonne B, deres priser i kolonne C, og at du vil beregne det samlede salg af alle varer.

    Der er selvfølgelig intet, der forhindrer dig i at beregne subtotaler i hver række først med noget så simpelt som =B2*C2 og derefter summere disse værdier:

    En arrayformel kan dog spare dig for de ekstra tastetryk, da den får Excel til at gemme mellemresultater i hukommelsen i stedet for i en ekstra kolonne. Så det kræver kun en enkelt arrayformel og to hurtige trin:

    1. Vælg en tom celle, og indtast følgende formel i den:

      =SUM(B2:B6*C2:C6)

    2. Tryk på tastaturgenvejen CTRL + SHIFT + ENTER for at færdiggøre arrayformlen.

      Når du gør dette, omgiver Microsoft Excel formlen med {krumme parenteser}, hvilket er en visuel indikation af en arrayformel.

      Formlen multiplicerer værdierne i hver enkelt række i det angivne array (cellerne B2 til C6), lægger subtotalerne sammen og udsender den samlede sum:

    Dette enkle eksempel viser, hvor effektiv en arrayformel kan være. Når du arbejder med hundredvis og tusindvis af rækker data, kan du tænke på, hvor meget tid du kan spare ved at indtaste en arrayformel i en enkelt celle.

    Hvorfor bruge array-formler i Excel?

    Excel array-formler er det mest praktiske værktøj til at udføre sofistikerede beregninger og udføre komplekse opgaver. En enkelt array-formel kan erstatte bogstaveligt talt hundredvis af sædvanlige formler. Array-formler er meget gode til opgaver som f.eks:

    • Summe tal, der opfylder visse betingelser, f.eks. summe N største eller mindste værdier i et område.
    • Summen af hver anden række eller hver N-te række eller kolonne, som vist i dette eksempel.
    • Tæl antallet af alle eller visse tegn i et bestemt område. Her er en arrayformel, der tæller alle tegn, og en anden, der tæller alle bestemte tegn.

    Sådan indtaster du en array-formel i Excel (Ctrl + Shift + Enter)

    Som du allerede ved, er kombinationen af de tre taster CTRL + SHIFT + ENTER en magisk trylleformular, der forvandler en almindelig formel til en array-formel.

    Når du indtaster en arrayformel i Excel, er der 4 vigtige ting, du skal huske på:

    1. Når du er færdig med at skrive formlen og samtidig har trykket på tasterne CTRL SHIFT ENTER, omslutter Excel automatisk formlen mellem {krumme parenteser}. Når du markerer en sådan celle(r), kan du se parenteserne i formellinjen, hvilket giver dig et fingerpeg om, at der er en array-formel derinde.
    2. Du skal trykke på genvejen Ctrl+Shift+Enter for at færdiggøre en arrayformel.
    3. Hver gang du redigerer en arrayformel, forsvinder parenteserne, og du skal trykke på Ctrl+Shift+Enter igen for at gemme ændringerne.
    4. Hvis du glemmer at trykke på Ctrl+Shift+Enter, vil din formel opføre sig som en almindelig formel og kun behandle den/de første værdi(er) i det/de angivne array(s).

    Fordi alle Excel-formler kræver, at du trykker på Ctrl + Shift + Enter, kaldes de nogle gange for CSE-formler .

    Brug F9-tasten til at evaluere dele af en arrayformel

    Når du arbejder med arrayformler i Excel, kan du se, hvordan de beregner og gemmer deres elementer (interne arrays) for at vise det endelige resultat, du ser i en celle. For at gøre dette skal du vælge et eller flere argumenter inden for en funktions parentes og derefter trykke på tasten F9. Tryk på Esc-tasten for at forlade formelevalueringstilstanden.

    I ovenstående eksempel skal du for at se subtotalerne for alle produkterne vælge B2:B6*C2:C6, trykke på F9 og få følgende resultat.

    Bemærk. Vær opmærksom på, at du skal vælge en del af formlen, før du trykker på F9, ellers vil F9-tasten blot erstatte din formel med den beregnede værdi(er).

    Formler til arrayformler med en enkelt celle og flere celler i Excel

    Excel arrayformler kan returnere et resultat i en enkelt celle eller i flere celler. En arrayformel, der er indtastet i en række celler, kaldes en multi-celle formel En arrayformel, der er placeret i en enkelt celle, kaldes en formel for enkeltceller .

    Der findes nogle få Excel-arrayfunktioner, der er designet til at returnere multi-celle arrays, f.eks. TRANSPOSE, TREND, FREKVENS, LINEST osv.

    Andre funktioner, f.eks. SUM, AVERAGE, AGGREGATE, MAX, MIN, kan beregne arrayudtryk, når de indtastes i en enkelt celle ved hjælp af Ctrl + Shift + Enter .

    De følgende eksempler viser, hvordan du bruger en formel for et array med en enkelt celle og et array med flere celler.

    Eksempel 1. En formel for en enkeltcelle-array

    Antag, at du har to kolonner med antallet af solgte varer i to forskellige måneder, f.eks. kolonne B og C, og at du vil finde den maksimale salgsstigning.

    Normalt ville du tilføje en ekstra kolonne, f.eks. kolonne D, som beregner salgsændringen for hvert produkt ved hjælp af en formel som =C2-B2 , og derefter finde den maksimale værdi i den ekstra kolonne =MAX(D:D) .

    En arrayformel har ikke brug for en ekstra kolonne, da den lagrer mellemresultaterne perfekt i hukommelsen. Du skal altså bare indtaste følgende formel og trykke på Ctrl + Shift + Enter :

    =MAX(C2:C6-B2:B6)

    Eksempel 2. En formel for et array med flere celler i Excel

    Antag, at du i det foregående eksempel med SUM skal betale 10 % afgift af hvert salg, og at du vil beregne afgiftsbeløbet for hvert produkt med én formel.

    Vælg området med tomme celler, f.eks. D2:D6, og indtast følgende formel i formellelinjen:

    =B2:B6 * C2:C6 * 0,1

    Når du trykker på Ctrl + Shift + Enter , placerer Excel en instans af din arrayformel i hver celle i det valgte område, og du får følgende resultat:

    Eksempel 3. Brug af en Excel-arrayfunktion til at returnere et array med flere celler

    Som allerede nævnt har Microsoft Excel nogle få såkaldte "array-funktioner", der er specielt designet til at arbejde med arrays med flere celler. TRANSPOSE er en af disse funktioner, og vi vil bruge den til at transponere ovenstående tabel, dvs. konvertere rækker til kolonner.

    1. Vælg et tomt område af celler, hvor du vil udskrive den omvendte tabel. Da vi konverterer rækker til kolonner, skal du sørge for at vælge det samme antal rækker og kolonner, som din kildetabel har henholdsvis kolonner og rækker. I dette eksempel vælger vi 6 kolonner og 4 rækker.
    2. Tryk på F2 for at gå ind i redigeringstilstand.
    3. Indtast formlen, og tryk på Ctrl + Shift + Enter .

    I vores eksempel er formlen:

    =TRANSPOSE($A$1:$D$6)

    Resultatet kommer til at se nogenlunde sådan her ud:

    Sådan bruger du TRANSPOSE som en CSE-arrayformel i Excel 2019 og tidligere. I Dynamic Array Excel fungerer dette også som en almindelig formel. Hvis du vil lære andre måder at transponere på i Excel, kan du læse denne vejledning: Sådan skifter du kolonner og rækker i Excel.

    Sådan arbejder du med formler for array med flere celler

    Når du arbejder med formler for arrayformler med flere celler i Excel, skal du sørge for at følge disse regler for at få de korrekte resultater:

    1. Vælg det område af celler, hvor du ønsker at udskrive resultaterne før indtastning af formlen.
    2. Til slet en formel for et array med flere celler, skal du enten vælge alle de celler, der indeholder formlen, og trykke på DELETE , eller vælge hele formlen i formellinjen, trykke på DELETE , og derefter trykke på Ctrl + Shift + Enter .
    3. Du kan ikke redigere eller flytte indholdet af en enkelt celle i en arrayformel, og du kan heller ikke indsætte nye celler i eller slette eksisterende celler fra en arrayformel med flere celler. Når du forsøger at gøre dette, vil Microsoft Excel sende advarslen " Du kan ikke ændre en del af et array ".
    4. Til krympe en arrayformel, dvs. for at anvende den på færre celler, skal du først slette den eksisterende formel og derefter indtaste en ny.
    5. Til udvide en arrayformel, dvs. anvende den på flere celler, skal du markere alle celler, der indeholder den aktuelle formel plus tomme celler, hvor du vil have den, trykke på F2 for at skifte til redigeringstilstand, justere referencerne i formlen og trykke på Ctrl + Shift + Enter for at opdatere den.
    6. Du kan ikke bruge formler med arrayformler med flere celler i Excel-tabeller.
    7. Du skal indtaste en arrayformel med flere celler i et område af celler af samme størrelse som det array, der returneres af formlen. Hvis din Excel-arrayformel producerer et array, der er større end det valgte område, vises de overskydende værdier ikke på regnearket. Hvis et array, der returneres af formlen, er mindre end det valgte område, vises der #N/A-fejl i ekstra celler.

    Hvis din formel kan returnere et array med et variabelt antal elementer, skal du indtaste det i et område, der er lig med eller større end det maksimale array, som formlen returnerer, og indpakke din formel i IFERROR-funktionen, som vist i dette eksempel.

    Excel array konstanter

    I Microsoft Excel er en arraykonstant blot et sæt statiske værdier. Disse værdier ændres aldrig, når du kopierer en formel til andre celler eller værdier.

    Du har allerede set et eksempel på en arraykonstant, der er oprettet ud fra en indkøbsliste i begyndelsen af denne vejledning. Lad os nu se, hvilke andre array-typer der findes, og hvordan du opretter dem.

    Der findes 3 typer af array-konstanter:

    1. Horisontal array-konstant

    En vandret arraykonstant befinder sig i en række. Hvis du vil oprette en række arraykonstant, skal du skrive værdierne adskilt af kommaer og omslutte dem med parenteser, f.eks. {1,2,3,4}.

    Bemærk: Når du opretter en arraykonstant, skal du skrive de indledende og afsluttende parenteser manuelt.

    Hvis du vil indtaste et vandret array i et regneark, skal du vælge det tilsvarende antal tomme celler i en række, skrive formlen ={1,2,3,4} i formellinjen, og tryk på Ctrl + Shift + Enter . Resultatet kommer til at ligne dette:

    Som du kan se på skærmbilledet, omslutter Excel en arraykonstant i et andet sæt parenteser, præcis som det er tilfældet, når du indtaster en arrayformel.

    2. Vertikal array-konstant

    En konstant i et vertikalt array befinder sig i en kolonne. Du opretter den på samme måde som et horisontalt array med den eneste forskel, at du afgrænser elementerne med f.eks. semikoloner:

    ={11; 22; 33; 44}

    3. To-dimensional array-konstant

    Hvis du vil oprette et todimensionelt array, skal du adskille hver række med et semikolon og hver datakolonne med et komma.

    ={"a", "b", "c"; 1, 2, 3}

    Arbejde med Excel-arraykonstanter

    Arraykonstanter er en af hjørnestenene i en Excel-arrayformel. Følgende oplysninger og tips kan hjælpe dig med at bruge dem på den mest effektive måde.

    1. Elementer i en array-konstant

      En arraykonstant kan indeholde tal, tekstværdier, boolske værdier (TRUE og FALSE) og fejlværdier, adskilt med kommaer eller semikolon.

      Du kan indtaste en numerisk værdi som et heltal, decimaltal eller i videnskabelig notation. Hvis du bruger tekstværdier, skal de omgives af dobbelte anførselstegn (") ligesom i enhver Excel-formel.

      En arraykonstant kan ikke indeholde andre arrays, cellereferencer, intervaller, datoer, definerede navne, formler eller funktioner.

    2. Navngivning af array-konstanter

      For at gøre det lettere at bruge en array-konstant kan du give den et navn:

      • Skift til den fanen Formler> Definerede navne gruppe, og klik på Definer navn Alternativt kan du trykke på Ctrl + F3 og klikke på Ny .
      • Skriv navnet i feltet Navn
      • I den Henviser til feltet, skal du indtaste elementerne i din array-konstant omgivet i parenteser med det foregående lighedstegn (=). F.eks:

        ={"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"}

      • Klik på OK for at gemme dit navngivne array og lukke vinduet.

      Hvis du vil indtaste den navngivne arraykonstant i et ark, skal du markere lige så mange celler i en række eller kolonne, som der er elementer i arrayet, skrive arrayets navn i formellinjen med =-tegnet foran og trykke på Ctrl + Shift + Enter .

      Resultatet bør ligne dette:

    3. Forebyggelse af fejl

      Hvis din array-konstant ikke fungerer korrekt, skal du kontrollere, om der er følgende problemer:

      • Afgræns elementerne i din arraykonstant med det rigtige tegn - komma i horisontale arraykonstanter og semikolon i vertikale.
      • Vælg et område af celler, der nøjagtigt svarer til antallet af elementer i din arraykonstant. Hvis du vælger flere celler, vil hver ekstra celle have fejlen #N/A. Hvis du vælger færre celler, vil kun en del af arrayet blive indsat.

    Brug af arraykonstanter i Excel-formler

    Nu hvor du er bekendt med begrebet arraykonstanter, skal vi se, hvordan du kan bruge arrays informularer til at løse dine praktiske opgaver.

    Eksempel 1. Sum N største/småste tal i et interval

    Du starter med at oprette en lodret arraykonstant, der indeholder så mange tal, som du ønsker at summere. Hvis du f.eks. ønsker at addere 3 mindste eller største tal i et interval, er arraykonstanten {1,2,3}.

    Derefter tager du enten LARGE- eller SMALL-funktionen, angiver hele området af celler i den første parameter og inkluderer arraykonstanten i den anden. Til sidst indlejrer du den i SUM-funktionen, som her:

    Læg de 3 største tal sammen: =SUM(LARGE(range, {1,2,3}))

    Læg de 3 mindste tal sammen: =SUM(SMALL(interval, {1,2,3}))

    Glem ikke at trykke på Ctrl + Shift + Enter, da du indtaster en array-formel, og du vil få følgende resultat:

    På samme måde kan du beregne gennemsnittet af de N mindste eller største værdier i et område:

    Gennemsnit af de 3 øverste tal: =MIDTAL(LARGE(range, {1,2,3}))

    Gennemsnit af de 3 nederste tal: =MIDTAL(SMALL(interval, {1,2,3}))

    Eksempel 2. Array-formel til at tælle celler med flere betingelser

    Antag, at du har en liste over ordrer, og at du vil vide, hvor mange gange en given sælger har solgt bestemte produkter.

    Den nemmeste måde er at bruge en COUNTIFS-formel med flere betingelser. Hvis du vil medtage mange produkter, kan din COUNTIFS-formel imidlertid blive for stor. For at gøre den mere kompakt kan du bruge COUNTIFS sammen med SUM og f.eks. medtage en arraykonstant i et eller flere argumenter:

    =SUM(COUNTIFS(range1, "criteria1", range2, {"criteria1", "criteria2"}))

    Den rigtige formel kan se således ud:

    =SUM(COUNTIFS(B2:B9, "sally", C2:C9, {"æbler", "citroner"}))

    Vores eksempel på et array består kun af to elementer, da målet er at demonstrere fremgangsmåden. I dine rigtige array-formler kan du medtage så mange elementer, som din forretningslogik kræver, forudsat at den samlede længde af formlen ikke overstiger 8.192 tegn i Excel 2019-2007 (1.024 tegn i Excel 2003 og lavere), og at din computer er kraftig nok til at behandle store arrays.se begrænsningerne for arrayformler for at få flere oplysninger.

    Og her er et eksempel på en avanceret array-formel, der finder summen af alle matchende værdier i en tabel: SUM og VLOOKUP med en array-konstant.

    AND- og OR-operatorer i Excel-formler i arrayformler

    En array-operator fortæller formlen, hvordan du ønsker at behandle arrays - ved hjælp af AND- eller OR-logik.

    • AND-operatoren er asterisk (*), som er et multiplikationssymbol, og som giver Excel besked om at returnere TRUE, hvis ALLE betingelser giver TRUE.
    • OR-operatoren er plus-tegnet (+). Den returnerer TRUE, hvis EN eller flere af betingelserne i et givet udtryk evalueres til TRUE.

    Array-formel med AND-operatoren

    I dette eksempel finder vi summen af det salg, hvor sælgeren er Mike OG produktet er Æbler :

    =SUM((A2:A9="Mike") * (B2:B9="Æbler") * (C2:C9))

    Eller

    =SUM(IF((((A2:A9="Mike") * (B2:B9="Æbler")), (C2:C9)))

    Teknisk set multiplicerer denne formel elementerne i de tre arrays i de samme positioner. De to første arrays repræsenteres af værdierne TRUE og FALSE, som er resultatet af sammenligningen af A2:A9 med Mike" og B2:B9 med "Æbler". Det tredje array indeholder salgstallene fra intervallet C2:C9. Som enhver matematisk operation konverterer multiplikation TRUE og FALSE til henholdsvis 1 og 0. Og fordiMultiplikation med 0 giver altid nul, og det resulterende array har 0, hvis en af eller begge betingelser ikke er opfyldt. Hvis begge betingelser er opfyldt, kommer det tilsvarende element fra det tredje array ind i det endelige array (f.eks. 1*1*C2 = 10). Resultatet af multiplikationen er altså dette array: {10;0;0;0;0;30;0;0;0;0;0;0;0}. Endelig summerer funktionen SUM arrayets elementer og giver et resultat på 40.

    Excel array-formel med OR-operatoren

    Følgende array-formel med OR-operatoren (+) lægger alle salg sammen, hvor sælgeren er Mike OR produktet er Æbler:

    =SUM(IF((((A2:A9="Mike") + (B2:B9="Æbler")), (C2:C9)))

    I denne formel adderer du elementerne i de to første arrays (som er de betingelser, du vil teste) og får TRUE (>0), hvis mindst én betingelse er TRUE; FALSE (0), når alle betingelser er FALSE. Derefter kontrollerer IF, om resultatet af additionen er større end 0, og hvis det er tilfældet, adderer SUM et tilsvarende element i det tredje array (C2:C9).

    Tip. I moderne versioner af Excel er der ingen grund til at bruge en array-formel til denne slags opgaver - en simpel SUMIFS-formel klarer dem perfekt. Ikke desto mindre kan AND- og OR-operatorerne i array-formler vise sig nyttige i mere komplekse scenarier, for slet ikke at tale om en meget god tankegymnastik : )

    Dobbelt unær operatør i Excel-formler i arrayformler

    Hvis du nogensinde har arbejdet med array-formler i Excel, er der stor sandsynlighed for, at du er stødt på nogle få formler, der indeholder en dobbelt streg (--), og du har måske undret dig over, hvad den blev brugt til.

    En dobbelt streg, som teknisk set kaldes en dobbelt unær operatør, bruges til at konvertere ikke-numeriske boolske værdier (TRUE / FALSE), der returneres af visse udtryk, til 1 og 0, som en array-funktion kan forstå.

    Følgende eksempel vil forhåbentlig gøre det lettere at forstå: Antag, at du har en liste med datoer i kolonne A, og at du vil vide, hvor mange datoer der forekommer i januar, uanset årstal.

    Følgende formel vil fungere godt:

    =SUM(--(MONTH(A2:A10)=1))

    Da dette er en Excel-formel, skal du huske at trykke på Ctrl + Shift + Enter for at fuldføre den.

    Hvis du er interesseret i en anden måned, skal du erstatte 1 med et tilsvarende tal. F.eks. står 2 for februar, 3 for marts osv. For at gøre formlen mere fleksibel kan du angive månedens nummer i en celle, som vist i skærmbilledet:

    Lad os nu analysere, hvordan denne arrayformel fungerer. Funktionen MONTH returnerer måneden for hver dato i cellerne A2 til A10 repræsenteret ved et løbenummer, som producerer arrayet {2;1;4;2;2;12;1;2;12;1}.

    Derefter sammenlignes hvert element i arrayet med værdien i celle D1, som i dette eksempel er nummer 1. Resultatet af denne sammenligning er et array af boolske værdier TRUE og FALSE. Som du husker, kan du vælge en bestemt del af en arrayformel og trykke på F9 for at se, hvad denne del svarer til:

    Til sidst skal du konvertere disse boolske værdier til 1'er og 0'er, som SUM-funktionen kan forstå. Og det er det, som den dobbelte unære operator er nødvendig til. Den første unære operator tvinger TRUE/FALSE til henholdsvis -1/0. Den anden unære operator negerer værdierne, dvs. vender fortegnet om, og gør dem til +1 og 0, som de fleste Excel-funktioner kan forstå og arbejde med. Hvis du fjerner den dobbelte unære operatorfra ovenstående formel, vil det ikke fungere.

    Jeg håber, at denne korte vejledning har været nyttig på din vej til at mestre Excel-arrayformler. I næste uge fortsætter vi med Excel-arrays ved at fokusere på avancerede formeleksempler. Bliv venligst hængende og tak for at læse!

    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.