Excel dynamiske matriser, funksjoner og formler

  • Dele Denne
Michael Brown
det i en bestemt formel. Med andre ord, hvis du ønsker at formelen bare skal returnere én verdi, sett @ foran funksjonens navn, og den vil oppføre seg som en ikke-matriseformel i tradisjonell Excel.

For å se hvordan det fungerer i praksis, vennligst ta en titt på skjermbildet nedenfor.

I C2 er det en dynamisk matriseformel som gir resultater i mange celler:

=UNIQUE(A2:A9)

I E2 er funksjonen prefiks med @-tegnet som påkaller implisitt kryss. Som et resultat blir bare den første unike verdien returnert:

=@UNIQUE(A2:A9)

For mer informasjon, se Implisitt skjæringspunkt i Excel.

Fordeler med Excel dynamiske matriser

Utvilsomt er dynamiske matriser en av de beste Excel-forbedringene på mange år. Som enhver ny funksjon har de sterke og svake punkter. Heldigvis for oss er de sterke sidene til nye Excel dynamiske matriseformler overveldende!

Enkle og kraftigere

Dynamiske matriser gjør det mulig å lage kraftigere formler på en mye enklere måte. Her er et par eksempler:

  • Trekk ut unike verdier: tradisjonelle formler

    På grunn av den revolusjonerende oppdateringen i Excel 365-beregningsmotoren blir matriseformler veldig enkle og forståelige for alle, ikke bare for superbrukere. Veiledningen forklarer konseptet med nye dynamiske Excel-matriser og viser hvordan de kan gjøre regnearkene dine mer effektive og mye enklere å sette opp.

    Excel-matriseformler har alltid vært ansett som et privilegium for guruer og formel eksperter. Hvis noen sier "Dette kan gjøres med en matriseformel", er en umiddelbar reaksjon fra mange brukere "Åh, er det ikke en annen måte?".

    Introduksjonen av dynamiske matriser er en etterlengtet og mest velkommen endring. På grunn av deres evne til å jobbe med flere verdier på en enkel måte, uten noen triks og finurligheter, er dynamiske matriseformler noe som enhver Excel-bruker kan forstå og nyte å lage.

    Excel dynamiske matriser

    Dynamiske matriser er matriser som kan endre størrelsen og beregner automatisk og returnerer verdier til flere celler basert på en formel angitt i en enkelt celle.

    Gjennom over 30 års historie har Microsoft Excel har gjennomgått mange endringer, men én ting forble konstant - én formel, én celle. Selv med tradisjonelle matriseformler var det nødvendig å legge inn en formel i hver celle der du vil at et resultat skal vises. Med dynamiske matriser er denne regelen ikke lenger sann. Nå, enhver formel som returnerer en rekke verdierikke. Hvis en formel kan returnere flere verdier, vil den gjøre det som standard. Dette gjelder også for aritmetiske operasjoner og eldre funksjoner som vist i dette eksemplet.

    Nestede dynamiske array-funksjoner

    For å utarbeide løsninger for mer komplekse oppgaver, står du fritt til å kombinere nye Excel-dynamiske array-funksjoner eller bruk dem sammen med gamle som vist her og her.

    Relative og absolutte referanser er mindre viktige

    Takket være "én formel, mange verdier"-tilnærmingen er det ikke nødvendig å låse varierer med $-tegnet siden formelen teknisk sett er i bare én celle. Så for det meste spiller det ingen rolle om du skal bruke absolutte, relative eller blandede cellereferanser (som alltid har vært en kilde til forvirring for uerfarne brukere) - en dynamisk array-formel vil gi riktige resultater uansett!

    Begrensninger for dynamiske arrays

    Nye dynamiske arrays er flotte, men som med alle nye funksjoner er det noen forbehold og hensyn du bør være oppmerksom på.

    Resultater kan ikke sorteres i den vanlige måten

    Sølområdet returnert av en dynamisk matriseformel kan ikke sorteres ved å bruke Excels sorteringsfunksjon. Ethvert slikt forsøk vil resultere i feilen " Du kan ikke endre en del av en matrise ". For å ordne resultatene fra minste til største eller omvendt, pakk inn gjeldende formel i SORTERING-funksjonen. Slik kan du for eksempel filtrereog sorter om gangen.

    Kan ikke slette noen verdi i spillområdet

    Ingen av verdiene i et spillområde kan slettes av samme grunn: du kan ikke endre en del av en matrise. Denne oppførselen er forventet og logisk. Tradisjonelle CSE-matriseformler fungerer også på denne måten.

    Støttes ikke i Excel-tabeller

    Denne funksjonen (eller feilen?) er ganske uventet. Dynamiske matriseformler fungerer ikke fra Excel-tabeller, bare innenfor vanlige områder. Hvis du prøver å konvertere et spillområde til en tabell, vil Excel gjøre det. Men i stedet for resultatene vil du bare se en #SPILL! feil.

    Ikke arbeid med Excel Power Query

    Resultatene av dynamiske matriseformler kan ikke lastes inn i Power Query. La oss si at hvis du prøver å slå sammen to eller flere spillområder ved hjelp av Power Query, vil ikke dette fungere.

    Dynamiske matriser kontra tradisjonelle CSE-matriseformler

    Med introduksjonen av dynamiske matriser, vi kan snakke om to typer Excel:

    1. Dynamisk Excel som fullt ut støtter dynamiske matriser, funksjoner og formler. Foreløpig er det bare Excel 365 og Excel 2021.
    2. Legacy Excel , aka tradisjonell eller pre-dynamisk Excel, der bare Ctrl + Shift + Enter matriseformler støttes. Det er Excel 2019, Excel 2016, Excel 2013 og tidligere versjoner.

    Det sier seg selv at dynamiske matriser er overlegne CSE-matriseformler på alle måter. Selv om den tradisjonelle matrisenformler beholdes av kompatibilitetshensyn, fra nå av anbefales det å bruke de nye.

    Her er de viktigste forskjellene:

    • En dynamisk matriseformel legges inn i én celle og fullføres med et vanlig Enter-tastetrykk. For å fullføre en gammeldags matriseformel, må du trykke Ctrl + Shift + Enter.
    • Nye matriseformler går automatisk til mange celler. CSE-formler må kopieres til et celleområde for å returnere flere resultater.
    • Utdata fra dynamiske matriseformler endres automatisk etter hvert som dataene i kildeområdet endres. CSE-formler avkorter utdata hvis returområdet er for lite og returnerer feil i ekstra celler hvis returområdet er for stort.
    • En dynamisk matriseformel kan enkelt redigeres i en enkelt celle. For å endre en CSE-formel må du velge og redigere hele området.
    • Det er ikke mulig å slette og sette inn rader i et CSE-formelområde - du må slette alle eksisterende formler først. Med dynamiske matriser er ikke radinnsetting eller sletting et problem.

    Bakoverkompatibilitet: dynamiske matriser i eldre Excel

    Når du åpner en arbeidsbok som inneholder en dynamisk matriseformel i gamle Excel, den konverteres automatisk til en konvensjonell matriseformel omsluttet av {krøllete klammeparenteser}. Når du åpner regnearket igjen i nye Excel, vil de krøllete klammeparentesene bli fjernet.

    I eldre Excel, den nye dynamiske matrisenfunksjoner og spillområdereferanser får prefiks med _xlfn for å indikere at denne funksjonaliteten ikke støttes. Et spillområderef-tegn (#) erstattes med ANCHORARRAY-funksjonen.

    For eksempel, her er hvordan en UNIK formel vises i Excel 2013 :

    De fleste dynamiske matriseformler (men ikke alle!) vil fortsette å vise resultatene i eldre Excel til du gjør noen endringer i dem. Redigering av en formel bryter den umiddelbart og viser ett eller flere #NAME? feilverdier.

    Excel dynamiske matriseformler fungerer ikke

    Avhengig av funksjonen kan det oppstå forskjellige feil hvis du bruker feil syntaks eller ugyldige argumenter. Nedenfor er de 3 vanligste feilene du kan støte på med en hvilken som helst dynamisk matriseformel.

    #SPILL! feil

    Når en dynamisk matrise returnerer flere resultater, men noe blokkerer utslippsområdet, vises en #SPILL! feil oppstår.

    For å fikse feilen trenger du bare å fjerne eller slette alle celler i spillområdet som ikke er helt tomme. For raskt å finne alle cellene som kommer i veien, klikk på feilindikatoren og klikk deretter Velg blokkerende celler .

    Bortsett fra en ikke- tom utslippsområde, kan denne feilen være forårsaket av et par andre årsaker. For mer informasjon, se:

    • Excel #SPILL-feil - årsaker og rettinger
    • Hvordan fikser du #SPILL! feil med VLOOKUP, INDEX MATCH, SUMIF

    #REF! feil

    På grunn avden begrensede støtten for eksterne referanser mellom arbeidsbøker, dynamiske matriser krever at begge filene er åpne. Hvis kildearbeidsboken er lukket, vises en #REF! feil vises.

    #NAME? feil

    A #NAME? feil oppstår hvis du prøver å bruke en dynamisk array-funksjon i en eldre versjon av Excel. Husk at de nye funksjonene kun er tilgjengelige i Excel 365 og Excel 2021.

    Hvis denne feilen vises i støttede Excel-versjoner, dobbeltsjekker du funksjonens navn i den problematiske cellen. Sjansen er stor for at den er skrevet feil :)

    Slik bruker du dynamiske matriser i Excel. Forhåpentligvis vil du elske denne fantastiske nye funksjonaliteten! Uansett, jeg takker for at du leser og håper å se deg på bloggen vår neste uke!

søles automatisk inn i nabocellene, uten at du trenger å trykke Ctrl + Shift + Enter eller gjøre noen andre bevegelser. Med andre ord blir det like enkelt å betjene dynamiske matriser som å jobbe med en enkelt celle.

La meg illustrere konseptet med et veldig grunnleggende eksempel. Anta at du må multiplisere to grupper med tall, for eksempel for å beregne forskjellige prosenter.

I pre-dynamiske versjoner av Excel vil formelen nedenfor bare fungere for den første cellen, med mindre du skriver den inn i flere celler og trykk Ctrl + Shift + Enter for å eksplisitt gjøre det til en matriseformel:

=A3:A5*B2:D2

Nå, se hva som skjer når den samme formelen brukes i Excel 365. Du skriver det inn i bare én celle (B3 i vårt tilfelle), trykker på Enter-tasten... og får hele raseriet fylt med resultatene på en gang:

Fylling flere celler med en enkelt formel kalles spilling , og det fylte celleområdet kalles spillområdet.

En viktig ting å merke seg er at den nylige oppdateringen ikke bare er en ny måte av håndtering av matriser i Excel. Faktisk er dette en banebrytende endring av hele beregningsmotoren. Med dynamiske arrays har en rekke nye funksjoner blitt lagt til Excel-funksjonsbiblioteket, og de eksisterende begynte å fungere raskere og mer effektivt. Etter hvert skal nye dynamiske arrays fullstendig erstatte de gammeldagse arrayformlene som legges inn medCtrl + Shift + Enter-snarvei.

Tilgjengelighet av dynamiske arrayer i Excel

Dynamiske arrayer ble introdusert på Microsoft Ignite Conference i 2018 og utgitt til Office 365-abonnenter i januar 2020. Foreløpig er de tilgjengelige i Microsoft 365-abonnement og Excel 2021.

Dynamiske arrays støttes i disse versjonene:

  • Excel 365 for Windows
  • Excel 365 for Mac
  • Excel 2021
  • Excel 2021 for Mac
  • Excel for iPad
  • Excel for iPhone
  • Excel for Android-nettbrett
  • Excel for Android-telefoner
  • Excel for nettet

Excel dynamiske array-funksjoner

Som en del av den nye funksjonaliteten ble 6 nye funksjoner introdusert i Excel 365 som håndterer matriser naturlig og sender ut data til en rekke celler. Utdataene er alltid dynamiske - når det skjer endringer i kildedataene, oppdateres resultatene automatisk. Derav gruppenavnet - dynamiske array-funksjoner .

Disse nye funksjonene takler enkelt en rekke oppgaver som tradisjonelt anses som harde nøtter å knekke. De kan for eksempel fjerne duplikater, trekke ut og telle unike verdier, filtrere ut blanke, generere tilfeldige heltall og desimaltall, sortere i stigende eller synkende rekkefølge og mye mer.

Nedenfor finner du en kort beskrivelse av hva hver funksjon gjør, så vel som koblingene til grundige veiledninger:

  1. UNIQUE - trekker ut unike elementer fra encelleområde.
  2. FILTER - filtrerer data basert på kriteriene du definerer.
  3. SORT - sorterer et celleområde etter en spesifisert kolonne.
  4. SORTERT - sorterer et område av celler etter et annet område eller matrise.
  5. RANDARRAY - genererer en matrise med tilfeldige tall.
  6. SEQUENCE - genererer en liste med sekvensielle tall.
  7. TEXTSPLIT - deler strenger med en spesifisert skilletegn på tvers av kolonner eller/og rader.
  8. TOCOL - konverter en matrise eller et område til en enkelt kolonne.
  9. TOROW - transformer et område eller en matrise til en enkelt rad.
  10. WRAPCOLS - konverterer en rad eller kolonne til en 2D-matrise basert på spesifisert antall verdier per rad.
  11. WRAPROWS - omformer en rad eller kolonne til en 2D-matrise basert på spesifisert antall verdier per kolonne .
  12. TAKE - trekker ut et spesifisert antall sammenhengende rader og/eller kolonner fra starten eller slutten av en matrise.

I tillegg er det to moderne erstatninger av de populære Excel-funksjonene , som ikke offisielt er i gruppen, men leverag e alle fordelene med dynamiske matriser:

XLOOKUP - er en kraftigere etterfølger av VLOOKUP, HLOOKUP og LOOKUP som kan slå opp både i kolonner og rader og returnere flere verdier.

XMATCH - er en mer allsidig etterfølger av MATCH-funksjonen som kan utføre vertikale og horisontale oppslag og returnere en relativ posisjon for det spesifiserte elementet.

Excel dynamiske matriseformler

Imoderne versjoner av Excel, er den dynamiske array-atferden dypt integrert og blir naturlig for alle funksjoner , selv de som opprinnelig ikke var designet for å fungere med arrays. For å si det enkelt, for enhver formel som returnerer mer enn én verdi, oppretter Excel automatisk et område som kan endres størrelsen der resultatene sendes ut. På grunn av denne evnen kan de eksisterende funksjonene nå utføre magi!

Eksemplene nedenfor viser nye dynamiske matriseformler i aksjon samt effekten av dynamiske matriser på eksisterende funksjoner.

Eksempel 1. Ny dynamisk array-funksjon

Dette eksemplet viser hvor mye raskere og enklere en løsning kan oppnås med dynamiske array-funksjoner i Excel.

For å trekke ut en liste med unike verdier fra en kolonne, ville du tradisjonelt bruk en kompleks CSE-formel som denne. I dynamisk Excel trenger du bare en UNIK formel i sin grunnleggende form:

=UNIQUE(B2:B10)

Du skriver inn formelen i en tom celle og trykker Enter. Excel trekker umiddelbart ut alle forskjellige verdier i listen og sender dem ut i en rekke celler som begynner fra cellen der du skrev inn formelen (D2 i vårt tilfelle). Når kildedataene endres, beregnes resultatene på nytt og oppdateres automatisk.

Eksempel 2. Kombinere flere dynamiske matrisefunksjoner i én formel

Hvis det ikke er noen måte å utføre en oppgave med én funksjon, len noen få sammen! TilFor eksempel, for å filtrere data basert på tilstand og ordne resultatene alfabetisk, vikler du SORT-funksjonen rundt FILTER slik:

=SORT(FILTER(A2:C13, B2:B13=F1, "No results"))

Hvor A2:C13 er kildedataene, B2:B13 er verdier å sjekke, og F1 er kriteriet.

Eksempel 3. Bruk av nye dynamiske array-funksjoner sammen med eksisterende

Som den nye beregningsmotoren implementert i Excel 365 kan enkelt gjøre konvensjonelle formler om til matriser, det er ingenting som hindrer deg i å kombinere nye og gamle funksjoner.

For å telle hvor mange unike verdier det er i et visst område, kan du for eksempel legge inn den dynamiske matrisen UNIK funksjon i den gode gamle COUNTA:

=COUNTA(UNIQUE(B2:B10))

Eksempel 4. Eksisterende funksjoner støtter dynamiske arrays

Hvis du leverer en rekke celler til TRIM-funksjonen i en eldre versjon som Excel 2016 eller Excel 2019, vil den returnere et enkelt resultat for den første cellen:

=TRIM(A2:A6)

I dynamisk Excel behandler den samme formelen alle av cellene og returnerer flere resultater, som vist nedenfor:

Eksempel 5. VLOOKUP-formel for å returnere flere verdier

Som alle vet, er VLOOKUP-funksjonen utformet for å returnere en enkelt verdi basert på kolonneindeksen du angir. I Excel 365 kan du imidlertid oppgi en rekke kolonnenumre for å returnere treff fra flere kolonner:

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

Eksempel 6. TRANSPOSER formel lageteasy

I tidligere Excel-versjoner ga syntaksen til TRANSPOSE-funksjonen ikke rom for feil. For å rotere data i regnearket ditt, måtte du telle de originale kolonnene og radene, velge samme antall tomme celler, men endre retningen (en forbløffende operasjon i store regneark!), skrive inn en TRANSPOSE-formel i det valgte området, og trykk Ctrl + Shift + Enter for å fullføre det riktig. Puh!

I dynamisk Excel skriver du bare inn formelen i cellen lengst til venstre i utdataområdet og trykker Enter:

=TRANSPOSE(A1:B6)

Ferdig!

Sølsområde - én formel, flere celler

sølområdet er et celleområde som inneholder verdiene som returneres av en dynamisk matriseformel.

Når en celle i utslippsområdet er valgt, vises den blå rammen for å vise at alt inni den er beregnet ved hjelp av formelen i cellen øverst til venstre. Hvis du sletter formelen i den første cellen, vil alle resultatene forsvinne.

Sølområdet er en virkelig flott ting som gjør livet til Excel-brukere mye enklere . Tidligere, med CSE-matriseformler, måtte vi gjette hvor mange celler vi skulle kopiere dem til. Nå skriver du bare inn formelen i den første cellen og lar Excel ta seg av resten.

Merk. Hvis noen andre data blokkerer utslippsområdet, oppstår en #SPILL-feil. Når de hindrende dataene er fjernet, vil feilen være borte.

For mer informasjon, seExcel sølområde.

Referanse for utslippsområde (# symbol)

For å referere til utslippsområdet, sett inn en hash-tag eller et pundsymbol (#) etter adressen til cellen øverst til venstre i området.

For å finne ut hvor mange tilfeldige tall som genereres av RANDARRAY-formelen i A2, oppgi utslippsområdereferansen til COUNTA-funksjonen:

=COUNTA(A2#)

For å legge sammen verdiene i utslippsområdet, bruk:

=SUM(A2#)

Tips:

  • For raskt å referere til en spillområde, velg ganske enkelt alle cellene inne i den blå boksen med musen, og Excel vil lage spillreferen for deg.
  • I motsetning til en vanlig rekkeviddereferanse er spillrekkevidden dynamisk og reagerer på størrelsen på området. automatisk.
  • For flere detaljer, se operatør for spillområde.

    Implisitt skjæringspunkt og @-tegn

    I dynamisk array Excel er det enda en betydelig endring i formelspråket - introduksjonen av @-tegnet, kjent som implisitt skjæringsoperator .

    I Microsoft Excel, implisitt kryss er en formelatferd som reduserer mange verdier til én enkelt verdi. I gamle Excel kunne en celle bare inneholde en enkelt verdi, så det var standardoppførselen, og det var ikke nødvendig med noen spesiell operator for det.

    I nye Excel regnes alle formler som matriseformler som standard. Den implisitte skjæringsoperatoren brukes til å forhindre array-oppførselen hvis du ikke vil

Michael Brown er en dedikert teknologientusiast med en lidenskap for å forenkle komplekse prosesser ved hjelp av programvareverktøy. Med mer enn ti års erfaring i teknologibransjen, har han forbedret ferdighetene sine i Microsoft Excel og Outlook, samt Google Sheets og Docs. Michaels blogg er dedikert til å dele sin kunnskap og ekspertise med andre, og gir enkle å følge tips og veiledninger for å forbedre produktivitet og effektivitet. Enten du er en erfaren profesjonell eller nybegynner, tilbyr Michaels blogg verdifull innsikt og praktiske råd for å få mest mulig ut av disse viktige programvareverktøyene.