Fórmula Grande con criterios en Excel

formula grande con criterios en excel

Cómo Obtener los Tres Valores Más Altos en Excel según un Grupo Específico

Si alguna vez te has preguntado cómo encontrar los tres valores más altos de un conjunto de datos en Excel, ¡estás en el lugar correcto! En este artículo, vamos a ver cómo puedes hacerlo utilizando una variable que se introduce en la celda F4. Lo mejor de todo es que si cambias el grupo, las fórmulas recalcularán automáticamente los nuevos resultados. Para facilitar el proceso, hemos definido rangos con nombres para grupo (B5:B16) y valor (C5:C16). El truco aquí es la función LARGE, que nos ayuda a obtener el «n-ésimo» valor más alto de un conjunto.

El problema es que la función LARGE no permite aplicar criterios directamente. Así que, tenemos que mejorar un poco las cosas y crear nuestra propia lógica para aplicar condiciones en un paso separado. Ahora, veamos cómo se puede abordar este desafío.

Uso de la Función LARGE

La función LARGE se utiliza para devolver el n-ésimo valor más alto de un conjunto de datos. Su sintaxis básica se ve así:

=LARGE(rango,n)

Donde n representa un número como 1, 2, 3, etc. Por ejemplo, si quieres obtener los primeros tres valores más altos, podrías hacerlo de esta manera:

=LARGE(rango,1) // primer valor más alto
=LARGE(rango,2) // segundo valor más alto
=LARGE(rango,3) // tercer valor más alto

Recuerda que la función LARGE no tiene un método incorporado para aplicar criterios. Para lograrlo, podemos utilizar la función FILTER, que es el siguiente método que exploraremos.

LARGE Combinado con FILTER

En las versiones más recientes de Excel, puedes usar la función FILTER para aplicar criterios dentro de LARGE. Por ejemplo, en la celda F7, puedes usar la siguiente fórmula:

=LARGE(FILTER(valor,grupo=$F$4),E7)

Al desglosar esto, la función FILTER está configurada para extraer los valores del grupo indicado en F4, así:

=FILTER(valor,grupo=$F$4)

Dentro de FILTER, el array se define como valor (C5:C16), y el argumento include se establece mediante una expresión que compara cada valor en grupo (B5:B16) con el valor en F4. Ten en cuenta que $F$4 es una referencia absoluta para que no cambie cuando copies la fórmula hacia abajo. Así, si en B5:B16 hay 12 valores, obtendrás un array con 12 valores TRUE y FALSE:

{TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;FALSE}

Los valores TRUE indican las filas donde el grupo es igual a «A». Esta información es utilizada por FILTER para extraer los valores que coinciden. El resultado será un array que contiene los 6 valores del grupo «A»:

{100;70;50;85;91;96}

Estos valores son enviados a la función LARGE como el argumento array. El segundo argumento, k, proviene de la celda E7:

=LARGE({100;70;50;85;91;96},E7)
=LARGE({100;70;50;85;91;96},1)
=100

A medida que copies la fórmula hacia abajo, k cambiará y LARGE te dará los 1, 2 y 3 valores más altos del grupo A.

LARGE Combinado con IF

En las versiones anteriores de Excel, donde la función FILTER no está disponible, podemos usar una fórmula de matriz tradicional basada en IF así:

{=LARGE(IF(grupo=$F$4,valor),E7)}

Nota: esta es una fórmula de matriz y debe ser ingresada usando control + shift + enter en versiones antiguas de Excel

Con esta fórmula, la función IF cumple la misma función que FILTER: «filtra» los valores por grupo. Al realizar una prueba lógica sobre un rango de celdas (B5:B16), obtendrás un array de resultados que se verá así:

{100;FALSE;70;FALSE;50;FALSE;85;FALSE;91;FALSE;96;FALSE}

Observa que solo los valores del grupo A permanecen en el array, mientras que los valores del grupo B se convierten en FALSE porque no cumplen con la condición. Este array se envía directamente a la función LARGE como el argumento array. El valor para k proviene de la celda E7:

=LARGE({100;FALSE;70;FALSE;50;FALSE;85;FALSE;91;FALSE;96;FALSE},E7)
=LARGE({100;FALSE;70;FALSE;50;FALSE;85;FALSE;91;FALSE;96;FALSE},1)
=100

La función LARGE ignora automáticamente los valores FALSE y devuelve el número más alto de los restantes, que es 100.

Considerando Múltiples Criterios

Si deseas considerar más de un criterio, puedes extender la fórmula utilizando lógica booleana. En el caso de FILTER, la fórmula general se vería así:

=LARGE(FILTER(datos,(criterio1)*(criterio2)),n)

Donde criterio1 y criterio2 representan expresiones que verifican condiciones específicas. En versiones anteriores de Excel, puedes aplicar un enfoque similar como este:

=LARGE(IF((criterio1)*(criterio2),valores),n)

¡Y así es como puedes obtener los valores más altos en Excel usando diferentes métodos! Si necesitas más información sobre cómo usar la lógica booleana en fórmulas de matriz, ¡sigue explorando y experimentando!

Deja un comentario