Maximo minimo numeros pares impares
- Jaime Franco Jimenez

- 18 ago 2023
- 2 Min. de lectura
Vamos a resolver otro ejemplo de Excel BI, recuerdo que nunca, jamás, miro las soluciones de otras personas.
Tenemos los siguientes datos.

Nos solicitan que en una columna aparezcan el valor mínimo, y, máximo de los números impares de cada celda, y, en otra columna el valor mínimo, y, máximo, pero, de los números pares.
En la celda B2, vamos a calcular el valor mínimo y máximo de los números impares.
Usamos la función LET, creamos una variable, usamos la función DIVIDIRTEXTO, como argumento texto, ponemos la celda A2, como argumento delimitador de columna, entre comillas dobles, ponemos coma.
Probamos variable.
=LET(a;DIVIDIRTEXTO(A2;",");a)
Obtenemos una matriz desbordada en horizontal con cada carácter de la celda A2.

Vamos a preguntar si algunos de los valores obtenidos es impar, pero, no podemos usar la función ES.IMPAR como matricial, para poder usarla, vamos a usar la función BYCOL, como argumento array, es la función DIVIDIRTEXTO.
=LET(a;BYCOL(DIVIDIRTEXTO(A2;",")
Como argumento función, ponemos LAMBDA, creamos una variable, que almacena el argumento array.
=LET(a;BYCOL(DIVIDIRTEXTO(A2;",");LAMBDA(x
Preguntamos si es impar la variable “x”, en ese caso, que nos devuelva la variable “x”, en caso contrario, que ponga un texto en blanco.
Cerramos paréntesis, y, probamos variable.
=LET(a;BYCOL(DIVIDIRTEXTO(A2;",");LAMBDA(x;SI(ES.IMPAR(x);x;"")));a)
Obtenemos una matriz desbordada con los números impares, y, blanco donde no es impar.

Creamos otra variable, filtramos la variable “a”, siempre que dicha variable sea diferente a blanco.
=LET(a;BYCOL(DIVIDIRTEXTO(A2;",");LAMBDA(x;SI(ES.IMPAR(x);x;"")));b;FILTRAR(a;a<>"");b)
Tenemos solo los números impares.

Creamos otra variable, usamos la función APILARH, como argumento matriz1, usamos la función MIN, como argumento de MIN, ponemos la variable “b”, como argumento matriz2, ponemos la función MAX, como argumento de MAX, ponemos la variable “b”, probamos variable.
=LET(a;BYCOL(DIVIDIRTEXTO(A2;",");LAMBDA(x;SI(ES.IMPAR(x);x;"")));b;ABS(FILTRAR(a;a<>""));c;APILARH(MIN(b);MAX(b));c)
Aceptamos, arrastramos, y, ya lo tenemos, pero, vemos un error en una celda donde solo hay valores pares.

Usamos la función SI.ERROR, y, ponemos un texto en blanco donde haya error.
=LET(a;BYCOL(DIVIDIRTEXTO(A2;",");LAMBDA(x;SI(ES.IMPAR(x);x;"")));b;ABS(FILTRAR(a;a<>""));c;SI.ERROR(APILARH(MIN(b);MAX(b));"")
Como argumento cálculo de LET, usamos la función UNIRCADENAS, como argumento delimitador, ponemos, entre comillas dobles, un guion medio, ignoramos celdas vacías, como argumento texto1, ponemos la variable “c”.
=LET(a;BYCOL(DIVIDIRTEXTO(A2;",");LAMBDA(x;SI(ES.IMPAR(x);x;"")));b;ABS(FILTRAR(a;a<>""));c;SI.ERROR(APILARH(MIN(b);MAX(b));"");UNIRCADENAS("-";VERDADERO;c))
Aceptamos, arrastramos, y, ya lo tenemos.

Copiamos la expresión de la celda B2, excepto el signo igual, la pegamos en la celda C2, cambiamos la función ES.IMPAR por ES.PAR.
=LET(a;BYCOL(DIVIDIRTEXTO(A2;",");LAMBDA(x;SI(ES.PAR(x);x;"")));b;ABS(FILTRAR(a;a<>""));c;SI.ERROR(APILARH(MIN(b);MAX(b));"");UNIRCADENAS("-";VERDADERO;c))
Aceptamos, arrastramos, y, ya tenemos nuestro desafío resuelto.

Miguel Angel Franco




Comentarios