miércoles, 10 de junio de 2020

EXCEL: Encuentra la cadena más larga con criterios

Excel formula: Find longest string with criteria

Fórmula genérica

{=INDICE(rng1,COINCIDIR(MAX(LARGO(rng1)*(rng2=criteria)),LARGO(rng1)*(rng2=criteria),0))}

Explicación

Para encontrar la cadena más larga en un rango con criterios, puede usar una fórmula de matriz basada en INDICE, COINCIDIR, LARGO y MAX. En el ejemplo que se muestra, la fórmula en F6 es:

{=INDICE(names,COINCIDIR(MAX(LARGO(names)*(class=F5)),LARGO(names)*(class=F5),0))}

Donde "nombres" es el rango con nombre C5: C14, y "clase" es el rango con nombre B5: B14.

Nota: esta es una fórmula de matriz y debe ingresarse con control + shift + enter.

Cómo funciona esta fórmula

El núcleo de esta fórmula es la función COINCIDIR, que localiza la posición de la cadena más larga utilizando los criterios proporcionados:

COINCIDIR(MAX(LARGO(names)*(class=F5)),LARGO(names)*(class=F5),0)

Nota COINCIDIR está configurado para realizar una coincidencia exacta al proporcionar cero para el tipo de coincidencia. Para el valor de búsqueda, tenemos:

LARGO(names)*(class=F5)

La función LARGO devuelve una matriz de resultados (longitudes), uno para cada nombre en la lista donde class = "A" de la celda F5:

{5;6;8;6;6;0;0;0;0;0}

Esto filtra efectivamente toda la Clase B, y la función MAX luego devuelve el valor más grande, 8.

Para construir una matriz de búsqueda, utilizamos el mismo enfoque:

LARGO(names)*(class=F5)

Y obtén el mismo resultado:

{5;6;8;6;6;0;0;0;0;0}

Después de ejecutar LARGO y MAX, tenemos una fórmula COINCIDIR con estos valores:

COINCIDIR(8,{5;6;8;6;6;0;0;0;0;0},0))

COINCIDIR luego devuelve la posición de 8 en la lista, 3, que alimenta a INDICE de esta manera:

=INDICE(names,3)

Finalmente, INDICE devuelve debidamente el valor en la tercera posición de los nombres, que es "Jonathan".


Comentarios en Facebook


0 comentarios:

Copyright © 2021 TRUJILLOSOFT