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ónLAMBDA
que 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
LAMBDA
debe tener exactamente un argumentonombre
por cada matriz enviada, así como unaexpresión_fórmula
que 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
LAMBDA
enviada debe aceptar tantos argumentosnombre
como 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 nombre
puede pasar por parámetroLAMBDA
y 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 nombre
no 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
nombres
y unaexpresión_fórmula
que 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
.