Fórmula de Excel: busque la cadena más larga con criterios -

Tabla de contenido

Fórmula genérica

(=INDEX(rng1,MATCH(MAX(LEN(rng1)*(rng2=criteria)),LEN(rng1)*(rng2=criteria),0)))

Resumen

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

(=INDEX(names,MATCH(MAX(LEN(names)*(class=F5)),LEN(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.

Explicación

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

MATCH(MAX(LEN(names)*(class=F5)),LEN(names)*(class=F5),0)

Nota MATCH está configurado para realizar una coincidencia exacta proporcionando cero para el tipo de coincidencia. Por valor de búsqueda, tenemos:

LEN(names)*(class=F5)

La función LEN 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, usamos el mismo enfoque:

LEN(names)*(class=F5)

Y obtén el mismo resultado:

(5;6;8;6;6;0;0;0;0;0)

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

MATCH(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 se alimenta de ÍNDICE de esta manera:

=INDEX(names,3)

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

Articulos interesantes...