Retningslinjer for og eksempler på matrixformler
Gælder for
Excel til Microsoft 365 Excel til Microsoft 365 til Mac Excel 2024 Excel 2024 til Mac Excel 2021 Excel 2021 til Mac Excel 2019 Excel 2016 Excel til iPad Excel til iPhone

En matrixformel er en formel, der kan udføre flere beregninger på et eller flere elementer i en matrix. Du kan tænke på en matrix som en række eller kolonne med værdier eller en kombination af rækker og kolonner med værdier. Matrixformler kan returnere enten flere resultater eller et enkelt resultat.

Fra og med opdateringen for september 2018 til Microsoft 365, overløber enhver formel, der kan returnere flere resultater, dem automatisk enten ned eller på tværs i tilstødende celler. Denne ændring i funktionsmåden ledsages også af flere nye dynamiske matrixfunktioner. Dynamiske matrixformler, uanset om de anvender eksisterende funktioner eller de dynamiske matrixfunktioner, skal kun indtastes i en enkelt celle og bekræftes derefter ved at trykke på Enter. Tidligere kræver ældre matrixformler først at vælge hele outputområdet og derefter bekræfte formlen med Ctrl+Skift+Enter. De kaldes ofte CSE-formler.

Du kan bruge matrixformler til at udføre komplekse opgaver, f.eks.:

  • Opret hurtigt eksempeldatasæt.

  • Tælle antallet af tegn i et celleområde.

  • Lægge de tal sammen, der opfylder bestemte betingelser, f.eks. de laveste værdier i et område eller tal, der ligger mellem en øvre og nedre grænse.

  • Lægge alle N'te-værdier i et område sammen.

Følgende eksempler viser, hvordan du kan oprette matrixformler med en enkelt eller flere celler. Hvor det er muligt, har vi inkluderet eksempler med nogle af de dynamiske matrixfunktioner samt eksisterende matrixformler, der er indtastet som både dynamiske og ældre matrixer.

Download vores eksempler

Download en eksempelprojektmappe med alle matrixformler i denne artikel.

I denne øvelse kan du se, hvordan du kan bruge matrixformler i en eller flere celler til at beregne nogle salgstal. På de første trin bruges en formel med flere celler til at beregne et sæt subtotaler. På de næste trin bruges en formel med én celle til at beregne en hovedtotal.

  • Matrixformel med flere celler

    Matrixfunktion for flere celler i celle H10 =F10:F19*G10:G19 til at beregne antallet af biler, der er solgt, efter enhedspris

  • Her beregner vi det samlede salg af kuponer og sedans for hver sælger ved at skrive =F10:F19*G10:G19 i celle H10.

    Når du trykker Enter, ser du resultaterne overløbe ned til cellerne H10:H19. Bemærk, at overløbsområdet fremhæves med en kant, når du markerer en celle indenfor overløbsområdet. Du har muligvis også bemærket, at formlerne i cellerne H10:H19 er nedtonet. De er der kun til reference, så hvis du vil justere formlen, skal du markere celle H10, hvor masterformlen findes.

  • Matrixformel med én celle

    Matrixformel med én celle til at beregne en hovedtotal med =SUM(F10:F19*G10:G19)

    I celle H20 i eksempelprojektmappen skal du skrive eller kopiere og indsætte =SUM(F10:F19*G10:G19) og derefter trykke på Enter.

    I dette tilfælde, multiplicerer Excel værdierne i matrixen (celleområdet F10 til og med G19), og derefter bruges funktionen SUM til at lægge totalerne sammen. Resultatet er et samlet beløb på $1.590.000 i salg.

    Dette eksempel viser, hvor effektiv denne type formel kan være. Antag f.eks., at du har 1.000 rækker med data. Du kan summere en del af eller alle disse data ved at oprette en matrixformel i en enkelt celle i stedet for at trække formlen ned gennem de 1.000 rækker. Bemærk også, at enkeltcelle-formlen i celle H20 er helt uafhængig af flercelle-formlen (formlen i cellerne H10 til og med H19). Dette er en anden fordel ved at bruge matrixformler – fleksibilitet. Du kan ændre de andre formler i kolonne H uden at påvirke formlen i H20. Det kan også være god praksis at have uafhængige totaler på denne måde, da det hjælper med at validere nøjagtigheden af dine resultater.

  • Dynamiske matrixformler har også disse fordele:

    • Konsekvens    Hvis du klikker på en af cellerne fra H10 og nedad, får du vist den samme formel. Denne konsistent kan sikre en større nøjagtighed.

    • Sikkerhed    Du kan ikke overskrive en komponent i en matrixformel med flere celler. Klik f.eks. på celle H11, og tryk på Delete. Excel ændrer ikke matrixens output. Hvis du vil ændre det, skal du markere den øverste venstre celle i matrixen eller celle H10.

    • Mindre filstørrelser    You can often use a single array formula instead of several intermediate formulas. I eksemplet med bilsalg bruges f.eks. én matrixformel til at beregne resultaterne i kolonne E. Hvis du havde brugt standardformler f.eks. =F10*G10, F11*G11, F12*G12 osv., ville du have brugt 11 forskellige formler til at beregne de samme resultater. Det er ikke noget stort problem, men hvad nu, hvis du havde tusindvis af rækker, hvor der skulle regnes en total? Så kan det gøre en stor forskel.

    • Effektivitet    Matrixfunktioner kan være en effektiv måde at bygge komplekse formler på. Matrixformlen =SUM(F10:F19*G10:G19) er den samme som denne: =SUM(F10*G10,F11*G11,F12*G12,F13*G13,F14*G14,F15*G15,F16*G16,F17*G17,F18*G18,F19*G19).

    • Overløb    Dynamiske matrixformler overløber automatisk i outputområdet. Hvis din kildedata er i en Excel-tabel, ændres størrelsen af dine dynamisk matrixformler automatisk, når du tilføjer eller fjerner data.

    • #OVERLØB! fejl    Dynamiske matrixer introducerede fejlen #SPILL!, hvilket angiver, at det tilsigtede overløbsområde af en eller anden grund er blokeret. Når du løser blokeringen, overløber formlen automatisk.

Matrixkonstanter er en komponent af matrixformler. Du kan oprette matrixkonstanter ved at oprette en liste med elementer, som du derefter manuelt angiver i klammeparenteser ({ }), f.eks.:

={1\2\3\4\5} eller ={"Januar"\"Februar"\"Marts"}

Hvis du afgrænser elementerne ved hjælp af kommaer, oprettes der en vandret matrix (en række). Hvis du afgrænser elementerne med semikolonner, opretter du en lodret matrix (en kolonne). Hvis du vil oprette en todimensional matrix, skal du afgrænse elementerne i hver række med kommaer og afgrænse hver række med semikolon.

Med de følgende procedurer får du øvelse i at oprette vandrette, lodrette og todimensionale konstanter. Vi viser eksempler, der bruger funktionen SEKVENS-funktion til automatisk at generere matrixkonstanter samt manuelt indtastede matrixkonstanter.

  • Oprette en vandret konstant

    Brug projektmappen fra de tidligere eksempler, eller opret en ny projektmappe. Markér en tom celle, og indtast =SEKVENS(1,5). Funktionen SEKVENS opbygger en matrix af typen 1 række og 5 kolonner på samme måde som ={1\2\3\4\5}. Følgende resultat vises:

    Oprette en vandret matrixkonstant med =SEKVENS(1,5) eller ={1;2;3;4;5}

  • Oprette en lodret konstant

    Markér en tom celle med plads nedenunder, og skriv =SEKVENS(5)eller ={1;2;3;4;5}. Følgende resultat vises:

    Oprette en lodret matrixkonstant med =SEKVENS(5) eller ={1;2;3;4;5}

  • Oprette en todimensional konstant

    Markér en tom celle med plads til højre og under den, og skriv =SEKVENS(3,4). Der vises følgende resultat:

    Oprette en matrixkonstant med 3 rækker og 4 kolonner med =SEKVENS(3,4)

    Du kan også skrive: eller ={1\2\3\4;5\6\7\8;9\10\11\12}, men du skal være opmærksom på, hvor du placerede semikoloner kontra kommaer.

    Som du kan se, giver indstillingen SEKVENS betydelige fordele i forhold til manuelt at indtaste matrixkonstantværdier. Primært sparer det dig tid, men det kan også reducere fejl fra manuel indtastning. Det er også nemmere at læse, især da semikolon kan være svære at skelne fra kommaseparatorer.

Her er et eksempel, der bruger matrixkonstanter som del af en større formel. I eksempelprojektmappen skal du gå til Konstant i et formelregneark eller oprette et nyt regneark.

I celle D9 indtastede vi =SEKVENS(1,5,3,1), men du kan også angive 3, 4, 5, 6 og 7 i cellerne A9:H9. Der er ikke noget særligt ved det pågældende talvalg. Vi valgte bare noget andet end 1-5 for at differentiere.

I celle E11 skal du indtaste =SUM(D9:H9*SEKVENS(1,5)) eller =SUM(D9:H9*{1\2\3\4\5}). Formlerne returnerer 85.

Brug af matrixkonstanter i formler. I dette eksempel brugte vi =SUM(D9:H(*SEKVENS(1,5))

Funktionen SEKVENS opbygger det, der svarer til matrixkonstanten {1\2\3\4\5}. Da Excel først udfører handlinger på de udtryk, der er omsluttet af parenteser, er de næste to elementer, der afspilles, celleværdierne i D9:H9 og multiplikationsoperatoren (*). På dette tidspunkt ganger formlen værdierne i den lagrede matrix med de tilsvarende værdier i konstanten. Dette svarer til:

=SUM(D9*1;E9*2;F9*3;G9*4;H9*5) eller =SUM(3*1;4*2;5*3;6*4;7*5)

Til sidst lægger funktionen SUM værdierne sammen og returnerer 85.

Hvis du vil undgå at bruge den lagrede matrix og udelukkende gemme handlingen i hukommelsen, kan du erstatte den med en anden matrixkonstant:

=SUM(SEQUENCE(1,5,3,1)*SEQUENCE(1,5))eller =SUM({3\4\5\6\7}*{1\2\3\4\5})

Elementer, du kan bruge i matrixkonstanter

  • Matrixkonstanter kan indeholde tal, tekst, logiske værdier (f.eks. SANDT og FALSK) og fejlværdier som f.eks. #N/A. Du kan bruge tal i heltals-, decimal- og videnskabelige formater. Hvis du medtager tekst, skal du omslutte den med anførselstegn ("tekst").

  • Matrixkonstanter kan ikke indeholde flere matrixer, formler eller funktioner. Det vil sige, at de kan kun indeholde tekst eller tal, der er adskilt med kommaer eller semikolonner. Excel viser en advarsel, når du skriver en formel som {1\2\A1:D4} eller {1\2\SUM(Q2:Z8)}. Desuden kan numeriske værdier ikke indeholde procenttegn, dollartegn, kommaer eller parenteser.

En af de bedste måder at bruge matrixkonstanter på er at navngive dem. Det kan være meget nemmere at bruge matrixkonstanter, der er navngivet, og navngivningen kan være med til at skjule kompleksiteten i matrixformler fra andre. Hvis du vil navngive en matrixkonstant og bruge den i en formel, skal du benytte følgende fremgangsmåde:

Gå til Formler > Definerede Navne > Definér Navn. Skriv Kvartal1 i feltet Navn. Skriv følgende konstant (husk at skrive klammeparenteserne manuelt) i feltet Refererer til:

={"Januar"\"Februar"\"Marts"}

Dialogboksen bør nu se sådan ud:

Tilføj en navngivet matrixkonstant fra Formularer > Definerede Navne > Navnestyring > Ny

Klik på OK, vælg derefter en række med tre tomme celler, og skriv =Kvartal1.

Følgende resultat vises:

Brug en navngivet matrixkonstant i en formel, f.eks. =Kvartal1, hvor Kvartal1 er blevet defineret som ={"Januar","Februar","Marts"}

Hvis du vil have, at resultaterne overløber lodret i stedet for vandret, kan du bruge =TRANSPONER(Kvartal1).

Hvis du vil have vist en liste med 12 måneder, som du måske bruger, når du opbygger en regnskabsopgørelse, kan du basere en på det aktuelle år med funktionen SEKVENS. Det smarte ved denne funktion er, at selvom kun måneden vises, er der en gyldig dato bag den, som du kan bruge i andre beregninger. Du kan finde disse eksempler i regnearkene Navngivet matrixkonstant og Eksempeldatasæt i eksempelprojektmappen.

=TEKST(DATO(ÅR(IDAG()),SEKVENS(1,12),1),"mmm")

Brug en kombination af funktionerne TEKST, DATO, ÅR, IDAG og SEKVENS til at oprette en dynamisk liste på 12 måneder

Dette bruger funktionen DATO til at oprette en dato, der er baseret på det aktuelle år, SEKVENS opretter en matrixkonstant fra 1 til 12 for januar til december, derefter konverterer funktionen TEKST visningsformatet til "mmm" (jan., feb., mar. osv.). Hvis du vil have vist det fulde månedsnavn, f.eks. januar, skal du bruge "mmmm".

Når du bruger en navngivet konstant som en matrixformel, skal du huske at angive lighedstegnet som i =Kvartal1, ikke kun Kvartal1. Hvis du ikke gør det, vil Excel fortolke matrixen som en tekststreng, og formlen vil ikke virke som forventet. Husk desuden på, at du kan bruge kombinationer af funktioner, tekst og tal. Det hele afhænger af, hvor kreativt du vil have det.

I de følgende eksempler kan du se nogle eksempler på brug af matrixkonstanter i matrixformler. Nogle af eksemplerne bruger funktionen TRANSPONER til at konvertere rækker til kolonner og omvendt.

  • Multiplicer hvert element i en matrix

    Skriv =SEKVENS(1,12)*2eller ={1\2\3\4;5\6\7\8;9\10\11\12}*2

    Du kan også dividere med (/), addere med (+) og subtrahere med (-).

  • Tag kvadratroden af elementerne i en matrix

    Skriv =SEKVENS(1,12)^2eller ={1\2\3\4;5\6\7\8;9\10\11\12}^2

  • Find kvadratroden af kvadrerede elementer i en matrix

    Angiv =SQRT(SEKVENS(1,12)^2)eller =SQRT({1\2\3\4;5\6\7\8;9\10\11\12}^2)

  • Transponer en endimensional række

    Skriv =TRANSPONER(SEKVENS(1,5))eller =TRANSPONER({1\2\3\4\5})

    Selvom du har angivet en vandret matrixkonstant, konverterer funktionen TRANSPONER matrixkonstanten til en kolonne.

  • Transponer en endimensional kolonne

    Skriv =TRANSPONER(SEKVENS(5,1))eller =TRANSPONER({1\2\3\4\5})

    Selvom du har angivet en lodret matrixkonstant, konverterer funktionen TRANSPONER matrixkonstanten til en række.

  • Transponer en todimensional konstant

    Skriv =TRANSPONER(SEKVENS(3,4))eller =TRANSPONER({1\2\3\4;5\6\7\8;9\10\11\12})

    Funktionen TRANSPONER konverterer hver række til en række kolonner.

I dette afsnit får du eksempler på grundlæggende matrixformler.

  • Opret en matrix ud fra eksisterende værdier

    I følgende eksempel forklares det, hvordan du bruger matrixformler til at oprette en ny matrix ud fra en eksisterende matrix.

    Skriv =SEKVENS(3,6,10,10) eller ={10\20\30\40\50\60;70\80\90\100\110\120;130\140\150\160\170\180}

    Sørg for at skrive { (startklammeparentes) før du skriver 10, og } (slutklammeparentes), efter at du har skrevet 180, fordi du opretter en matrix med tal.

    Skriv derefter =D9# eller =D9:I11 i en tom celle. Der vises en 3 x 6 cellematrix med de samme værdier, som du ser i D9:D11. #-tegnet kaldes operatoren for overløbssområdet, og det er Excels måde at referere til hele matrixområdet i stedet for at skulle skrive det.

    Brug den overløbne områdeoperator (#) til at referere til en eksisterende matrix

  • Opret en matrixkonstant ud fra eksisterende værdier

    Du kan tage resultaterne af en overløbet matrixformel og konverter den til dens komponentdele. Markér celle D9, og tryk derefter på F2 for at skifte til redigeringstilstand. Tryk derefter på F9 for at konvertere cellereferencerne til værdier, som Excel derefter konverterer til en matrixkonstant. Når du trykker på Enter, skulle formlen, = D9#, nu være ={10\20\30;40\50\60;70\80\90}.

  • Tæl antal tegn i et celleområde

    I følgende eksempel kan du se, hvordan du kan tælle antallet af tegn i et celleområde. Dette omfatter mellemrum.

    Tæl det samlede antal tegn i et område, og andre matrixer til at arbejde med tekststrenge

    =SUM(LÆNGDE(C9:C13))

    I dette tilfælde returnerer funktionen LÆNGDE længden af hver tekststreng i hver af cellerne i området. Funktionen SUM lægger derefter disse værdier sammen og viser resultatet (66). Hvis du vil have det gennemsnitlige antal tegn, kan du bruge:

    =MIDDEL(LÆNGDE(C9:C13))

  • Indholdet af den længste celle i området C9:C13

    =INDEX(C9:C13,SAMMENLIGN(MAKS(LÆNGDE(C9:C13)),LÆNGDE(C9:C13),0),1)

    Denne formel virker kun, når et dataområde indeholder en enkelt kolonne med celler.

    Lad os se nærmere på formlen startende fra de inderste elementer og udad. Funktionen LÆNGDE returnerer længden af hver af elementerne i celleområdet D2:D6. Funktionen MAKS beregner den største værdi blandt elementerne, hvilket svarer til den længste tekststreng, som er i celle D3.

    Nu begynder det at blive mere kompliceret. Funktionen SAMMENLIGNING beregner forskydningen (den relative placering) af den celle, der indeholder den længste tekststreng. Dette kræver tre argumenter: en opslagsværdi, en opslagsmatrix og en sammenligningstype. Funktionen SAMMENLIGNING søger efter den angivne opslagsværdi i opslagsmatrixen. I dette tilfælde er opslagsværdien den længste tekststreng:

    MAKS(LÆNGDE(C9:C13)

    og strengen findes i denne matrix:

    LÆNGDE(C9:C13)

    Argumentet for matchtype er i dette tilfælde 0. Sammenligningstypen kan være værdien 1, 0 eller -1.

    • 1 - returnerer den største værdi, der er mindre end eller lig med opslagsværdien

    • 0 - returnerer den første værdi, der er nøjagtig lig med opslagsværdien

    • -1- returnerer den mindste værdi, der er større end eller lig med den angivne opslagsværdi

    • Hvis du ikke angiver en værdi for sammenligningstypen, antager Excle, at værdien er 1.

    Til sidst accepterer funktionen INDEKS følgende argumenter: en matrix og et række‑ og kolonnenummer i matrixen. Celleområdet C9:C13 er matrixen, funktionen SAMMENLIGN er celleadressen, og det sidste argument (1) angiver, at værdien kommer fra den første kolonne i matrixen.

    Hvis du vil have indholdet af den mindste tekststreng, skal du erstatte MAKS i eksemplet ovenfor med MIN.

  • Find den n'te mindste værdi i et område

    I dette eksempel vises det, hvordan du finder de tre mindste værdier i et celleområde, hvor en matrix med eksempeldata i cellerne B9:B18 er oprettet med: =HELTAL(SLUMPMATRIX(10,1)*100). Bemærk, at SLUMPMATRIX er en flygtig funktion, så du får et nyt sæt tilfældige tal, hver gang Excel beregner.

    Matrixformel i Excel til at finde den mindste N'te-værdi: =MINDSTE(B9#,SEKVENS(D9))

    Skriv =MINDSTE(B9#,SEKVENS(D9), =MINDSTE(B9:B18,{1;2;3})

    Denne formel bruger en matrixkonstant til at evaluere funktionen MINDSTE tre gange og returnerer de mindste 3 medlemmer i matrixen i cellerne B9:B18, hvor 3 er en variabel værdi i celle D9. Hvis du vil finde flere værdier, kan du øge værdien i funktionen SEKVENS eller føje flere argumenter til konstanten. Du kan også bruge flere funktioner sammen med denne formel, f.eks. SUM eller MIDDEL. Eksempler:

    =SUM(MINDSTE(B9#,SEKVENS(D9))

    =MIDDEL(MINDSTE(B9#,SEKVENS(D9))

  • Find den n'te største værdi i et område

    Hvis du vil finde de største værdier i et område, kan du erstatte funktionen MINDSTE med funktionen STØRSTE. I det følgende eksempel bruges funktionerne RÆKKE og INDIREKTE også.

    Angiv =STØRSTE(B9#,RÆKKE(INDIREKTE("1:3"))) eller =STØRSTE(B9:B18,RÆKKE(INDIREKTE("1:3")))

    På dette tidspunkt kan det være en hjælp at kende funktionerne RÆKKE og INDIREKTE. Du kan bruge funktionen RÆKKE til at oprette en matrix med fortløbende heltal. Markér f.eks. en tom, og skriv:

    =RÆKKE(1:10)

    Formlen opretter en kolonne med 10 fortløbende heltal. Hvis du vil se et potentielt problem, skal du indsætte en række over det område, der indeholder matrixformlen (det vil sige over række 1). Excel justerer rækkereferencerne, og formlen genererer nu heltal fra 2 til 11. For at løse dette problem skal du føje funktionen INDIREKTE til formlen:

    =RÆKKE(INDIREKTE("1:10"))

    Funktionen INDIREKTE bruger tekststrenge som argumenter (hvilket er grunden til, at intervallet 1:10 er angivet i anførselstegn). Excel justerer ikke tekstværdier, når du indsætter rækker eller flytter matrixformlen. Det medfører, at funktionen RÆKKE altid opretter det ønskede interval af heltal. Du kan lige så nemt bruge SEKVENS:

    =SEKVENS(10)

    Lad os undersøge den formel, du brugte tidligere – =STØRSTE(B9#,RÆKKE(INDIREKTE("1:3"))) – startende fra de indre parenteser og udad: Funktionen INDIREKTE returnerer et sæt tekstværdier, i dette tilfælde værdierne 1 til 3. Funktionen RÆKKE genererer til gengæld en kolonnematrix med tre celler. Funktionen STØRSTE bruger værdierne i celleområdet B9:B18, og den evalueres tre gange, én gang for hver reference, der returneres af funktionen RÆKKE. Hvis du vil finde flere værdier, skal du føje et større celleområde til funktionen INDIREKTE. Som med eksemplerne på MINDSTE kan du bruge denne formel med andre funktioner, f.eks. SUM og MIDDEL.

  • Opsummer et område, der indeholder fejlværdier

    Funktionen SUM i Excel virker ikke, når du forsøger at summere et område, der indeholder en fejlværdi, f.eks. #VALUE! eller #N/A. I dette eksempel kan du se, hvordan du summerer værdierne i et område med navnet Data, der indeholder fejl:

    Brug matrixer til at håndtere fejl. F.eks. vil =SUM(HVIS(ER.FEJL(Data),"",Data) summere området med navnet Data, også selvom det indeholder fejl, f.eks. #VALUE! eller #NA!.

  • =SUM(HVIS(ER.FEJL(Data);"";Data))

    Formlen opretter en ny matrix, der indeholder de oprindelige værdier minus eventuelle fejlværdier. Startende fra de indre funktioner og udefter, søger ER.FEJL-funktionen efter fejl i celleområdet (Data). Funktionen HVIS returnerer en bestemt værdi, hvis den angivne betingelse evalueres til SAND, og en anden værdi, hvis betingelsen evalueres til FALSK. I dette tilfælde returneres der tomme strenge ("") for alle fejlværdier, da de evalueres til SAND, og den returnerer de resterende værdier fra området (Data), fordi de evalueres til FALSK (de indeholder altså ikke fejlværdier). Funktionen SUM beregner derefter totalen for den filtrerede matrix.

  • Tæl antal fejlværdier i et område

    Dette eksempel er ligesom den forrige formel, men returnerer antallet af fejlværdier i området Data i stedet for at filtrere dem fra:

    =SUM(HVIS(ER.FEJL(Data),1,0))

    Denne formel opretter en matrix, der indeholder værdien 1 for de celler, som indeholder fejl, og værdien 0 for de celler, der ikke indeholder fejl. Du kan forenkle formlen og opnå det samme resultat, hvis du fjerner det tredje argument til funktionen HVIS, som vist her:

    =SUM(HVIS(ER.FEJL(Data),1))

    Hvis du ikke angiver dette, returnerer funktionen HVIS værdien FALSK, hvis en celle ikke indeholder en fejlværdi. Det er muligt at forenkle formlen endnu mere:

    =SUM(HVIS(ER.FEJL(Data)*1))

    Denne version virker, fordi SAND*1=1 og FALSK*1=0.

Du kan få brug for at lægge værdier sammen baseret på betingelser.

Du kan bruge matrixer til at beregne ud fra bestemte betingelser. =SUM(HVIS(Salg>0,Salg)) summerer alle værdier, der er større end 0 i et område med navnet Salg.

Denne matrixformel summerer f.eks. kun positive heltal i et område med navnet Salg, som repræsenterer cellerne E9:E24 i eksemplet ovenfor:

=SUM(HVIS(Salg>0,Salg))

Funktionen HVIS opretter en matrix med positive og falske værdier. Funktionen SUM ignorerer de falske værdier, fordi 0+0=0. Det celleområde, du bruger i denne formel, kan bestå af et vilkårligt antal rækker og kolonner.

Du kan også lægge værdier sammen, der opfylder mere end én betingelse. Denne matrixformel beregner f.eks. værdier, der er større end 0 OG mindre end 2500:

=SUM((Salg>0)*(Salg<2500)*(Salg))

Husk på, at denne formel returnerer en fejl, hvis området indeholder en eller flere celler, som ikke indeholder tal.

Du kan også oprette matrixformler, der bruger en type af ELLER-betingelse. Du kan f.eks. summere værdier, der er større end 0 ELLER mindre end 2500:

=SUM(HVIS((Salg>0)+(Salg<2500),Salg))

Du kan ikke bruge funktionerne OG og ELLER direkte i matrixformler, fordi disse funktioner returnerer et enkelt resultat, enten SANDT eller FALSK, og matrixfunktioner kræver matrixer med resultater. Du kan omgå problemet ved at bruge den logik, der er vist i den forrige formel. Med andre ord udfører du matematiske handlinger, f.eks. addition eller multiplikation på værdier, der opfylder ELLER- eller OG-betingelsen.

I dette eksempel kan du se, hvordan du kan fjerne nulværdier fra et område, når du skal finde middelværdien af værdierne i området. Formlen bruger et dataområde med navnet Salg:

=MIDDEL(HVIS(Salg<>0;Salg))

Funktionen HVIS opretter en matrix med de værdier, der ikke er lig med 0, og den overfører derefter disse værdier til funktionen MIDDEL.

This array formula compares the values in two ranges of cells named MyData and YourData and returns the number of differences between the two. If the contents of the two ranges are identical, the formula returns 0. Hvis du vil bruge denne formel, skal celleområdet have samme størrelse og dimension. Hvis MineData f.eks. er et område på 3 rækker gange 5 kolonner, skal DineData også være 3 rækker gange 5 kolonner:

=SUM(HVIS(MineData=DineData,0,1))

Formlen opretter en ny matrix med samme størrelse som de områder, du sammenligner. Funktionen HVIS udfylder matrixen med værdien 0 og værdien 1 (0 for forskellige celler og 1 for identiske celler). Funktionen SUM returnerer derefter summen af værdierne i matrixen.

Du kan forenkle formlen på denne måde:

=SUM(1*(MineData<>DineData))

På samme måde som den formel, der tæller antal fejlværdier i et område, virker denne formel, fordi SAND*1=1 og FALSK*1=0.

Denne matrixformel returnerer rækkenummeret for den største værdi i området Data, som består af én kolonne:

=MIN(HVIS(Data=MAKS(Data);RÆKKE(Data);""))

Funktionen HVIS opretter en ny matrix, der svarer til området Data. Hvis en tilsvarende celle indeholder den største værdi i området, indeholder matrixen rækkenummeret. Ellers indeholder matrixen en tom streng (""). Funktionen MIN bruger den nye matrix som det andet argument og returnerer den mindste værdi, hvilket svarer til rækkenummeret med den største værdi i Data. Hvis den største værdi i området Data findes i flere celler, returnerer formlen den række, som indeholder den første forekomst af værdien.

Hvis du vil returnere den faktiske celleadresse for den største værdi, skal du bruge denne formel:

=ADRESSE(MIN(HVIS(Data=MAKS(Data);RÆKKE(Data);""));KOLONNE(Data))

Du finder lignende eksempler i eksempelprojektmappen på siden Forskelle mellem datasæt regnearket.

Bekræftelse

Dele af denne artikel er baseret på en række af Excel Power User-kolonner skrevet af Colin Wilcox, og tilpasset fra kapitel 14 og 15 af Excel 2002 Formulas, en bog skrevet af John Walkenbach, en tidligere Excel MVP.

Har du brug for mere hjælp?

Du kan altid spørge en ekspert i Excel Tech Community eller få support i community'er.

Se også

Dynamiske matrixer og funktionsmåde for overløbsmatrix

Dynamiske matrixformler vs. ældre CSE-matrixformler

Funktionen FILTRER

Funktionen SLUMPMATRIX

Funktionen SEKVENS

Funktionen SORTER

Funktionen SORTER.EFTER

Funktionen ENTYDIGE

Fejl med #OVERLØB! i Excel

Operator for implicit skæringspunkt: @

Oversigt over formler

Har du brug for mere hjælp?

Vil du have flere indstillinger?

Udforsk abonnementsfordele, gennemse kurser, få mere at vide om, hvordan du sikrer din enhed og meget mere.