La función MAPA de Excel transforma una matriz (o varias matrices) aplicando una función LAMBDA a cada uno de sus elementos. El resultado es una nueva matriz con los valores transformados, lo que permite realizar operaciones complejas en rangos de datos de forma dinámica y sin necesidad de arrastrar fórmulas.
Es especialmente útil para aplicar una misma lógica de cálculo a cada celda de un rango y obtener los resultados en un nuevo rango de igual tamaño.
Sintaxis
=MAPA(matriz1, [matriz2], ..., lambda)
La función MAPA toma una o más matrices de entrada y una función LAMBDA que define la operación a realizar:
- matriz1: La primera matriz o rango de celdas que se va a transformar. Obligatorio.
- [matriz2, …]: Matrices o rangos adicionales. Todas las matrices deben tener las mismas dimensiones. Opcional.
- lambda: Una función LAMBDA que se aplicará a cada elemento de las matrices. La función LAMBDA debe aceptar tantos parámetros como matrices se hayan proporcionado. Por ejemplo, si se usan dos matrices, el LAMBDA debe ser
LAMBDA(param1, param2, cálculo). Obligatorio.
Ejemplos
Ejemplo 1: Elevar al cuadrado cada número de un rango
Este ejemplo toma un rango de números y devuelve una nueva matriz donde cada número ha sido multiplicado por sí mismo.
| A | |
|---|---|
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 4 | 4 |
=MAPA(A1:A4, LAMBDA(valor, valor * valor))
Resultado: La fórmula devolverá una matriz dinámica con los valores {1; 4; 9; 16}, que se mostrarán en las celdas a partir de donde se introdujo la fórmula.
Ejemplo 2: Combinar datos de dos columnas
Este ejemplo utiliza dos rangos (Nombre y Apellido) para crear un tercer rango con el nombre completo, poniendo el apellido en mayúsculas.
| A | B | |
|---|---|---|
| 1 | Juan | Pérez |
| 2 | Ana | García |
| 3 | Luis | Rodriguez |
=MAPA(A1:A3, B1:B3, LAMBDA(nombre, apellido, MAYUSC(apellido) & ", " & nombre))
Resultado: Se generará una matriz con los textos {"PÉREZ, Juan"; "GARCÍA, Ana"; "RODRIGUEZ, Luis"}.
Ejemplo 3: Aplicar un descuento condicional
Imaginemos una lista de precios. Queremos aplicar un 10% de descuento solo a los productos cuyo precio sea superior a 50€. La función MAPA nos permite hacer esto en una sola fórmula.
| A | |
|---|---|
| 1 | 45 |
| 2 | 120 |
| 3 | 30 |
| 4 | 85 |
=MAPA(A1:A4, LAMBDA(precio, SI(precio > 50, precio * 0.9, precio)))
Resultado: La fórmula devolverá los precios con el descuento aplicado solo cuando corresponda: {45; 108; 30; 76.5}.
Observaciones
La función MAPA es una de las «funciones auxiliares» de LAMBDA, diseñadas para simplificar y potenciar el trabajo con matrices dinámicas, evitando bucles o fórmulas complejas anidadas.
Si las matrices de entrada tienen tamaños diferentes, Excel devolverá un error.
Errores comunes
- #¡VALOR!: Ocurre si las matrices proporcionadas no tienen las mismas dimensiones.
- #¡CALC!: Este error puede aparecer por varias razones, como una función LAMBDA mal construida (por ejemplo, con un número incorrecto de parámetros) o al intentar crear una matriz vacía.
- #DESBORDAMIENTO!: Ocurre si el rango de celdas donde se deberían mostrar los resultados no está vacío.
- #¡NOMBRE!: Generalmente indica que el nombre de una función dentro del LAMBDA está mal escrito o que la propia función LAMBDA no se ha escrito correctamente.
Disponibilidad por versión de Excel
La función MAPA está disponible únicamente para suscriptores de Microsoft 365.
Compatibilidad
| Software | Compatibilidad | Notas |
|---|---|---|
| Microsoft Excel | ✔️ | Solo en versiones de Microsoft 365. |
| Google Sheets | ✔️ | La función MAP es totalmente compatible. |
| LibreOffice Calc | ✔️ | Compatible a partir de la versión 7.4. |
| OpenOffice Calc | ❌ | No soporta funciones LAMBDA ni matrices dinámicas. |
| WPS Office Spreadsheets | ✔️ | Compatible con las versiones más recientes. |
| Apple Numbers | ❌ | No soporta la función MAP ni LAMBDA. |
Funciones Relacionadas
- LAMBDA: Permite crear funciones personalizadas y reutilizables. Es un requisito para usar MAPA.
- REDUCE: Acumula los valores de una matriz en un único resultado aplicando una función LAMBDA.
- SCAN: Similar a REDUCE, pero devuelve una matriz con los resultados intermedios de la acumulación.
- BYROW: Aplica una función LAMBDA a cada fila de una matriz.
- BYCOL: Aplica una función LAMBDA a cada columna de una matriz.
