Ejemplo de la función MAP
- Jaime Franco Jimenez
- 24 ago 2022
- 2 Min. de lectura
Actualizado: 4 jun 2023
Veamos otro ejemplo.
Tenemos una serie de productos, por ejemplo, si nos fijamos en el primer producto, vemos en la celda B2, la cantidad, y, en la celda B3, el total.

Así, con el resto de los productos.
Queremos obtener la suma de los totales.
Si nos fijamos los totales, son cantidades pares, por lo que puedo usar la función ES.PAR, para saber la cantidad par, pero, tenemos el mismo problema que antes, no podemos usar la función ES.PAR, como matricial, por lo que volvemos a usar la función MAP.
Escribimos el signo igual, seguido de la función MAP, y, abrimos un paréntesis.
=MAP(
Seleccionamos los valores.
=MAP(B2:B9
Pongo la función LAMBDA.
=MAP(B2:B9;LAMBDA(
Declaro una variable.
=MAP(B2:B9;LAMBDA(a
Uso la función ES.PAR en la variable a.
=MAP(B2:B9;LAMBDA(a;ES.PAR(a)
Cierro paréntesis, y, acepto.
=MAP(B2:B9;LAMBDA(a;ES.PAR(a)))
Obtenemos verdadero donde el numero es par, y, falso donde no lo es.

Ahora, usare la función filtrar, como antes, para que devuelva los valores cuando la función MAP, devuelve verdadero.
=FILTRAR(B2:B9;MAP(B2:B9;LAMBDA(a;ES.PAR(a)))=VERDADERO)
Obtenemos una matriz desbordada con los totales.

Ahora, uso la función SUMA, para obtener el total.
=SUMA(FILTRAR(B2:B9;MAP(B2:B9;LAMBDA(a;ES.PAR(a)))=VERDADERO))
Ya lo tenemos.

También, podría hacerlo con el condicional SI, donde pregunto que si ES.PAR(a), entonces, que me devuelva la variable a, en caso contrario, que devuelva un texto en blanco.
=MAP(B12:B19;LAMBDA(a;SI(ES.PAR(a);a;"")))
Obtenemos el mismo resultado.
Y, si los totales, no son pares.

Bien, voy a usar la función FILA, aplicada a todos los valores.
=FILA(B2:B9)
Obtenemos una matriz desbordada con los números de filas.

En este caso, no tendría que usar la función MAP, porque al aplicar la funciones ES.IMPAR, donde el argumento es la función FILA, que si se esta usando de forma matricial, ya nos devuelve verdaderos y falsos.
=ES.IMPAR(FILA(B2:B9))

Uso el condicional SI, para preguntar que si es resultado de ES.IMPAR es verdadero, que me devuelva el valor, en caso contrario, que devuelva un texto en blanco.
=SI(ES.IMPAR(FILA(B2:B9))=VERDADERO;B2:B9;"")
Obtenemos una matriz desbordada con los totales.

Volvemos a usar la función SUMA.
=SUMA(SI(ES.IMPAR(FILA(B2:B9))=VERDADERO;B2:B9;""))

También, podría haberlo hecho, poniendo entre paréntesis la primera condición.
=(ES.IMPAR(FILA(B2:B9)))
Ponemos el símbolo de asterisco, que es igual que el operador lógico Y.
=(ES.IMPAR(FILA(B2:B9)))*
Abrimos un paréntesis, señalamos los valores, y, cerramos paréntesis.
=(ES.IMPAR(FILA(B2:B9)))*(B2:B9)
Obtengo una matriz desbordada con los totales.
Vuelvo a usar la función SUMA, y, obtengo el mismo total.
=SUMA((ES.IMPAR(FILA(B2:B9)))*(B2:B9))


Comments