top of page

Maximo extraccion números

Para el siguiente ejemplo, tenemos los siguientes números.













Tenemos una columna llamada longitud, que son los caracteres para extraer de cada cadena, una vez extraído los caracteres, nos debemos de quedar con el valor máximo.


En la celda C2, usamos la función LET, declaramos una variable, ponemos la función EXTRAE, como argumento texto, seleccionamos el rango A2:A10, como posición inicial, usamos la función SECUENCIA, omitimos el argumento filas, como argumento columnas, usamos la función MAX, como argumento numero1, seleccionamos el rango B2:B10, como argumento numero de caracteres, ponemos el rango B2:B10.


Probamos variable.


=LET(a;EXTRAE(A2:A10;SECUENCIA(;MAX(B2:B10));B2:B10);a)


Obtenemos una matriz desbordada donde hemos extraído cada dos caracteres de cada cadena.












De los valores obtenidos en cada fila, debemos de quedarnos con aquellas cantidades con la longitud indicada en la columna B.


Para ello, volvemos a la expresión, vamos al argumento cálculo de LET, usamos la función LARGO con la variable “a”.


=LET(a;EXTRAE(A2:A10;SECUENCIA(;MAX(B2:B10));B2:B10);LARGO(a))


Obtenemos la longitud de cada cadena.













Comparamos con la longitud de cada cadena.


=LET(a;EXTRAE(A2:A10;SECUENCIA(;MAX(B2:B10));B2:B10);LARGO(a)=B2:B10)


Obtenemos una matriz desbordada con VERDADERO donde la longitud es la misma, y, FALSO donde no lo es.











Esta expresión es el argumento prueba lógica del condicional SI.


=LET(a;EXTRAE(A2:A10;SECUENCIA(;MAX(B2:B10));B2:B10);SI(LARGO(a)=B2:B10)


Como argumento valor si verdadero, ponemos la variable “a”, como argumento valor si falso, ponemos un texto en blanco.


=LET(a;EXTRAE(A2:A10;SECUENCIA(;MAX(B2:B10));B2:B10);SI(LARGO(a)=B2:B10;a;""))


Vemos como ahora solo tenemos las cantidades con la misma longitud que la columna B.












Para extraer el valor máximo de cada fila, debemos de trabajar de forma independiente con cada fila, por lo que vamos a usar la función BYROW, como argumento array, es el condicional SI.


=LET(a;ABS(EXTRAE(A2:A10;SECUENCIA(;MAX(B2:B10));B2:B10));BYROW(SI(LARGO(a)=B2:B10;a;"")


Como argumento función, ponemos LAMBDA, creamos una variable, usamos la función MAX, como argumento numero1, ponemos la variable “x”.


=LET(a;ABS(EXTRAE(A2:A10;SECUENCIA(;MAX(B2:B10));B2:B10));BYROW(SI(LARGO(a)=B2:B10;a;"");LAMBDA(x;MAX(x))))


Aceptamos, y, ya lo tenemos.














Miguel Angel Franco

 
 
 

Comentarios


© 2019 Miguel Ángel Franco García

bottom of page