MAP funktionen i Excel

Resumé

Excel funktionen MAP “kortlægger” en tilpasset LAMBDA-funktion til hver værdi i et array input. LAMBDA anvendes på hver værdi, og resultatet fra MAP er en matrix af resultater med samme dimensioner som den oprindelige matrix.

Formål

Afbild et array til brugerdefineret funktion

Returværdi

Et array af resultater

Argumenter

matrix – Det array, der skal kortlægges.

array2 – [valgfrit] Yderligere arrays påkrævet af LAMBDA.

lambda – Den brugerdefinerede LAMBDA-funktion, der skal anvendes.

Syntaks

=MAP(matrix1; [matrix2];...;lambda)

Noter

Funktionen MAP “kortlægger” en tilpasset LAMBDA-funktion til hver værdi i et array input. LAMBDA anvendes på hver værdi, og resultatet fra MAP er en matrix af resultater med samme dimensioner som den oprindelige matrix.

Funktionen MAP er nyttig, når du ønsker at behandle hvert element i et array individuelt, men som en array-operation, der giver et array-resultat. MAP er også nyttigt, når formellogikken er kompleks og bedst kan administreres et enkelt sted. Ved at bruge en navngivet LAMBDA-funktion med MAP er det muligt at genbruge den samme kode andre steder.

Funktionen MAP antager to påkrævede argumenter: matrix1 og lambda. Matrix1 er det array, der skal kortlægges. Lambda er den brugerdefinerede lambda-funktion, der skal udføres på hvert element i matrix1. Yderligere argumenter kan tilføjes i form af matrix2, matrix3 osv. før lambda, som altid skal være det sidste argument, der angives. Når yderligere arrays overføres til MAP, skal LAMBDA-funktionen konfigureres til at acceptere yderligere argumenter. Matrix1 skal være det første argument i LAMBDA, matrix2 skal være det andet argument osv.

Eksempler

Funktionen MAP kortlægger hver værdi i et array til en brugerdefineret LAMBDA-funktion. For eksempel kortlægger formlen nedenfor en LAMBDA-funktion, der blot tilføjer 1 til hvert element i det efterfølgende array:

=MAP({1;2;3};LAMBDA(a;a+1)) // returnerer {2,3,4}

Variablen a, der overføres til LAMBDA-funktionen som det første argument, er matrix1 i MAP-funktionen.

Fjern ikke-numeriske værdier

I regnearket vist ovenfor bruges MAP til at fjerne ikke-numeriske værdier fra det angivne array (A2:D11). Formlen i G2 er:

=MAP(A2:D11;LAMBDA(a;HVIS(ER.TAL(a);+a;"")))

Fordi matrix1 har 12 rækker og 3 kolonner, er resultatet fra MAP en 10 x 4 matrix, der overfører sig til området G2:J11.

Bemærk: +a-notationen bruges til at få Excel til at tvinge a fra en intervalreference til en matrix af værdier. Uden + vil MAP returnere en #CALC! fejl. Dette trin er nogle gange nødvendigt, når du arbejder med matrixformler, der overføres.

Yderligere arrays

MAP kan acceptere yderligere arrays, der kan bruges af LAMBDA under beregning. Formlen nedenfor tilføjer hvert element i matrix1 til det tilsvarende element i matrix2:

=MAP({1;2;3};{1;2;3};LAMBDA(a;b;a+b)) // returnerer {2,4,6}

Her er variablen a overført til LAMBDA-funktionens matrix1 i funktionen MAP, og b er matrix2.

Hvornår skal man bruge MAP

Den dynamiske array-motor i Excel kan håndtere mange array-operationer naturligt uden en funktion som MAP. For eksempel returnerer formlerne nedenfor begge det samme resultat:

=matrix+1
=MAP(matrix;LAMBDA(a;a+1))

Som sådan er der ingen særlig grund til at bruge MAP, når en naturlig array-operation vil opnå det samme resultat. Der er dog tilfælde, hvor MAP kan være nyttig:

  1. Til at køre logiske test med OG- og ELLER-funktionerne. Disse funktioner samler arrays til en enkelt værdi, så de kan normalt bruges i array-operationer, der skal opretholde flere værdier.
  2. For at udføre visse aggregerede operationer på flere arrays, dvs.
=MAP(omr1;omr2;omr3;LAMBDA(a;b;c;MAKS(a;b;c)))
  1. Til at lave en funktion, der overfører som ellers ikke gør det.

Bemærk: funktionen MAP returnerer en række resultater. Se funktionen REDUCER, hvis du ønsker at behandle hvert element i et array individuelt, men du ønsker et enkelt aggregeret resultat.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

one + 6 =