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.
=K.ESIMO.MAYOR(matriz; k) =K.ESIMO.MENOR(matriz; k)matrizkEncabezados en la fila 1, datos en A2:C8. Fíjate en cuánto se separa el último sueldo del resto.
| A | B | C | |
|---|---|---|---|
| 1 | Empleado | Sueldo | Equipo |
| 2 | Alicia Moreau | 32000 | Soporte |
| 3 | Bruno Santos | 28000 | Soporte |
| 4 | Chen Wei | 45000 | Ingeniería |
| 5 | Dana Okafor | 28000 | Soporte |
| 6 | Erik Halls | 38000 | Ingeniería |
| 7 | Farah Idris | 41000 | Ingeniería |
| 8 | Greg Nolan | 154000 | Dirección |
=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.
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é.
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.
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.
Por qué ocurre: Cada duplicado ocupa una posición.
Cómo resolverlo: Es el comportamiento correcto. Para valores distintos, aplícala sobre UNICOS(rango).
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.
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.
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.
Lecturas más largas donde esta función hace trabajo real en una hoja real.