Dynamiska matriser, funktioner och formler i Excel

  • Dela Detta
Michael Brown

Tack vare den revolutionerande uppdateringen av beräkningsmotorn i Excel 365 är formlerna för matriser mycket enkla och begripliga för alla, inte bara för superanvändare. I handledningen förklaras konceptet med de nya dynamiska matriserna i Excel och det visas hur de kan göra dina kalkylblad effektivare och mycket enklare att konfigurera.

Excel-arrayformler har alltid betraktats som ett privilegium för gurus och formelexperter. Om någon säger "Det här kan göras med en arrayformel" är många användares omedelbara reaktion "Åh, finns det inget annat sätt?".

Införandet av dynamiska matriser är en efterlängtad och mycket välkommen förändring. På grund av deras förmåga att arbeta med flera värden på ett enkelt sätt, utan några tricks eller konstigheter, är formler för dynamiska matriser något som alla Excel-användare kan förstå och njuta av att skapa.

    Dynamiska matriser i Excel

    Dynamiska matriser är omställbara matriser som automatiskt beräknar och returnerar värden i flera celler baserat på en formel som skrivs in i en enda cell.

    Under mer än 30 år har Microsoft Excel genomgått många förändringar, men en sak har varit konstant - en formel, en cell. Även med traditionella matrisformler var det nödvändigt att ange en formel i varje cell där du vill att resultatet ska visas. Med dynamiska matriser är denna regel inte längre sann. Nu är alla formler som returnerar en matris av värden automatiskt överflödiga i angränsandeceller, utan att du behöver trycka på Ctrl + Shift + Enter eller göra några andra åtgärder. Med andra ord är det lika enkelt att arbeta med dynamiska matriser som att arbeta med en enskild cell.

    Låt mig illustrera konceptet med ett mycket enkelt exempel: Anta att du behöver multiplicera två grupper av tal, till exempel för att beräkna olika procentsatser.

    I Excel före dynamiska versioner fungerar formeln nedan endast för den första cellen, om du inte skriver in den i flera celler och trycker på Ctrl + Shift + Enter för att uttryckligen göra den till en matrisformel:

    =A3:A5*B2:D2

    Se nu vad som händer när samma formel används i Excel 365. Du skriver den i en enda cell (B3 i vårt fall), trycker på Enter och hela racket fylls med resultaten på en gång:

    Att fylla flera celler med en enda formel kallas för spillning , och det fyllda området av celler kallas för spillområdet.

    En viktig sak att notera är att den senaste uppdateringen inte bara är ett nytt sätt att hantera matriser i Excel. I själva verket är detta en banbrytande förändring av hela beräkningsmotorn. Med dynamiska matriser har ett gäng nya funktioner lagts till i Excel-funktionsbiblioteket och de befintliga funktionerna har börjat fungera snabbare och effektivare. Så småningom ska de nya dynamiska matriserna helt och hålletersätter de gammaldags matrisformlerna som matas in med kortkommandot Ctrl + Shift + Enter.

    Tillgänglighet till Excel dynamiska matriser

    Dynamiska matriser introducerades på Microsoft Ignite Conference 2018 och släpptes för Office 365-prenumeranter i januari 2020. För närvarande finns de tillgängliga i Microsoft 365-prenumerationer och Excel 2021.

    Dynamiska matriser stöds i dessa versioner:

    • Excel 365 för Windows
    • Excel 365 för Mac
    • Excel 2021
    • Excel 2021 för Mac
    • Excel för iPad
    • Excel för iPhone
    • Excel för Android-surfplattor
    • Excel för Android-telefoner
    • Excel för webben

    Excel dynamiska matrisfunktioner

    Som en del av den nya funktionaliteten introducerades 6 nya funktioner i Excel 365 som hanterar matriser nativt och matar ut data till ett antal celler. Utmatningen är alltid dynamisk - när det sker någon förändring i källdata uppdateras resultaten automatiskt. Därav gruppnamnet - dynamiska matrisfunktioner .

    De nya funktionerna klarar enkelt av ett antal uppgifter som traditionellt sett anses vara svåra att lösa. De kan till exempel ta bort dubbletter, extrahera och räkna unika värden, filtrera bort blanksteg, generera slumpmässiga heltal och decimaltal, sortera i stigande eller fallande ordning och mycket mer.

    Nedan hittar du en kort beskrivning av vad varje funktion gör och länkar till utförliga handledningar:

    1. UNIQUE - extraherar unika objekt från en rad celler.
    2. FILTER - filtrerar data utifrån de kriterier som du definierar.
    3. Sortera - sorterar ett antal celler efter en angiven kolumn.
    4. SORTBY - sorterar ett intervall av celler efter ett annat intervall eller en annan matris.
    5. RANDARRAY - genererar en matris med slumpmässiga tal.
    6. SEQUENCE - genererar en lista med sekventiella nummer.
    7. TEXTSPLIT - delar upp strängar med en angiven avgränsare i kolumner och/eller rader.
    8. TOCOL - konverterar en array eller ett intervall till en enda kolumn.
    9. TOROW - omvandlar ett intervall eller en matris till en enda rad.
    10. WRAPCOLS - omvandlar en rad eller kolumn till en 2D-array baserat på det angivna antalet värden per rad.
    11. WRAPROWS - omformar en rad eller kolumn till en 2D-array baserat på det angivna antalet värden per kolumn.
    12. TAKE - extraherar ett angivet antal sammanhängande rader och/eller kolumner från början eller slutet av en matris.

    Dessutom finns det två moderna ersättare för de populära Excel-funktionerna, som inte officiellt ingår i gruppen, men som utnyttjar alla fördelar med dynamiska matriser:

    XLOOKUP - är en mer kraftfull efterföljare till VLOOKUP, HLOOKUP och LOOKUP som kan söka både i kolumner och rader och återge flera värden.

    XMATCH - är en mer mångsidig efterföljare till MATCH-funktionen som kan utföra vertikala och horisontella sökningar och återge en relativ position för det angivna objektet.

    Formler för dynamisk matris i Excel

    I moderna versioner av Excel är beteendet för dynamiska matriser djupt integrerat och blir inhemsk för alla funktioner För att uttrycka det enkelt, för alla formler som returnerar mer än ett värde skapar Excel automatiskt ett anpassningsbart intervall där resultaten skrivs ut. På grund av denna förmåga kan de befintliga funktionerna nu utföra magi!

    Exemplen nedan visar nya formler för dynamiska matriser i praktiken och hur dynamiska matriser påverkar befintliga funktioner.

    Exempel 1. Ny dynamisk array-funktion

    Det här exemplet visar hur mycket snabbare och enklare en lösning kan åstadkommas med Excels dynamiska array-funktioner.

    Om du vill extrahera en lista med unika värden från en kolumn använder du vanligtvis en komplex CSE-formel som den här. I dynamiska Excel behöver du bara en UNIQUE-formel i sin grundform:

    =UNIK(B2:B10)

    Du anger formeln i en tom cell och trycker på Enter. Excel hämtar omedelbart alla olika värden i listan och lägger ut dem i ett cellintervall som börjar från den cell där du angett formeln (D2 i vårt fall). När källdata ändras räknas resultaten om och uppdateras automatiskt.

    Exempel 2. Kombinera flera dynamiska array-funktioner i en formel.

    Om det inte går att utföra en uppgift med en enda funktion kan du kedja ihop några funktioner! Om du till exempel vill filtrera data baserat på villkor och ordna resultaten i alfabetisk ordning kan du lägga SORT-funktionen runt FILTER på följande sätt:

    =SORT(FILTER(A2:C13, B2:B13=F1, "Inga resultat"))

    Där A2:C13 är källdata, B2:B13 är de värden som ska kontrolleras och F1 är kriteriet.

    Exempel 3. Användning av nya dynamiska array-funktioner tillsammans med befintliga funktioner.

    Eftersom den nya beräkningsmotorn i Excel 365 enkelt kan omvandla konventionella formler till matriser finns det inget som hindrar dig från att kombinera nya och gamla funktioner tillsammans.

    Om du till exempel vill räkna hur många unika värden som finns i ett visst intervall kan du integrera den dynamiska arrayen UNIQUE-funktionen i den gamla COUNTA-funktionen:

    =COUNTA(UNIK(B2:B10))

    Exempel 4. Befintliga funktioner stöder dynamiska matriser

    Om du anger ett antal celler till TRIM-funktionen i en äldre version som Excel 2016 eller Excel 2019 kommer den att ge ett enda resultat för den första cellen:

    =TRIM(A2:A6)

    I dynamiska Excel bearbetar samma formel alla celler och ger flera resultat, vilket visas nedan:

    Exempel 5. VLOOKUP-formel för att återge flera värden

    Som alla vet är VLOOKUP-funktionen utformad för att returnera ett enda värde baserat på det kolumnindex som du anger. I Excel 365 kan du dock ange en matris med kolumnnummer för att returnera matchningar från flera kolumner:

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

    Exempel 6. TRANSPOSE-formeln på ett enkelt sätt

    I tidigare Excel-versioner gav syntaxen för TRANSPOSE-funktionen inget utrymme för misstag. För att rotera data i ditt kalkylblad behövde du räkna de ursprungliga kolumnerna och raderna, välja samma antal tomma celler men ändra orienteringen (en svår operation i stora kalkylblad!), skriva en TRANSPOSE-formel i det valda intervallet och trycka på Ctrl + Shift + Enter för att slutföra den korrekt. Puh!

    I dynamiska Excel anger du bara formeln i den vänstra cellen i utdataområdet och trycker på Enter:

    =TRANSPOSE(A1:B6)

    Klart!

    Spillområde - en formel, flera celler

    Spillområde är ett intervall av celler som innehåller de värden som returneras av en dynamisk formel.

    När någon cell i spillområdet markeras visas den blå gränsen för att visa att allt i cellen beräknas med formeln i cellen högst upp till vänster. Om du tar bort formeln i den första cellen försvinner alla resultat.

    Spillintervallet är en riktigt bra sak som gör livet för Excel-användare mycket enklare. Tidigare var vi med CSE-arrayformler tvungna att gissa hur många celler vi skulle kopiera dem till. Nu anger du bara formeln i den första cellen och låter Excel ta hand om resten.

    Observera: Om andra data blockerar spillområdet uppstår felet #SPILL. När de blockerande data tas bort försvinner felet.

    Mer information finns i Excel spill range.

    Referens för spillområde (#-symbol)

    Om du vill hänvisa till spillområdet sätter du en hashtagg eller en pund-symbol (#) efter adressen till den övre vänstra cellen i området.

    Om du till exempel vill ta reda på hur många slumpmässiga tal som genereras av formeln RANDARRAY i A2, anger du spillintervallreferensen till funktionen COUNTA:

    =COUNTA(A2#)

    Om du vill addera värdena i spillområdet använder du:

    =SUMMA(A2#)

    Tips:

    • Om du snabbt vill hänvisa till ett spillområde markerar du bara alla celler i den blå rutan med musen, så skapar Excel spillområdet åt dig.
    • Till skillnad från en vanlig intervallreferens är spill range ref dynamisk och reagerar automatiskt på att intervallet ändras i storlek.
    • För mer information, se Operatör för spillområde.

      Implicit korsning och @-tecken

      I Excel med dynamisk matris finns det ytterligare en viktig förändring i formelspråket - introduktionen av @-tecknet, känt som implicit skärningsoperatör .

      I Microsoft Excel, implicit korsning är en formel som reducerar många värden till ett enda värde. I gamla Excel kunde en cell bara innehålla ett enda värde, så det var standardbeteendet och ingen särskild operatör behövdes för det.

      I nya Excel betraktas alla formler som standard som matrisformler. Den implicita intersektionsoperatorn används för att förhindra matrisbeteendet om du inte vill ha det i en specifik formel. Om du vill att formeln bara ska återge ett värde sätter du med andra ord @ före funktionens namn, och den kommer att bete sig som en formel utan matris i traditionella Excel.

      För att se hur det fungerar i praktiken kan du ta en titt på skärmbilden nedan.

      I C2 finns det en dynamisk formel för en matris som sprider resultat i många celler:

      =UNIQUE(A2:A9)

      I E2 har funktionen ett @-tecken som anger implicit intersektion, vilket innebär att endast det första unika värdet returneras:

      =@UNIK(A2:A9)

      Mer information finns i Implicit intersektion i Excel.

      Fördelar med Excel dynamiska matriser

      Dynamiska matriser är utan tvekan en av de bästa Excel-förbättringarna på flera år. Som alla nya funktioner har de starka och svaga sidor. Lyckligtvis för oss är de starka sidorna i de nya formlerna för dynamiska matriser i Excel överväldigande!

      Enkel och mer kraftfull

      Dynamiska matriser gör det möjligt att skapa mer kraftfulla formler på ett mycket enklare sätt. Här är några exempel:

      • Extrahera unika värden: traditionella formler
      • Räkna unika och distinkta värden: traditionella formler
      • Sortera kolumnerna alfabetiskt: traditionella formler

      Inhemska för alla formler

      I dynamiska Excel behöver du inte bry dig om vilka funktioner som stöder matriser och vilka som inte gör det. Om en formel kan returnera flera värden gör den det som standard. Detta gäller även aritmetiska operationer och äldre funktioner, vilket visas i det här exemplet.

      Inbäddade funktioner för dynamisk matris

      För att lösa mer komplexa uppgifter kan du kombinera nya Excel-funktioner för dynamiska matriser eller använda dem tillsammans med gamla funktioner som visas här och här.

      Relativa och absoluta referenser är mindre viktiga.

      Tack vare metoden "en formel, många värden" finns det inget behov av att låsa områden med $-tecknet eftersom formeln tekniskt sett bara finns i en cell. Så för det mesta spelar det ingen roll om man använder absoluta, relativa eller blandade cellreferenser (vilket alltid har varit en källa till förvirring för oerfarna användare) - en dynamisk formel för en matris ger ändå rätt resultat!

      Begränsningar med dynamiska matriser

      Nya dynamiska matriser är bra, men som med alla nya funktioner finns det några förbehåll och överväganden som du bör vara medveten om.

      Resultaten kan inte sorteras på det vanliga sättet

      Det spillområde som returneras av en dynamisk arrayformel kan inte sorteras med hjälp av Excels sorteringsfunktion. Alla sådana försök kommer att resultera i " Du kan inte ändra en del av en matris " fel. Om du vill ordna resultaten från det minsta till det största eller tvärtom, kan du använda SORT-funktionen i din nuvarande formel. Så här kan du till exempel filtrera och sortera på en gång.

      Kan inte ta bort något värde i spillområdet

      Inget av värdena i ett spillområde kan tas bort av samma anledning: du kan inte ändra en del av en matris. Detta beteende är förväntat och logiskt. Traditionella CSE-formler för matriser fungerar också på detta sätt.

      Stöds inte i Excel-tabeller

      Den här funktionen (eller felet?) är helt oväntad. Dynamiska matrisformler fungerar inte i Excel-tabeller, utan bara i vanliga intervall. Om du försöker konvertera ett spillområde till en tabell gör Excel det, men i stället för resultaten visas bara felmeddelandet #SPILL!

      Fungerar inte med Excel Power Query

      Resultaten av formler för dynamiska matriser kan inte laddas in i Power Query. Om du till exempel försöker slå ihop två eller flera spillområden med hjälp av Power Query fungerar det inte.

      Dynamiska matriser jämfört med traditionella CSE-formler för matriser

      Med införandet av dynamiska matriser kan vi tala om två typer av Excel:

      1. Dynamisk Excel som har fullt stöd för dynamiska matriser, funktioner och formler. För närvarande finns det bara Excel 365 och Excel 2021.
      2. Legacy Excel , även kallad traditionellt eller pre-dynamiskt Excel, där endast Ctrl + Shift + Enter-formler stöds. Det är Excel 2019, Excel 2016, Excel 2013 och tidigare versioner.

      Det säger sig självt att dynamiska matriser är överlägsna CSE-formlerna i alla avseenden. Även om de traditionella matrisformlerna behålls av kompatibilitetsskäl rekommenderas det att man från och med nu använder de nya formlerna.

      Här är de viktigaste skillnaderna:

      • En dynamisk matrisformel skrivs in i en cell och avslutas med en vanlig Enter-knapptryckning. För att slutföra en gammaldags matrisformel måste du trycka på Ctrl + Shift + Enter .
      • Nya matrisformler sprider sig automatiskt till många celler. CSE-formler måste kopieras till ett antal celler för att ge flera resultat.
      • Utdata i formler för dynamiska matriser ändras automatiskt i takt med att data i källområdet ändras. CSE-formler avkortar utdata om returområdet är för litet och returnerar fel i extra celler om returområdet är för stort.
      • En formel för dynamisk matris kan enkelt redigeras i en enda cell. Om du vill ändra en CSE-formel måste du välja och redigera hela området.
      • Det är inte möjligt att ta bort och infoga rader i ett CSE-formelområde - du måste först ta bort alla befintliga formler. Med dynamiska matriser är det inget problem att infoga eller ta bort rader.

      Bakåtkompatibilitet: dynamiska matriser i äldre Excel

      När du öppnar en arbetsbok som innehåller en dynamisk matrisformel i gamla Excel konverteras den automatiskt till en konventionell matrisformel som är innesluten i {slingrande parenteser}. När du öppnar arbetsbladet igen i nya Excel tas de svängda parenteserna bort.

      I äldre Excel får de nya funktionerna för dynamiska matriser och referenser till spillområden prefixet _xlfn för att ange att den här funktionen inte stöds. Tecknet (#) för referens till spillområden ersätts med funktionen ANCHORARRAY.

      Så här ser till exempel en UNIQUE-formel ut i Excel 2013 :

      De flesta formler för dynamiska matriser (men inte alla!) fortsätter att visa sina resultat i det gamla Excel tills du gör några ändringar i dem. Om du redigerar en formel bryts den omedelbart och ett eller flera felvärden #NAME? visas.

      Formler för dynamisk matris i Excel fungerar inte

      Beroende på funktionen kan olika fel uppstå om du använder felaktig syntax eller ogiltiga argument. Nedan följer de tre vanligaste felen som du kan stöta på med en formel för dynamisk matris.

      #SPILL! fel

      När en dynamisk array returnerar flera resultat, men något blockerar spillområdet, uppstår felet #SPILL!

      För att åtgärda felet behöver du bara rensa eller ta bort alla celler i spillområdet som inte är helt tomma. För att snabbt hitta alla celler som är i vägen klickar du på felindikatorn och sedan på Välj hindrande celler .

      Förutom att spillområdet inte är tomt kan felet bero på några andra orsaker. För mer information, se:

      • Excel #SPILL fel - orsaker och lösningar
      • Så här åtgärdar du felet #SPILL! med VLOOKUP, INDEX MATCH, SUMIF

      #REF! fel

      På grund av det begränsade stödet för externa referenser mellan arbetsböcker kräver dynamiska matriser att båda filerna är öppna. Om källarbetsboken är stängd visas ett #REF!-fel.

      #NAME? fel

      Felet #NAME? uppstår om du försöker använda en dynamisk matrisfunktion i en äldre version av Excel. Kom ihåg att de nya funktionerna endast är tillgängliga i Excel 365 och Excel 2021.

      Om det här felet uppstår i Excel-versioner som stöds, dubbelkolla funktionens namn i den problematiska cellen. Det är möjligt att det är felskrivet :)

      Så här använder du dynamiska matriser i Excel. Förhoppningsvis kommer du att älska denna fantastiska nya funktionalitet! Jag tackar dig för att du läste och hoppas att vi ses på vår blogg nästa vecka!

    Michael Brown är en hängiven teknikentusiast med en passion för att förenkla komplexa processer med hjälp av mjukvaruverktyg. Med mer än ett decenniums erfarenhet inom teknikbranschen har han finslipat sina kunskaper i Microsoft Excel och Outlook, samt Google Sheets och Docs. Michaels blogg är tillägnad att dela med sig av sin kunskap och expertis med andra, och tillhandahåller lätta att följa tips och handledningar för att förbättra produktiviteten och effektiviteten. Oavsett om du är en erfaren proffs eller nybörjare, erbjuder Michaels blogg värdefulla insikter och praktiska råd för att få ut det mesta av dessa viktiga programvaruverktyg.