Riktlinjer för och exempel på matrisformler
Gäller för
Excel för Microsoft 365 Excel för Microsoft 365 för Mac Excel 2024 Excel 2024 för Mac Excel 2021 Excel 2021 för Mac Excel 2019 Excel 2016 Excel för iPad Excel för iPhone

En matrisformel är en formel som kan användas för olika beräkningar med ett eller flera element i en matris. En matris är en rad eller en kolumn, eller en kombination av flera rader och kolumner med värden. Matrisformler kan returnera antingen flera resultat eller ett enstaka resultat.

Från och med uppdateringen för september 2018 för Microsoft 365kommer alla formler som kan returnera flera resultat automatiskt att spilla dem antingen nedåt eller över till närliggande celler. Den här beteendeändringen åtföljs också av flera dynamiska matrisfunktioner. Dynamiska matrisformel, oavsett om de använder befintliga funktioner eller de dynamiska matrisfunktionerna, behöver bara matas in i en enda cell och sedan bekräftas genom att trycka på RETUR. Tidigare måste äldre matrisformel först markera hela utdataområdet och sedan bekräfta formeln med Ctrl + Skift + Retur. De kallas ofta för CSE-formler.

Du kan använda matrisformler för komplexa beräkningar, till exempel:

  • Skapa snabbt exempeldatamängder.

  • Räkna antalet tecken som finns i ett cellområde.

  • Summera enbart tal som uppfyller vissa villkor, till exempel de lägsta värdena i ett sifferintervall som faller inom en övre och en nedre gräns.

  • Summera var N:e värde i en rad med värden.

Följande exempel visar hur du skapar flercells- och encellsmatrisformler. Om möjligt har vi lagt till exempel med några av de dynamiska matrisfunktionerna och befintliga matrisformel som angetts som både dynamiska och äldre matriser.

Hämta våra exempel

Hämta en exempelarbetsbok som innehåller alla matrisformel från den här artikeln.

I den här övningen lär du dig att använda flercells- och encellsmatrisformler för att beräkna en uppsättning försäljningssiffror. I de första stegen används en flercellsformel för att räkna ut delsummor. I den andra delen används en encellsformel för att räkna ut en totalsumma.

  • Flercellsmatrisformel

    Matrisfunktionen med flera celler i cell H10 =F10:F19*G10:G19 för att beräkna antalet bilar som sålts per enhetspris

  • Här beräknar vi den totala försäljningen av coupè och sedan för varje säljare genom att ange =F10:F19*G10:G19 i cell H10.

    När du trycker på Returså spills resultatet ned till cellerna H10:H19. Lägg märke till att spillområde är markerat med en kantlinje när du markerar en cell i spillområdet. Du kanske också märker att formlerna i cellerna H10:H19 är nedtonade. De finns bara där som referens, så om du vill justera formeln måste du markera cell H10, där huvudformeln finns.

  • Encellsmatrisformel

    Encellmatrisformel som beräknar en totalsumma med =SUMMA(F10:F19*G10:G19)

    Skriv eller kopiera och klistra =SUMMA(F10:F19*G10:G19) i cell H20 i exempelarbetsboken och tryck sedan påRETUR.

    I det här fallet multipliceras värdena i matrisen (cellområdet F10 till G19) i Excel och sedan används funktionen SUMMA för att räkna ihop totalsumman. Resultatet blir en totalsumma på 1 590 000 $ i försäljning.

    I det här exemplet kan du se hur effektiv den här typen av formel kan vara. Tänk dig till exempel att du har 1 000 rader med data. Du kan summera delar av eller hela den här informationsmängden genom att skapa en matrisformel i en enda cell, i stället för att dra formeln ned över alla 1 000 raderna. Lägg också märke till att encellsformeln i cell h20 är helt fristående från flercellsformeln (formeln i cell H10 till H19). Det här är en annan fördel med att använda matrisformler – flexibilitet. Du kan ändra formlerna i kolumn H eller ta bort den kolumnen helt och hållet, utan att formeln i cell H20 påverkas. Det kan också vara bra att ha oberoende summor så här, eftersom det hjälper till att verifiera korrektheten i resultatet.

  • Dynamiska matrisformler har dessutom följande fördelar:

    • Konsekvens    Om du klickar i några celler nedanför H10 kan du se att samma formel används. Med konsekvens blir resultatet också mer korrekt.

    • Säkerhet    Du kan inte skriva över en komponent i en flercellsmatrisformel. Klicka till exempel på cell H11 och tryck på Delete. Excel ändrar inte matrisens utdata. Om du vill ändra den måste du markera cellen längst upp till vänster i matrisen, eller cell H10.

    • Mindre filstorlekar    Ofta kan du använda en enda matrisformel i stället för flera delformler. Exemplet med bilförsäljningen använder till exempel en matrisformel för att beräkna resultaten i kolumn E. Om du använt standardformel som =F10*G10, F11*G11, F12*G12 osv. skulle du ha använt 11 olika formler för att beräkna samma resultat. Det är inget större problem, men tänk om du hade tusentals rader att summera? Det kan göra stor skillnad.

    • Effektivitet    Matrisfunktioner kan vara ett effektivt sätt att skapa komplexa formler. Matrisformeln =SUMMA(F10:F19*G10:G19) är densamma som den här: =SUMMA(F10*G10;F11*G11;F12*G12;F13*G13;F14*G14;F15*G15;F16*G16;F17*G17;F18*G18;F19*G19).

    • Spilla    Dynamiska matrisformel kommer automatiskt att spilla in i utdataområdet. Om dina understödjande data finns i en Excel-tabell ändras storleken på matrisen automatiskt när du lägger till eller tar bort data från matrisområdet om du använder strukturerade referenser.

    • #SPILL! Fel    Dynamiska matriser introducerade #SPILL! Fel, vilket anger att det avsedda spillområdet av någon anledning är blockerat. När du löser blockeringen spills formeln automatiskt.

Matriskonstanter är komponenter i matrisformler. Du skapar en matriskonstant genom att ange en lista över element och sedan manuellt omge listan med klammerparenteser ({ }), på det här sättet:

={1\2\3\4\5} eller ={"Januari"\"Februari"\"Mars"}

Om du avgränsar elementen med kommatecken skapar du en vågrät matris (en rad). Om du avgränsar elementen med semikolon skapar du en lodrät matris (en kolumn). Om du vill skapa en tvådimensionell matris avgränsar du elementen på varje rad med kommatecken och varje rad med semikolon.

I procedurerna nedan får du öva dig på att skapa vågräta, lodräta och tvådimensionella konstanter. Vi visar exempel med hjälp av funktionen SEKVENS för att automatiskt generera matriskonstanterna, samt manuellt angivna matriskonstanterna.

  • Skapa en vågrät konstant

    Använd arbetsboken från tidigare exempel eller skapa en ny arbetsbok. Markera en tom cell och ange =SEKVENS(1,5). Funktionen SEKVENS skapar en matris på 1 rad och 5 KOLUMNER, samma som ={1\2\3\4\5}. Följande resultat visas:

    Skapa en vågrät matriskonstant med =SEKVENS(1,5) eller ={1;2;3;4;5}

  • Skapa en lodrät konstant

    Markera en tom cell med rum under och ange =SEKVENS(5)eller ={1;2;3;4;5}. Följande resultat visas:

    Skapa en vertikal matriskonstant med =SEKVENS(5) eller ={1;2;3;4;5}

  • Skapa en tvådimensionell konstant

    Markera en tom cell med rum till höger och under den och ange =SEKVENS(3,4). Följande resultat visas:

    Skapa en matriskonstant med 3 rader och 4 kolumner med =SEKVENS(3;4)

    Du kan också ange: eller ={1\2\3\4;5\6\7\8;9\10\11\12}, men var uppmärksam på var du lägger semikolon kontra kommatecken.

    Som du ser har alternativet SEKVENS betydande fördelar jämfört med att ange matriskonstantvärden manuellt. Det sparar främst tid, men det kan också minska fel vid manuell inmatning. Det är också lättare att läsa, särskilt eftersom semikolon kan vara svåra att skilja från kommaavgränsare.

Här är ett exempel som använder matriskonstanterna som en del av en större formel. I exempelarbetsboken går du till exempel konstant i en formel -kalkylblad, eller skapar ett nytt kalkylblad.

I cell D9 angav vi =SEKVENS(1,5,3,1), men du kan också ange 3, 4, 5, 6 och 7 i cellerna A9:H9. Det är inget särskilt med just det nummervalet. Vi valde bara något annat än 1–5 för att differentiera.

I cell E11 anger du =SUMMA(D9:H9*SEKVENS(1,5))eller =SUMMA(D9:H9*{1\2\3\4\5}). Formlerna returnerar 85.

Använda matriskonstanter i formler. I det här exemplet använde vi =SUMMA(D9:H(*SEKVENS(1;5))

Funktionen SEKVENS skapar motsvarigheten till matriskonstanten {1\2\3\4\5}. Eftersom åtgärder utförs på uttryck som omges av parenteser först blir de nästa två elementen som kommer in i ekvationen de cellvärden i (D9:H9) och operatorn (*). I det här läget multipliceras värdena i den sparade matrisen med de motsvarande värdena i konstanten. Det motsvarar:

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

Slutligen summeras värdena med funktionen SUMMA och returnerar 85.

För att undvika att använda den sparade matrisen och för att spara åtgärden helt och hållet i minnet kan du ersätta den sparade matrisen med en annan matriskonstant:

=SUMMA(SEKVENS(1;5;3;1)*SEKVENS(1;5))eller =SUMMA({3\4\5\6\7}*{1\2\3\4\5})

Element som du kan använda i matriskonstanter

  • Matriskonstanterna kan innehålla tal, text, logiska värden (t.ex. SANT och FALSKT) och felvärden som #N/A. Du kan använda heltal, decimaltal och tal i exponentialform. Om du använder text måste du omge med dubbla citattecken ("text”).

  • Matriskonstanter kan inte innehålla ytterligare matriser, formler eller funktioner. Med andra ord: de kan endast innehålla text eller tal som separeras av semikolon eller omvänt snedstreck. I Excel visas ett varningsmeddelande när du anger en formel, till exempel {1\2\A1:D4} eller {1\2\SUMMA(Q2:Z8)}. Numeriska värden kan inte innehålla procenttecken, dollartecken, punkter eller parenteser.

Ett av de bästa sätten att använda matriskonstanter är att namnge dem. Namngivna konstanter kan vara mycket enklare att använda och namnet kan dölja lite av komplexiteten med matrisformlerna för andra användare. Så här gör du när du vill namnge en matriskonstant och använda den i en formel:

Gå till Formler > Definierade namn > Använd namn. I rutan Namn skriver du Kvartal1. Ange följande konstant i rutan Refererar till (kom ihåg att skriva in klammerparenteserna manuellt):

={”Januari”\”Februari”\”Mars”}

Dialogrutan bör nu se ut så här:

Lägga till en namngiven matriskonstant från Formler > Definierade namn > Namnhanteraren > Nytt

Klicka på OK, markera valfri rad med tre tomma celler och ange =Kvartal1.

Följande resultat visas:

Använd en namngiven matriskonstant i en formel, t.ex. =Kvartal1, där Kvartal1 har definierats som ={"januari";"februari";"mars"}

Om du vill att resultatet ska spilla lodrätt i stället för vågrätt kan du använda =TRANSPONERA(Kvartal1).

Om du vill visa en lista med 12 månader, som du kanske använder när du skapar en ekonomiräkning, kan du basera en av dem på det aktuella året med funktionen SEKVENS. Det bästa med den här funktionen är att även om bara månaden visas finns det ett giltigt datum bakom sig som du kan använda i andra beräkningar. Du hittar de här exemplen på exempeldatauppsättningen Namngiven matriskonstant och Exempeldatauppsättningen i kalkylblad i exempelarbetsboken.

=TEXT(DATUM(ÅR(IDAG()),SEKVENS(1,12),1),"mmm")

Använd en kombination av funktionerna TEXT, DATUM, ÅR, IDAG och SEKVENS för att skapa en dynamisk lista med 12 månader

Då används funktionen DATUM för att skapa ett datum baserat på det aktuella året, SEKVENS skapar en matriskonstant från 1 till 12 för januari till december och sedan konverterar funktionen TEXT visningsformatet till "mmm" (januari, februari, mars osv.). Om du vill visa det fullständiga månadsnamnet, till exempel januari, använder du "mmmm".

När du använder en namngiven konstant som en matrisformel ska du komma ihåg att ange likhetstecknet, som i =Kvartal1, inte bara Kvartal1. Om du inte gör det tolkas matrisen som en textsträng och formeln fungerar inte som avsett. Kom också ihåg att du kan använda kombinationer av funktioner, text och tal. Det beror på hur kreativ du vill vara.

I exemplen nedan visas några sätt som du kan använda matriskonstanter i matrisformler. I vissa exempel används funktionen TRANSPONERA för att konvertera rader till kolumner och tvärtom.

  • Multiplicera alla element i en matris

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

    Du kan också dividera med (/), addera med (+) och subtrahera med (-).

  • Upphöja elementen i en matris i kvadrat

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

  • Hitta kvadratroten av kvadratobjekt i en matris

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

  • Transponera en endimensionell rad

    Ange =TRANSPONERA(SEKVENS(1,5))eller =TRANSPONERA({1\2\3\4\5})

    Även om du angav en vågrät matriskonstant konverteras matriskonstanten till en kolumn med funktionen TRANSPONERA.

  • Transponera en endimensionell kolumn

    Ange =TRANSPONERA(SEKVENS(5,1))eller =TRANSPONERA({1\2\3\4\5})

    Även om du angav en lodrät matriskonstant konverteras konstanten till en rad med funktionen TRANSPONERA.

  • Transponera en tvådimensionell konstant

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

    Med funktionen TRANSPONERA konverteras varje rad till en serie kolumner.

Det här avsnittet innehåller exempel på grundläggande matrisformler.

  • Skapa en matris från befintliga värden

    I följande exempel förklaras hur du använder matrisformel för att skapa en ny matris från en befintlig matris.

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

    Glöm inte att ange { (vänster klammerparentes) innan du anger 10 och } (höger klammerparentes) efter att du anger 180 eftersom du skapar en matris med tal.

    Ange sedan =D9#eller =D9:I11 i en tom cell. En 3 x 6 cellmatris visas med samma värden som i D9:D11. #-tecknet kallas för spilltområdesoperator, och det är Excels sätt att referera till hela matrisområdet i stället för att behöva skriva det.

    Använd den spillda områdesoperatorn (#) till att referera till en befintlig matris

  • Skapa en matriskonstant från befintliga värden

    Du kan ta resultatet av en spilld matrisformel och konvertera den till dess komponentdelar. Markera cell D9 och tryck sedan på F2 om du vill växla till redigeringsläge. Tryck sedan på F9 om du vill konvertera cellreferenser till värden, som Excel sedan konverterar till en matriskonstant. När du trycker på RETRU, ska formeln = D9# nu vara ={10\20\30;40\50\60;70\80\90}.

  • Räkna tecken i ett cellområde

    I följande exempel visas hur du räknar antalet tecken i ett cellområde. Det omfattar blanksteg.

    Räkna det totala antalet tecken i ett område och andra matriser för att arbeta med textsträngar

    =SUMMA(LÄNGD(C9:C13))

    I det här fallet returnerar funktionen LÄNGD längden på varje textsträng i var och en av cellerna i området. Sedan adderas dessa värden med funktionen SUMMA och resultatet (66) visas. Om du vill ha genomsnittligt antal tecken kan du använda:

    =MEDEL(LÄNGD(C9:C13))

  • Innehållet i den längsta cellen i cellområdet C9:C13

    =INDEX(C9:C13,MATCH(MAX(LEN(C9:C13)),LEN(C9:C13),0),1)

    Formeln fungerar endast när ett dataområde innehåller en enda cellkolumn.

    Vi tittar närmare på formeln, med början från inre element och arbetar utåt. Funktionen LÄNGD returnerar längden på varje post i cellområdet D2:D6. Funktionen MAX beräknar det största värdet bland dessa element, som motsvarar den längsta textsträngen, som finns i cell D3.

    Det är nu det börjar bli komplicerat. Med funktionen PASSA beräknas adressen (den relativa positionen) för den cell som innehåller den längsta textsträngen. För detta behövs tre argument: ett sökvärde, en sökmatris och en passningstyp. Funktionen PASSA söker efter sökvärdet i sökmatrisen. I det här fallet är sökvärdet den längsta textsträngen:

    MAX(LÄNGD(C9:C13)

    och den strängen finns i den här matrisen:

    LÄNGD(C9:C13)

    Matchningsargumentet i det här fallet är 0. Passningstypen kan vara värdet 1, 0 eller -1.

    • 1 - returnerar det högsta värdet som är lägre än eller lika med sökvärdet

    • 0 - returnerar det första värdet som är exakt lika med sökvärdet.

    • 1 - returnerar det lägsta värdet som är högre än eller lika med det angivna sökvärdet.

    • Om du utelämnar passningstypen används 1 som standard.

    Slutligen används de här argumenten av funktionen INDEX: en matris samt ett värde som anger rad och kolumn inom den matrisen. Cellområdet C9:C13 står för matrisen, funktionen PASSA står för celladressen och det sista argumentet (1) anger att värdet kommer från den första kolumnen i matrisen.

    Om du vill få fram innehållet i den minsta textsträngen ersätter du MAX i exemplet ovan med MIN.

  • Hitta de n lägsta värdena i ett område

    Det här exemplet visar hur du hittar de tre minsta värdena i ett cellområde, där en matris med exempeldata i cellerna B9:B18 har skapats med: =HELTA(SLUMPARRAY(10;1)*100). Observera att SLUMPMATRIS är en beräkningsbarfunktion, så du får en ny uppsättning slumptal varje gång Excel beräknar.

    Excel-matrisformel för att hitta det n:e minsta värdet: =MINSTA(B9#,SEKVENS(D9))

    Ange =LITEN(B9#;SEKVENS(D9), =LITEN(B9:B18,{1\2\3})

    Den här formeln använder en matriskonstant för att utvärdera funktionen MINSTA tre gånger och returnera de minsta 3 medlemmarna i matrisen som finns i cellerna B9:B18, där 3 är ett variabelvärde i cell D9. Om du vill hitta fler värden kan du öka värdet i funktionen SEKVENS eller lägga till fler argument till konstanten. Du kan också använda ytterligare funktioner med den här formeln, till exempel SUMMA eller MEDEL. Till exempel:

    =SUMMA(LITEN(B9#;SEKVENS(D9))

    =MEDEL(LITEN(B9#;SEKVENS(D9))

  • Hitta de n högsta värdena i ett område

    Om du vill hitta de högsta värdena i ett område kan du ersätta funktionen MINSTA med funktionen STÖRSTA. Dessutom används funktionerna RAD och INDIREKT i exemplet nedan.

    Ange =STOR(B9#;RAD(INDIREKT("1:3")))eller =STOR(B9:B18;RAD(INDIREKT("1:3")))

    I det här läget kan det vara bra att känna till lite grann om funktionerna RAD och INDIREKT. Du kan använda funktionen RAD när du vill skapa en matris med upprepade heltal. Välj t.ex. en tom och ange:

    =RAD(1:10)

    Formeln skapar en kolumn med tio heltal i följd. Om du vill se ett potentiellt problem infogar du en rad ovanför området som innehåller matrisformeln (d.v.s. ovanför rad 1). Radreferenserna justeras i Excel och formeln genererar nu heltal från 2 till 11. Du kan åtgärda problemet genom att lägga till funktionen INDIREKT i formeln:

    =RAD(INDIREKT("1:10"))

    I funktionen INDIREKT används textsträngar som argument (vilket är anledningen till att området 1:10 omges av citattecken). Textvärden justeras inte när du infogar rader eller flyttar matrisformeln på något annat sätt. Resultatet blir att funktionen RAD alltid genererar den matris med heltal som du vill ha. Det är lika enkelt att använda SEKVENS:

    =SEKVENS(10)

    Vi tar en titt på formeln som du använde tidigare –=STÖRSTA(B9#;RAD(INDIREKT("1:3"))) – med början från den inre parentesen och arbetar utåt: Funktionen INDIREKT returnerar en uppsättning textvärden, i det här fallet värdena 1 till 3. Funktionen RAD genererar i sin tur en kolumnmatris med tre celler. Funktionen STOR använder värdena i cellområdet B9:B18 och utvärderas tre gånger, en gång för varje referens som returneras av funktionen RAD. Om du vill hitta fler värden lägger du till ett större cellområde i funktionen INDIREKT. Slutligen kan du, som med exemplen på SMÅ, använda den här formeln med andra funktioner, till exempel SUMMA och MEDEL.

  • Summera ett område som innehåller felvärden

    Funktionen SUMMA i Excel fungerar inte när du försöker summera ett område som innehåller ett felvärde, till exempel #VÄRDE! eller #EJ TILLÄMPLIG. I det här exemplet får du veta hur du summerar värdena i ett område med namnet Data som innehåller fel:

    Använd matriser för att hantera fel. Exempel: =SUMMA(OM(ÄRFEL(Data),",",Data) summerar området med namnet Data även om det innehåller fel, t.ex. #VALUE! eller #NA!.

  • =SUMMA(OM(ÄRFEL(Data),"",Data))

    Formeln skapar en ny matris som innehåller de ursprungliga värdena minus eventuella felvärden. Om vi börjar från de innersta funktionerna och jobbar oss utåt söker funktionen ÄRFEL efter fel i cellområdet (Data). Funktionen OM returnerar ett visst värde om ett villkor som du anger valideras som SANT och ett annat värde om det valideras till FALSKT. I det här fallet returneras tomma strängar ("") för alla felvärden eftersom de valideras till SANT, och de återstående värdena från området (Data) returneras, eftersom de valideras till FALSKT, vilket innebär att de inte innehåller felvärden. Funktionen SUMMA räknar sedan ut totalsumman för den filtrerade matrisen.

  • Räkna antalet felvärden i ett område

    Det här exemplet påminner om formeln ovan, men den returnerar antalet felvärden i ett område med namnet Data i stället för att filtrera ut dem:

    =SUMMA(OM(ÄRFEL(Data),1,0))

    Den här formeln skapar en matris som innehåller värdet 1 för de celler som innehåller fel och värdet 0 för celler som inte innehåller fel. Du kan förenkla formeln och få samma resultat genom att ta bort det tredje argumentet till funktionen OM, på det här sättet:

    =SUMMA(OM(ÄRFEL(Data),1))

    Om du inte anger argumentet returnerar funktionen IF värdet FALSKT om en cell inte innehåller ett felaktigt värde. Du kan förenkla formeln ännu mer:

    =SUMMA(OM(ÄRFEL(Data)*1))

    Den här varianten fungerar eftersom SANT*1=1 och FALSKT*1=0.

I vissa situationer kan du behöva summera värden baserat på villkor.

Du kan använda matriser för beräkning baserat på vissa villkor. =SUMMA(OM(Försäljning>0;Försäljning)) summerar alla värden som är större än 0 i ett område med namnet Försäljning.

Den här matrisformeln summerar exempelvis bara de positiva heltalen i ett område som heter Försäljning, som representerar cellerna E9:E24 i exemplet ovan:

=SUMMA(OM(Försäljning>0,Försäljning))

Funktionen OM skapar en matris med positiva och falska värden. Funktionen SUMMA ignorerar praktiskt taget de falska värdena eftersom 0+0=0. Cellområdet som du använder i den här formeln kan bestå av vilket antal rader och kolumner som helst.

Du kan också summera värden som uppfyller fler än ett villkor. Den här matrisformeln beräknar till exempel värden som är större än 0 OCH mindre än 2500:

=SUMMA((försäljning>0)*(försäljning<2500)*(försäljning))

Kom ihåg att den här formeln returnerar ett fel om området innehåller en eller flera celler som inte innehåller tal.

Du kan också skapa matrisformler som använder ett slags ELLER-villkor. Du kan till exempel summera värden som är större än 0 ELLER som är mindre än 2500:

=SUMMA(OM((Försäljning>0)+(Försäljning<2500),Försäljning))

Det går inte att använda funktionerna OCHoch ELLER direkt i matrisformler eftersom dessa funktioner returnerar ett enda resultat, antingen SANT eller FALSKT, och matrisfunktionerna kräver resultatmatriser. Du kan lösa problemet genom att använda den logik som visas i den föregående formeln. Med andra ord: du utför matematiska operationer, till exempel addition eller multiplikation, på värden som uppfyller villkoret ELLER eller OCH.

I det här exemplet beskrivs hur du tar bort nollvärden från ett område när du behöver räkna ut ett genomsnitt för värdena i det området. I formeln används ett dataområde med namnet Försäljning:

=MEDEL(OM(Försäljning<>0,Försäljning))

Funktionen OM skapa en matris med värden som inte är lika med 0 och lämnar sedan dessa värden vidare till funktionen MEDEL.

I den här matrisformeln jämförs värdena i två cellområden med namnen Minadata och Dinadata och antalet skillnader mellan de två returneras. Om innehållet i de två områdena är identiskt returnerar formeln 0. Om du vill använda den här formeln måste cellområdena ha samma storlek och dimension. Till exempel om MyData är ett område med 3 rader och 5 kolumner måste YourData också bestå av 3 rader och 5 kolumner:

=SUMMA(OM(Minadata=Dinadata,0,1))

Formeln skapar en ny matris i samma storlek som de områden som du jämför. Funktionen OM fyller i matrisen med värdet 0 och värdet 1 (0 för felaktiga matchningar och 1 för identiska celler). Funktionen SUMMA returnerar summan av värdena i matrisen.

Du kan förenkla formeln så här:

=SUMMA(1*(Minadata<>Dinadata))

Precis som formeln som räknar felvärden i ett område, fungerar den här formeln eftersom SANT*1=1 och FALSKT*1=0.

Den här matrisformeln returnerar radnumret för det högsta värdet i ett enkolumnsområde med namnet Data:

=MIN(OM(Data=MAX(Data);RAD(Data);""))

Funktionen OM skapar en ny matris som motsvarar området Data. Om en motsvarande cell innehåller det högsta värdet i området innehåller matrisen radnumret. I annat fall innehåller matrisen en tom sträng (""). Funktionen MIN använder den nya matrisen som sitt andra argument och returnerar det lägsta värdet, som motsvarar radnumret för det högsta värdet i området Data. Om området Data innehåller identiska högsta värden returnerar formeln raden för det första värdet.

Om du vill returnera den faktiska celladressen för ett maxvärde kan du använda den här formeln:

=ADRESS(MIN(OM(Data=MAX(Data);RAD(Data);""));KOLUMN(Data))

I exempelarbetsboken finns liknande exempel på Skillnader mellan datauppsättningar-kalkylbladet.

Bekräftelse

Delar av den här artikeln baseras på en serie Excel Power User-kolumner skrivna av Calicox, och från kapitel 14 och 15 i Excel 2002-formler, en bok skriven av John Walkenbrev, tidigare Excel MVP.

Behöver du mer hjälp?

Du kan alltid fråga en expert i Excel Tech Community eller få support i Communities.

Se även

Dynamiska matriser och beteenden för matriser och spill

Dynamiska matrisformel jämfört med äldre CSE-matrisformel

Funktionen FILTER

Funktionen SLUMPMATRIS

Funktionen SEKVENS

Funktionen SORTERA

Funktionen SORTERAEFTER

Funktionen UNIK

Felet #SPILL! i Excel

Implicit skärningspunktsoperator: @

Översikt över formler

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.