Estadística

K.ESIMO.MAYOR y K.ESIMO.MENOR en Excel: hallar el enésimo mayor o menor

Devuelven el enésimo valor mayor o menor de un rango.

MAX te da el valor más grande. K.ESIMO.MAYOR te da el enésimo más grande, que es lo que de verdad necesitas siempre que la pregunta es por un top tres y no por un top uno. K.ESIMO.MENOR es su espejo y devuelve el enésimo desde abajo.

Su trabajo principal es montar una tabla de los N primeros sin ordenar el origen. =K.ESIMO.MAYOR($B$2:$B$100; 1) en una celda, después 2, después 3 por la columna, te da una lista clasificada que se actualiza sola mientras los datos de abajo se quedan en el orden en que llegaron. Sustituir el número fijo por FILA()-1 permite arrastrarla en lugar de escribir cada uno.

Un comportamiento que conviene conocer: los duplicados ocupan cada uno un puesto. Si los dos valores mayores son ambos 28.000, con k=1 y k=2 se devuelve 28.000 las dos veces. Suele ser lo correcto —el segundo valor más grande es realmente 28.000— pero significa que una lista de cinco puede mostrar el mismo número dos veces.

Sintaxis

=K.ESIMO.MAYOR(matriz; k)   =K.ESIMO.MENOR(matriz; k)

Argumentos

matriz
Obligatorio
El rango donde buscar. El texto y los huecos se ignoran.
k
Obligatorio
Qué posición devolver, contando desde arriba en la primera y desde abajo en la segunda. Un k de 1 equivale a MAX o MIN.

Los datos de ejemplo

Encabezados en la fila 1, datos en A2:C8. Fíjate en cuánto se separa el último sueldo del resto.

ABC
1EmpleadoSueldoEquipo
2Alicia Moreau32000Soporte
3Bruno Santos28000Soporte
4Chen Wei45000Ingeniería
5Dana Okafor28000Soporte
6Erik Halls38000Ingeniería
7Farah Idris41000Ingeniería
8Greg Nolan154000Dirección

Ejemplos resueltos

=K.ESIMO.MAYOR(B2:B8; 1)

Resultado: 154000

El sueldo más alto. Idéntico a MAX para un k de 1.

=K.ESIMO.MAYOR(B2:B8; 3)

Resultado: 41000

El tercero más alto: la pregunta que MAX no puede responder.

=K.ESIMO.MENOR(B2:B8; 2)

Resultado: 28000

El segundo más bajo. Las dos entradas de 28.000 cuentan por separado, así que k de 1 y de 2 devuelven la misma cifra.

=K.ESIMO.MAYOR($B$2:$B$8; FILA()-1)

Resultado: 154000

El patrón para arrastrar. En la fila 2 esto es k=1 y en la fila 3 es k=2, así que una sola fórmula construye toda la columna clasificada.

Ahora practícala

Leer sobre una fórmula no es lo mismo que escribirla. Abre el ejercicio de esta función y escríbela en una hoja real: recibirás comentarios inmediatos sobre qué celda está mal y por qué.

Abrir el ejercicio: Funciones K.ESIMO.MAYOR y K.ESIMO.MENOR

Errores habituales y cómo resolverlos

#¡NUM!

Por qué ocurre: k es cero, negativo o mayor que la cantidad de números del rango: pedir el octavo mayor de siete valores.

Cómo resolverlo: Protege el arrastre: =SI.ERROR(K.ESIMO.MAYOR($B$2:$B$8; FILA()-1); "") para que la columna termine de forma limpia cuando se acaben.

#¡VALOR!

Por qué ocurre: k es texto, o la matriz contiene un valor de error.

Cómo resolverlo: Comprueba que k se resuelve como número. Si es FILA()-1, asegúrate de que la fórmula empieza en la fila que crees.

El mismo valor aparece dos veces en la lista

Por qué ocurre: Cada duplicado ocupa una posición.

Cómo resolverlo: Es el comportamiento correcto. Para valores distintos, aplícala sobre UNICOS(rango).

Consejos que conviene saber

  • =K.ESIMO.MAYOR(rango; 1) es MAX y =K.ESIMO.MENOR(rango; 1) es MIN: usa el nombre más claro cuando k sea fijo en 1.
  • Combínalas con INDICE y COINCIDIR para obtener el *nombre* asociado al enésimo valor y no solo el número.
  • Una SUMA de K.ESIMO.MAYOR con una constante matricial totaliza un top N: =SUMA(K.ESIMO.MAYOR(B2:B8; {1\2\3})).
  • Con matrices dinámicas, TOMAR(ORDENAR(rango; 1; -1); 3) suele ser un top tres más claro que tres llamadas.

Preguntas frecuentes

¿Cómo monto una lista de los cinco primeros?

Pon =K.ESIMO.MAYOR($B$2:$B$100; FILA()-1) en la primera celda y arrastra cinco filas, envolviéndola en SI.ERROR para que degrade con elegancia. Con matrices dinámicas, =TOMAR(ORDENAR(B2:B100; 1; -1); 5) hace lo mismo en una fórmula.

¿Cómo obtengo el nombre que acompaña al valor más alto?

Envuélvela en INDICE y COINCIDIR: =INDICE($A$2:$A$8; COINCIDIR(K.ESIMO.MAYOR($B$2:$B$8; 1); $B$2:$B$8; 0)). Ten en cuenta que devuelve la primera coincidencia, así que los valores empatados muestran siempre el mismo nombre.

¿Qué diferencia hay con MAX?

MAX solo devuelve el mayor valor. K.ESIMO.MAYOR admite un argumento de posición, así que con k de 1 equivale a MAX pero con k de 3 da el tercero más grande, que MAX no puede expresar.

Funciones relacionadas

Guías que la usan

Lecturas más largas donde esta función hace trabajo real en una hoja real.