E+

ChakiArt

Excel · Datos · Automatización

Volver a Excel Lab
Excel Lab · Programación funcional

MAP

Recorre cada elemento de una matriz y aplica una operación utilizando una función LAMBDA.

Excel 365LAMBDAProgramación funcionalNivel avanzado

Qué hace

Ejecuta un cálculo para cada elemento de una matriz

MAP toma uno o varios rangos o matrices y procesa cada elemento mediante una función LAMBDA.

En lugar de escribir una fórmula en cada fila y copiarla hacia abajo, podemos definir una sola operación y dejar que MAP genere todos los resultados como una matriz dinámica.

Sintaxis

Cómo se construye la función

=MAP(matriz1,[matriz2],...,LAMBDA(valor1,[valor2],...,cálculo))
matriz1Obligatorio

Es la primera matriz o rango cuyos elementos quieres procesar.

[matriz2]Opcional

Es opcional. Puedes proporcionar matrices adicionales cuando el cálculo necesita trabajar con más de un valor a la vez.

LAMBDAObligatorio

Define los parámetros que recibirá MAP y la operación que se ejecutará para cada elemento.

La relación entre MAP y LAMBDA

MAP se encarga de recorrer la matriz. LAMBDA define qué debe hacer Excel con cada elemento que MAP va entregando.

Ejemplo sencillo

Calcular el IVA de cada venta

Supongamos que tenemos una columna con diferentes importes de venta y queremos calcular el 16% correspondiente a cada uno.

Venta
IVA
$1,000
$160
$2,500
$400
$3,200
$512
$4,500
$720
Ejemplo 1

Utilizando un rango normal

Si las ventas están en A2:A5 podemos utilizar:

=MAP(A2:A5,LAMBDA(venta,venta*16%))
A2:A5

matriz1

Es el rango que contiene los valores que queremos procesar.

venta

parámetro

Es el nombre que utilizamos dentro de LAMBDA para representar cada elemento de la matriz.

venta*16%

cálculo

Es la operación que se ejecutará para cada valor.

Recomendado

Utilizando una tabla de Excel

Si los datos pertenecen a una tabla llamada tblVentas, podemos utilizar directamente la columna Venta.

=MAP(tblVentas[Venta],LAMBDA(venta,venta*16%))
tblVentas[Venta]

matriz1

Representa toda la columna Venta dentro de la tabla.

venta

parámetro

Recibe uno a uno los valores de tblVentas[Venta].

venta*16%

cálculo

Calcula el IVA correspondiente a cada elemento.

¿Por qué usar una tabla?

Porque tblVentas[Venta] se actualiza automáticamente cuando agregamos registros a la tabla. No necesitamos modificar manualmente el rango utilizado por MAP.

Resultado

MAP devolverá una matriz con un resultado por cada venta:

$160$400$512$720

Más de una matriz

MAP también puede trabajar con varias columnas

Supongamos que tenemos una columna de Cantidad y otra de Precio y queremos calcular el importe correspondiente a cada registro.

=MAP(tblVentas[Cantidad],tblVentas[Precio],LAMBDA(cantidad,precio,cantidad*precio))
tblVentas[Cantidad]

matriz1

Primera matriz que MAP recorrerá.

tblVentas[Precio]

matriz2

Segunda matriz que MAP recorrerá en paralelo.

cantidad*precio

cálculo

LAMBDA utiliza ambos valores para obtener el importe de cada fila.

En cada posición, MAP toma un valor de tblVentas[Cantidad] y el valor correspondiente de tblVentas[Precio]. Después entrega ambos a LAMBDA.

Cómo entenderla

Puedes leer MAP casi como una instrucción

“Para cada venta de la columna Venta, toma ese valor, llámalo venta y calcula venta × 16%.”

Esa forma de leer la fórmula facilita mucho entender qué papel cumple MAP y qué papel cumple LAMBDA.

Cuándo utilizar MAP

Aplicar un cálculo diferente a cada elemento de una matriz.

Evitar columnas auxiliares con fórmulas copiadas fila por fila.

Procesar simultáneamente varias columnas relacionadas.

Construir cálculos matriciales reutilizables con LAMBDA.

Funciones relacionadas

MAP forma parte de un conjunto muy potente

LAMBDA

Define la operación que MAP ejecutará para cada elemento.

REDUCE

Recorre una matriz acumulando los resultados hasta obtener un único valor.

SCAN

Recorre una matriz y devuelve todos los resultados acumulados.

MAP dentro del Dashboard Matricial

En la serie utilizaremos MAP para realizar cálculos como ventas y utilidad por cada elemento de nuestras matrices, evitando depender de fórmulas copiadas manualmente fila por fila.

Ver Dashboard Matricial