top of page

Eliminar último número mínimo

De las siguientes cadenas, debemos de eliminar el último número mínimo de dichas cadenas.










En la celda B2, usamos LET, creamos una variable, usamos la funcion CONCAT, como argumento texto1, seleccionamos el rango A2:A17, concatenamos con barra inclinada, cerramos paréntesis, probamos variable.


=LET(a;CONCAT(A2:A7&"/");a)

 

Obtenemos todas las cadenas en una fila, y, cada cadena separada por una barra invertida.




Antes de CONCAT, usamos la funcion DIVIDIRTEXTO, como argumento texto, es la funcion CONCAT, como argumento delimitador de columna, entre comillas dobles, ponemos coma, como argumento delimitador de fila, entre comillas dobles, ponemos la barra inclinada.


=LET(a;DIVIDIRTEXTO(CONCAT(A2:A7&"/");",";"/");a)

 

Tenemos cada cadena separada.









Vamos a poner el doble signo negativo antes de la funcion DIVIDIRTEXTO, con esto conseguimos pasar a numero el numero en formato de texto.


=LET(a;--DIVIDIRTEXTO(CONCAT(A2:A7&"/");",";"/");a)

 

Usamos la funcion SI.ERROR, y, ponemos blanco donde es error.


=LET(a;SI.ERROR(--DIVIDIRTEXTO(CONCAT(A2:A7&"/");",";"/");"");a)

 

Creamos otra variable, usamos BYROW, como argumento array, ponemos la variable “a”, como argumento funcion, ponemos LAMBDA, creamos una variable, usamos la función MIN, y, como argumento ponemos la variable “x”.


=LET(a;SI.ERROR(--DIVIDIRTEXTO(CONCAT(A2:A7&"/");",";"/");"");c;BYROW(a;LAMBDA(x;MIN(x)));c)

 

Obtenemos el valor mínimo de cada cadena.














Creamos otra variable, preguntamos que, si la variable “a” es igual a la variable “c”, que nos devuelva la variable “a”, en caso contrario, que devuelva blanco.


=LET(a;SI.ERROR(--DIVIDIRTEXTO(CONCAT(A2:A7&"/");",";"/");"");c;BYROW(a;LAMBDA(x;MIN(x)));d;SI(a=c;a;"");d)

 

Obtenemos una matriz desbordada de seis columnas, y, siete filas, donde tenemos el valor mínimo de cada cadena, y, blanco donde no hay coincidencia.









Creamos otra variable, volvemos a preguntar que, si es número la variable “d”, que nos devuelva una secuencia de números de siete filas de alto, y, seis columnas de ancho.


=LET(a;SI.ERROR(--DIVIDIRTEXTO(CONCAT(A2:A7&"/");",";"/");"");c;BYROW(a;LAMBDA(x;MIN(x)));d;SI(a=c;a;"");e;SI(ESNUMERO(d);SECUENCIA(7;6);"");e)

 

Obtenemos la secuencia que corresponde donde hay coincidencia.









Creamos otra variable, volvemos a usar BYROW, como argumento array, ponemos la variable “e”, como argumento funcion, ponemos LAMBDA, declaramos una variable, usamos MAX y como argumento ponemos la variable “x”.


=LET(a;SI.ERROR(--DIVIDIRTEXTO(CONCAT(A2:A7&"/");",";"/");"");c;BYROW(a;LAMBDA(x;MIN(x)));d;SI(a=c;a;"");e;SI(ESNUMERO(d);SECUENCIA(7;6);"");f;BYROW(e;LAMBDA(x;MAX(x)));f)

 

Tenemos el valor máximo de cada cadena.











Creamos otra variable, preguntamos que, si la variable “e” es diferente a la variable “f”, que devuelva blanco, en caso contrario, que devuelva la variable “d”.


=LET(a;SI.ERROR(--DIVIDIRTEXTO(CONCAT(A2:A7&"/");",";"/");"");c;BYROW(a;LAMBDA(x;MIN(x)));d;SI(a=c;a;"");e;SI(ESNUMERO(d);SECUENCIA(7;6);"");f;BYROW(e;LAMBDA(x;MAX(x)));g;SI(e<>f;"";d);g)

 

Tenemos los valores de cada cadena que debemos de eliminar.









Usamos otro condicional SI, como argumento prueba lógica, es el condicional SI anterior, e. igualamos a blanco, como argumento valor si verdadero, ponemos la variable “a”, como argumento valor si falso, ponemos blanco.


=LET(a;SI.ERROR(--DIVIDIRTEXTO(CONCAT(A2:A7&"/");",";"/");"");c;BYROW(a;LAMBDA(x;MIN(x)));d;SI(a=c;a;"");e;SI(ESNUMERO(d);SECUENCIA(7;6);"");f;BYROW(e;LAMBDA(x;MAX(x)));g;SI(SI(e<>f;"";d)="";a;"");g)

 

Ya tenemos el modelo, podemos ver que falta el ultimo valor mínimo.









Creamos otra variable, usamos BYROW, como argumento array, ponemos la variable “g”, como argumento funcion, ponemos LAMBDA, declaramos una variable, ponemos la funcion UNIRCADENAS, como argumento delimitador, entre comillas dobles, ponemos coma, ignoramos celdas vacías, como argumento texto1, es la variable “x”.


=LET(a;SI.ERROR(--DIVIDIRTEXTO(CONCAT(A2:A7&"/");",";"/");"");c;BYROW(a;LAMBDA(x;MIN(x)));d;SI(a=c;a;"");e;SI(ESNUMERO(d);SECUENCIA(7;6);"");f;BYROW(e;LAMBDA(x;MAX(x)));g;SI(SI(e<>f;"";d)="";a;"");h;BYROW(g;LAMBDA(x;UNIRCADENAS(",";VERDADERO;x)));h)

 

Ya tenemos cada cadena unida separadas por comas.











Vemos que tenemos una fila de más, pues, usamos el argumento calculo de LET, usamos la funcion EXCLUIR, como argumento matriz, ponemos la variable “h”, como argumento filas, ponemos -1.


=LET(a;SI.ERROR(--DIVIDIRTEXTO(CONCAT(A2:A7&"/");",";"/");"");c;BYROW(a;LAMBDA(x;MIN(x)));d;SI(a=c;a;"");e;SI(ESNUMERO(d);SECUENCIA(7;6);"");f;BYROW(e;LAMBDA(x;MAX(x)));g;SI(SI(e<>f;"";d)="";a;"");h;BYROW(g;LAMBDA(x;UNIRCADENAS(",";VERDADERO;x)));EXCLUIR(h;-1))

 

Aceptamos, y, ya lo tenemos.











Miguel Angel Franco

 
 
 

Comentarios


© 2019 Miguel Ángel Franco García

bottom of page