Esta función aplica una función LAMBDA a cada valor de las matrices especificadas para asignarle un nuevo valor.
Ejemplo de uso
MAP(A1:A5; LAMBDA(celda; celda*2)): función MAP con intervalo como entrada.
MAP(A1:A5; B1:B5; LAMBDA(celda1; celda2; MAX(celda1; celda2))): función MAP con varios intervalos como entrada.
MAP(UNIQUE(A1:A10), LAMBDA(número; número + 1)): función MAP con una matriz como entrada.
Sintaxis
MAP(matriz1; [matriz2; ...]; LAMBDA)
matriz1: matriz o intervalo que se va a asignar.matriz2; ...: matrices o intervalos adicionales que se van a asignar [OPCIONAL].LAMBDA: una funciónLAMBDAque se asigna a cada valor de las matrices especificadas para obtener un nuevo valor asignado.- Sintaxis:
LAMBDA(nombre1; [nombre2; ...]; expresión_fórmula) - Requisitos:
- La función
LAMBDAdebe tener exactamente un argumentonombrepor cada matriz enviada, así como unaexpresión_fórmulaque use esos nombres. Cuando se aplica una funciónLAMBDA, los nombres se resuelven con los valores actuales que se asignan en las matrices enviadas.
- La función
- Sintaxis:
Notas
-
La función
LAMBDAenviada debe aceptar tantos argumentosnombrecomo matrices de entrada se hayan introducido enMAP. Si no, se devuelve un error#N/A. Estos argumentos se corresponden con los valores de las matrices de entrada que se asignan a un nuevo valor. -
Los valores de las matrices de entrada deben asignarse a un valor único. No se admiten resultados de matriz de valores asignados.
- En este caso, una
función con nombrepuede pasar por parámetroLAMBDAy comportarse como una funciónLAMBDA. Más información sobre las funciones con nombre- El número de marcadores de posición de argumentos definidos debe ser el mismo que el número de matrices de entrada enviadas a
MAP. - La
función con nombreno debe ir seguida de un paréntesis.
- El número de marcadores de posición de argumentos definidos debe ser el mismo que el número de matrices de entrada enviadas a
Ejemplos
Simple operación de duplicación con MAP
Datos de ejemplo:
|
A |
B |
C |
D |
|
|---|---|---|---|---|
|
1 |
1 |
2 |
||
|
2 |
3 |
4 |
||
|
3 |
2 |
4 |
||
|
4 |
6 |
8 |
Ejemplo: Introduce esta fórmula en C3: =MAP(A1:B2; LAMBDA(celda; celda*2)).
Asigna valores separados por punto y coma a códigos SKU con guiones
Datos de ejemplo:
|
A |
B |
|
|---|---|---|
|
1 |
Vaqueros;Negro;XL |
Vaqueros-Negro-XL |
|
2 |
PantalónCorto;Marrón;S |
PantalónCorto-Marrón-S |
|
3 |
Camiseta;Rojo;L |
Camiseta-Rojo-L |
|
4 |
Falda;Rosa;M |
Falda-Rosa-M |
Ejemplo: Introduce esta fórmula en B1:=MAP(A1:A4; LAMBDA(elemento; JOIN("-"; SPLIT(elemento; ";")) ))
Asigna el valor máximo a múltiples intervalos de entrada de cada conjunto de datos
Datos de ejemplo:
|
A |
B |
C |
D |
E |
F |
G |
H |
|
|---|---|---|---|---|---|---|---|---|
|
1 |
38,9 |
17,8 |
42 |
20,2 |
38,6 |
21,2 |
||
|
2 |
39,2 |
19,6 |
37,8 |
17,1 |
34,6 |
21,2 |
||
|
3 |
34,1 |
18,1 |
41,1 |
17,6 |
36,6 |
17,8 |
Ejemplo: =MAP(A1:B3; D1:E3; G1:H3; LAMBDA(valA; valB; valC; MAX(valA; valB; valC)))
Resultado:
|
A |
B |
|
|---|---|---|
|
1 |
42 |
21,2 |
|
2 |
39,2 |
21,2 |
|
3 |
41,1 |
18,1 |
Usa una función con nombre como LAMBDA para contar celdas que contengan números
Datos de ejemplo:
|
A |
B |
C |
|
|---|---|---|---|
|
1 |
El sueño de mi vida |
A todo gas 2 |
12 hombres sin piedad |
|
2 |
Olvídate de mí |
Viernes 13 |
No es país para viejos |
Función con nombre: CONTAINS_NUMBER es una función con nombre que comprueba si el valor de la cadena en cuestión contiene números.
Definición de la fórmula: =ARRAYFORMULA(O(ESNUMERO(SPLIT(celda; " "))), donde "celda" es un marcador de posición de argumento definido para CONTAINS_NUMBER.
Ejemplo: =CONTAR.SI(MAP(A1:C2; CONTAINS_NUMBER); verdadero)
Resultado:
|
3 |
Errores frecuentes
Las dimensiones de las matrices de entrada no coincidenSi las dimensiones de las matrices de entrada no coinciden, se produce este error:
“Los argumentos de matriz para MAP son de distinto tamaño”.
Ejemplo: =MAP(C1:C4; D1:D2; LAMBDA(x; x+1))
En este ejemplo, el tamaño de la matriz C1:C4 no coincide con el de la matriz D1:D2.
Si el número de argumentos nombre de la función LAMBDA no coincide con el número de matrices de entrada de MAP, se produce este error:
"Número incorrecto de argumentos para LAMBDA. Se esperaban tres argumentos, pero se han obtenido dos".
Ejemplo: =MAP(C1:C4; D1:D4; LAMBDA(celda; celda+1))
En este ejemplo, LAMBDA solo tiene una celda de argumento nombre aunque hayamos enviado dos matrices a MAP.
Si el último parámetro de MAP no es una LAMBDA, se produce este error:
“El argumento debe ser una LAMBDA”.
Ejemplo: =MAP(C1:C3; 3)
Si uno o varios argumentos nombre no son válidos, se produce este error:
“El argumento 1 de la función LAMBDA no es un nombre válido”.
Ejemplo: =MAP(C1:C3; LAMBDA(C1; C1+1))
En este ejemplo, C1 no es un nombre válido porque entra en conflicto con un intervalo.
Si la aplicación de LAMBDA en una o más matrices de entrada asigna cada valor a varios valores o a otra matriz, se produce este error:
“Se esperaba un solo valor. No se admiten resultados de matriz anidados”.
Ejemplo: =MAP(E1; LAMBDA(palabra; SPLIT(palabra; " ")))
En este ejemplo, intentamos asignar el texto de la celda a una matriz de palabras.
Funciones relacionadas
- Función LAMBDA: esta función te permite generar y devolver una función personalizada con un conjunto de
nombresy unaexpresión_fórmulaque los utiliza. - Función REDUCE: esta función reduce una matriz a un resultado acumulado.
- Función BYROW: esta función agrupa una matriz por filas.
- Función BYCOL: esta función agrupa una matriz por columnas.
- Función SCAN: analiza una matriz y genera valores intermedios.
- Función MAKEARRAY: esta función crea una matriz calculada de dimensiones especificadas.
- Crear y usar funciones con nombre: esta función permite crear y almacenar funciones personalizadas de forma similar a
LAMBDA.