K.ESIMO.MAYOR y K.ESIMO.MENOR en Excel (el 2º, 3º… y el top N)
Saca el 2º, 3º… mayor o menor de una lista con K.ESIMO.MAYOR y K.ESIMO.MENOR, y monta un top 5 automático. Guía con ejemplos y BUSCARV.
Cuando trabajas con listas de datos en Excel, tarde o temprano necesitas algo más que el simple máximo o el simple mínimo: quieres saber quién quedó segundo, quién ocupó el tercer puesto, o construir un ranking completo con los mejores resultados. Para eso existen las funciones K.ESIMO.MAYOR y K.ESIMO.MENOR, dos funciones estadísticas que te permiten extraer el valor que ocupa una posición concreta dentro de un conjunto de datos, ya sea contando de mayor a menor o de menor a mayor. En este artículo vas a aprender a dominarlas paso a paso, desde la sintaxis básica hasta trucos avanzados como montar un top 5 automático arrastrando una sola fórmula o combinarlas con BUSCARV e INDICE y COINCIDIR para sacar nombres.
La búsqueda que probablemente te ha traído aquí es «k.esimo.mayor en excel«, y no es casualidad: es una de esas funciones que todo el mundo necesita en algún momento pero que casi nadie recuerda de memoria porque no se usa a diario. Vamos a resolver eso de una vez, con ejemplos prácticos, tablas y las fórmulas exactas que puedes copiar y pegar directamente en tu hoja de cálculo.
También veremos los problemas típicos con los que te vas a encontrar por el camino: el temido error #¡NUM!, qué pasa cuando hay valores empatados en tu lista, cómo aplicar condiciones antes de buscar el k-ésimo valor, y cuál es la versión equivalente en Google Sheets si trabajas en la nube.

Qué son K.ESIMO.MAYOR y K.ESIMO.MENOR (y por qué MAX y MIN se quedan cortos)
Las funciones MAX y MIN de Excel son geniales para encontrar el valor más alto o más bajo de un rango, pero tienen una limitación evidente: solo te dan el primero de la lista. Si necesitas saber cuál es el segundo mejor resultado, el tercer peor, o cualquier posición intermedia de un ranking, MAX y MIN se quedan completamente cortos y no tienen forma de ayudarte. Ahí es exactamente donde entran K.ESIMO.MAYOR y K.ESIMO.MENOR.
K.ESIMO.MAYOR devuelve el k-ésimo valor más grande de un conjunto de datos: si le pides la posición 1, se comporta exactamente como MAX; si le pides la posición 2, te da el segundo valor más alto; y así sucesivamente hasta la posición que quieras. K.ESIMO.MENOR hace lo mismo pero empezando por el otro extremo de la lista: la posición 1 equivale a MIN, la posición 2 es el segundo valor más bajo, la posición 3 el tercero, etcétera.
La diferencia clave con MAX y MIN
La diferencia no es solo técnica, es sobre todo de flexibilidad. Con MAX y MIN tienes una fórmula fija que siempre apunta al mismo extremo de los datos. Con K.ESIMO.MAYOR y K.ESIMO.MENOR tienes un parámetro k que puedes cambiar a mano, o hacer que cambie solo al arrastrar la fórmula, lo que te permite construir rankings dinámicos, tablas de clasificación o simplemente consultar «¿cuál fue el tercer mes con más ventas?» sin tener que ordenar manualmente toda la tabla cada vez que cambian los datos. Si lo que necesitas es directamente ordenar y clasificar listas completas, quizá te interese también la función JERARQUIA o la más moderna función ORDENAR, que se complementan muy bien con K.ESIMO.MAYOR como iremos viendo más adelante.
Sintaxis de K.ESIMO.MAYOR y K.ESIMO.MENOR
Antes de meternos en ejemplos concretos, conviene dejar clara la sintaxis de las dos funciones, porque son casi idénticas y solo cambia el sentido en el que cuentan las posiciones.
Sintaxis de K.ESIMO.MAYOR
La sintaxis de K.ESIMO.MAYOR es =K.ESIMO.MAYOR(matriz; k). El argumento matriz es el rango de celdas donde están tus datos numéricos, y el argumento k es la posición que quieres consultar contando desde el valor más alto. Por ejemplo, =K.ESIMO.MAYOR(B2:B20; 1) te da el valor máximo del rango (igual que MAX), mientras que =K.ESIMO.MAYOR(B2:B20; 2) te da el segundo valor más alto.
Sintaxis de K.ESIMO.MENOR
K.ESIMO.MENOR funciona en espejo: =K.ESIMO.MENOR(matriz; k). Aquí k cuenta posiciones desde el valor más bajo. Así, =K.ESIMO.MENOR(B2:B20; 1) equivale a MIN, y =K.ESIMO.MENOR(B2:B20; 3) te da el tercer valor más bajo de toda la lista. Ambos argumentos son obligatorios en las dos funciones: si omites k, Excel te devuelve directamente un error de sintaxis.
Cómo sacar el 2º y el 3º valor más alto (o más bajo) en Excel
El caso de uso más habitual de K.ESIMO.MAYOR es precisamente este: no quieres el ganador, quieres saber quién o qué quedó en segundo o tercer lugar. Por ejemplo, en una lista de ventas por comercial, en unos resultados de una competición, o en una tabla de productos por unidades vendidas.
Ejemplos directos con distintos valores de k
| Fórmula | Resultado |
|---|---|
| =K.ESIMO.MAYOR(B2:B20;1) | Valor más alto del rango (equivale a MAX) |
| =K.ESIMO.MAYOR(B2:B20;2) | Segundo valor más alto del rango |
| =K.ESIMO.MAYOR(B2:B20;3) | Tercer valor más alto del rango |
| =K.ESIMO.MENOR(B2:B20;2) | Segundo valor más bajo del rango |
Esto es especialmente útil cuando quieres comparar el mejor resultado con el segundo o el tercero para ver si hay mucha diferencia entre ellos, algo que también puedes combinar con la función MEDIA para saber si esos valores están muy por encima o por debajo del promedio de todo el grupo. Un patrón muy común es escribir en la misma hoja tres celdas con k=1, k=2 y k=3 y dejar que se actualicen solas cada vez que cambian los datos de origen, sin tener que ir a buscar manualmente el segundo o tercer puesto cada vez.
Montar un TOP 5 automático arrastrando la fórmula
Escribir cinco fórmulas sueltas cambiando el valor de k a mano (1, 2, 3, 4 y 5) funciona, pero no es nada elegante ni escalable. La forma profesional de montar un top 5 automático es usar la función FILA() para que el propio Excel vaya generando el valor de k según arrastras la fórmula hacia abajo.
El truco de FILA()-fila_inicial
La función FILA() devuelve el número de fila de la celda donde está escrita. Si en la primera celda de tu top 5 restas el número de fila anterior al inicio de la lista, consigues que k valga 1 en la primera fila, 2 en la segunda, 3 en la tercera, y así sucesivamente según arrastras la fórmula hacia abajo. La fórmula genérica es =K.ESIMO.MAYOR($B$2:$B$20; FILA()-fila_inicial), donde fila_inicial es el número de fila justo anterior a donde empiezas a escribir tu ranking. Si tu top 5 empieza en la celda D2, y los datos ocupan B2:B20, la fórmula quedaría como =K.ESIMO.MAYOR($B$2:$B$20; FILA()-1).
- Fija el rango de datos con signos de dólar, por ejemplo $B$2:$B$20, para que no se mueva al arrastrar la fórmula hacia abajo.
- En la primera celda de tu top 5 (por ejemplo D2), escribe =K.ESIMO.MAYOR($B$2:$B$20; FILA()-1).
- Comprueba que fila_inicial coincide con el número de la fila justo anterior a D2, en este caso la fila 1.
- Arrastra la fórmula hacia abajo hasta completar las cinco filas de tu ranking.
- Excel recalculará automáticamente k como 1, 2, 3, 4 y 5 en cada una de las filas, sin que tengas que escribir nada más.
Ejemplo de un top 5 de ventas terminado
| Puesto | Fórmula | Ventas |
|---|---|---|
| 1º | =K.ESIMO.MAYOR($B$2:$B$11;1) | 98.500 € |
| 2º | =K.ESIMO.MAYOR($B$2:$B$11;2) | 91.200 € |
| 3º | =K.ESIMO.MAYOR($B$2:$B$11;3) | 87.750 € |
| 4º | =K.ESIMO.MAYOR($B$2:$B$11;4) | 84.300 € |
| 5º | =K.ESIMO.MAYOR($B$2:$B$11;5) | 79.900 € |
Sacar el nombre de quien ocupa cada puesto: BUSCARV e INDICE + COINCIDIR
El problema de K.ESIMO.MAYOR por sí sola es que solo te da el número, no te dice quién consiguió ese resultado. Si tu top 5 tiene que mostrar nombres de comerciales, productos o participantes, necesitas combinarla con una función de búsqueda.
Con BUSCARV
Si tu tabla tiene las ventas en la columna B y los nombres en la columna C, puedes usar BUSCARV para localizar el nombre asociado al valor que ocupa cada posición: =BUSCARV(K.ESIMO.MAYOR($B$2:$B$11;FILA()-1); $B$2:$C$11; 2; FALSO). Ojo con un detalle importante de BUSCARV: la columna que contiene el valor por el que buscas (las ventas) tiene que estar a la izquierda de la columna que quieres devolver (el nombre), o la fórmula no funcionará.
Con INDICE y COINCIDIR (más flexible)
Como esa limitación de orden de columnas de BUSCARV es bastante molesta, muchas veces conviene usar directamente la combinación INDICE y COINCIDIR, que funciona sin importar en qué columna esté cada dato: =INDICE($A$2:$A$11; COINCIDIR(K.ESIMO.MAYOR($B$2:$B$11;FILA()-1); $B$2:$B$11; 0)). Aquí COINCIDIR localiza la posición del valor dentro del rango de ventas, e INDICE devuelve el nombre que está en esa misma posición dentro del rango de nombres.
| Puesto | Nombre | Ventas |
|---|---|---|
| 1º | Marta | 98.500 € |
| 2º | Javier | 91.200 € |
| 3º | Laura | 87.750 € |
| 3º (empate real) | Sergio | 87.750 € |
| 5º | Pablo | 84.300 € |
| 6º | Ana | 79.900 € |
Sacar los 3 valores más bajos con K.ESIMO.MENOR
El mismo razonamiento que hemos aplicado con los valores más altos funciona en espejo con los más bajos usando K.ESIMO.MENOR. Es la función perfecta para encontrar, por ejemplo, los 3 gastos más bajos de un mes, los tiempos más rápidos en una carrera, o los productos con menos unidades vendidas.
Ejemplo con una lista de gastos
Si tienes una lista de gastos en el rango B2:B20 y quieres sacar los tres más bajos, usarías =K.ESIMO.MENOR($B$2:$B$20;1) para el más bajo de todos, =K.ESIMO.MENOR($B$2:$B$20;2) para el segundo más bajo, y =K.ESIMO.MENOR($B$2:$B$20;3) para el tercero. Exactamente igual que con el top 5 de valores altos, puedes usar el truco de FILA()-fila_inicial para arrastrar la fórmula y no tener que cambiar el 1, el 2 y el 3 a mano en cada celda.
Este uso de K.ESIMO.MENOR es muy habitual en control de costes, donde interesa detectar qué partidas están consumiendo menos presupuesto, o en análisis de rendimiento, donde localizar los valores más bajos ayuda a identificar cuellos de botella o resultados que conviene revisar de cerca.
El error #¡NUM! en K.ESIMO.MAYOR y K.ESIMO.MENOR: por qué aparece y cómo evitarlo
Tarde o temprano, si arrastras estas fórmulas sin cuidado, te vas a encontrar con el error #¡NUM!. Es el error más común de estas dos funciones y casi siempre tiene la misma causa.
La causa más habitual: k mayor que el número de datos
El error #¡NUM! aparece sobre todo cuando el valor de k es mayor que la cantidad de datos numéricos que hay realmente en la matriz. Si tu rango tiene 8 valores y le pides el puesto número 10 con =K.ESIMO.MAYOR(B2:B9;10), Excel no tiene ningún dato en esa posición y te devuelve el error. Esto pasa muchísimo cuando montas un top 10 arrastrando la fórmula pero tu lista real solo tiene 7 u 8 elementos con datos.
Otras causas del error #¡NUM!
También aparece #¡NUM! si el argumento k es cero, negativo o no es un número entero válido, o si la matriz que le pasas está completamente vacía o no contiene ningún valor numérico. Revisar que el rango de datos y el valor de k tienen sentido resuelve el 99% de los casos.
=SI(FILA()-1>CONTAR($B$2:$B$20); ""; K.ESIMO.MAYOR($B$2:$B$20;FILA()-1)). Así, en lugar de mostrar el error #¡NUM! en las filas sobrantes, la celda se queda simplemente en blanco.Usar K.ESIMO.MAYOR con condiciones: rankings dentro de una categoría
A veces no quieres el segundo o tercer valor de toda la tabla, sino el segundo o tercer valor dentro de una categoría concreta: el segundo comercial con más ventas pero solo dentro de la región Norte, por ejemplo. Aquí es donde las cosas se complican un poco, porque K.ESIMO.MAYOR no admite un argumento de criterio como sí hacen SUMAR.SI o CONTAR.SI.
Ejemplo paso a paso con fórmula matricial
Para sacar el segundo valor más alto de la columna B pero solo entre las filas donde la columna C sea igual a «Norte», la fórmula sería: =K.ESIMO.MAYOR(SI($C$2:$C$20="Norte";$B$2:$B$20); 2). Lo que hace el SI() interno es sustituir por FALSO todos los valores de filas que no cumplen la condición, de modo que K.ESIMO.MAYOR solo tiene en cuenta los números que sí pertenecen a la categoría «Norte» a la hora de calcular las posiciones.
En versiones antiguas de Excel esta fórmula hay que introducirla como fórmula matricial pulsando Ctrl + Mayús + Intro en lugar de solo Intro, y Excel la mostrará automáticamente entre llaves {}. En Excel 365, gracias a las matrices dinámicas, basta con pulsar Intro con normalidad y el resultado se calcula igual.
K.ESIMO.MAYOR y K.ESIMO.MENOR en Google Sheets: LARGE y SMALL
Si trabajas en Google Sheets en lugar de en Excel de escritorio, buscar «K.ESIMO.MAYOR» o «K.ESIMO.MENOR» en el buscador de funciones no te va a llevar a ningún sitio, porque Google Sheets traduce los nombres de función al idioma de la hoja: con la hoja en español usarás K.ESIMO.MAYOR y K.ESIMO.MENOR, y con la hoja en inglés LARGE y SMALL.
Mismo comportamiento, distinto nombre
En Google Sheets con la hoja en español, K.ESIMO.MAYOR y K.ESIMO.MENOR se escriben igual que en Excel; con la hoja en inglés se llaman LARGE y SMALL. El orden de los argumentos es idéntico: primero el rango y después la posición k.
| Excel / Sheets en español | Sheets en inglés | Qué hace |
|---|---|---|
| K.ESIMO.MAYOR(matriz; k) | LARGE(rango; k) | Devuelve el k-ésimo valor más alto |
| K.ESIMO.MENOR(matriz; k) | SMALL(rango; k) | Devuelve el k-ésimo valor más bajo |
Todo lo explicado en este artículo, incluido el truco del top 5 automático con FILA()-fila_inicial (que en Google Sheets también se escribe FILA(), o ROW() si tienes la hoja en inglés), funciona exactamente igual; si tu hoja está en inglés, sustituye K.ESIMO.MAYOR por LARGE y K.ESIMO.MENOR por SMALL. Si compartes plantillas entre Excel y Sheets, merece la pena dejar anotado en la propia hoja qué nombre usa cada plataforma para evitar confusiones al abrir el archivo en un programa distinto.
Nuestras plantillas ya traen los rankings montados. Descárgalas gratis.
Preguntas habituales
¿Cuál es la diferencia entre K.ESIMO.MAYOR y MAX?
¿Cómo saco el segundo valor más alto en Excel?
¿Por qué me da error #¡NUM! la función K.ESIMO.MAYOR?
¿Cómo hago un top 5 con nombres, no solo con los números?
¿Qué pasa con K.ESIMO.MAYOR si hay valores repetidos o empatados?
¿Existe una función K.ESIMO.MAYOR.SI para aplicar condiciones?
¿Cómo se llaman K.ESIMO.MAYOR y K.ESIMO.MENOR en Google Sheets?
¿Puedo usar K.ESIMO.MENOR para encontrar el valor mínimo?
Lo esencial
Las funciones K.ESIMO.MAYOR y K.ESIMO.MENOR son una de esas herramientas de Excel que parecen menores hasta el día en que las necesitas de verdad, y entonces se convierten en imprescindibles. Con solo dos argumentos, matriz y k, puedes construir rankings dinámicos, tops automáticos que se arrastran con FILA()-fila_inicial, y comparativas del tipo «¿cuánto le saca el primero al segundo?» sin tocar una sola vez el botón de ordenar.
Recuerda los puntos clave: K.ESIMO.MAYOR y K.ESIMO.MENOR con k=1 equivalen a MAX y MIN; puedes sacar el nombre de cada puesto combinándolas con BUSCARV o INDICE y COINCIDIR, vigilando siempre los empates; el error #¡NUM! casi siempre significa que k es mayor que el número de datos disponibles; y si necesitas aplicar condiciones, tendrás que envolver la matriz en un SI() dentro de una fórmula matricial. Y si trabajas en Google Sheets, todo funciona exactamente igual (con la hoja en inglés, los nombres pasan a ser LARGE y SMALL).
Excel® es una marca registrada de Microsoft Corporation. Este sitio no está afiliado a Microsoft.