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.

fxBlog

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.

Listo·Alejandro·17 min de lectura·Actualizado 9 Oct 2026

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.

K.ESIMO.MAYOR y K.ESIMO.MENOR en Excel (el 2º, 3º… y el top N)
K.ESIMO.MAYOR y K.ESIMO.MENOR en Excel (el 2º, 3º… y el top N)

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.

📌
K.ESIMO.MAYOR con k=1 es literalmente MAXUn truco sencillo para recordar cómo funcionan estas funciones: K.ESIMO.MAYOR(matriz;1) es idéntico a MAX(matriz), y K.ESIMO.MENOR(matriz;1) es idéntico a MIN(matriz). A partir de ahí, cada aumento de k te va moviendo una posición hacia el centro de la distribución de datos.

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órmulaResultado
=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).

  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.
  2. En la primera celda de tu top 5 (por ejemplo D2), escribe =K.ESIMO.MAYOR($B$2:$B$20; FILA()-1).
  3. Comprueba que fila_inicial coincide con el número de la fila justo anterior a D2, en este caso la fila 1.
  4. Arrastra la fórmula hacia abajo hasta completar las cinco filas de tu ranking.
  5. 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.
💡
Arrastra sin miedo, incluso más allá de un top 5Como la matriz está bloqueada con signos de dólar ($B$2:$B$20) y solo cambia FILA(), puedes arrastrar la fórmula tantas filas como necesites: si quieres un top 10 en vez de un top 5, simplemente arrastra cinco filas más y k seguirá aumentando de uno en uno sin que tengas que tocar nada más de la fórmula.

Ejemplo de un top 5 de ventas terminado

PuestoFórmulaVentas
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.

⚠️
Cuidado con los empatesSi dos personas tienen exactamente el mismo valor de ventas, tanto BUSCARV como COINCIDIR siempre devuelven el primer nombre que encuentran con ese valor, aunque en la práctica haya dos personas empatadas en esa posición del ranking. Esto significa que si tu top 5 tiene un empate en el tercer puesto, el nombre que aparecerá en las dos filas correspondientes a esa posición será exactamente el mismo, y la persona real que ocupa la «otra mitad» del empate quedará invisible en el listado. Para detectarlo, añade una columna auxiliar que cuente cuántas veces aparece cada valor en el rango con CONTAR.SI, o desempata sumando un pequeño decimal distinto a cada valor original antes de rankear.
PuestoNombreVentas
1ºMarta98.500 €
2ºJavier91.200 €
3ºLaura87.750 €
3º (empate real)Sergio87.750 €
5ºPablo84.300 €
6ºAna79.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.

⚠️
Cómo blindar tu fórmula frente al #¡NUM!Si vas a arrastrar la fórmula más allá del número real de datos disponibles, envuélvela en un SI que compruebe antes cuántos valores hay con la función CONTAR: =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.

📌
MAX.SI.CONJUNTO existe, pero no hay una versión k-ésima nativaExcel sí incluye las funciones MAX.SI.CONJUNTO y MIN.SI.CONJUNTO para calcular directamente el máximo o el mínimo condicionado a uno o varios criterios. El problema es que no existe una función nativa equivalente para el segundo o tercer valor condicionado: no hay ningún «K.ESIMO.MAYOR.SI.CONJUNTO». Para conseguirlo hay que recurrir a una fórmula matricial que combine SI() con K.ESIMO.MAYOR.

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ñolSheets en inglésQué 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.

¿Sacas un top de tus datos?

Nuestras plantillas ya traen los rankings montados. Descárgalas gratis.

Ver la plantilla →

Preguntas habituales

¿Cuál es la diferencia entre K.ESIMO.MAYOR y MAX?
MAX solo devuelve el valor más alto de un rango y no admite ningún parámetro de posición. K.ESIMO.MAYOR hace lo mismo cuando k=1, pero además te permite pedir el segundo, tercero o cualquier otro puesto del ranking cambiando el valor de k, algo que MAX no puede hacer en ningún caso.
¿Cómo saco el segundo valor más alto en Excel?
Usa la fórmula =K.ESIMO.MAYOR(rango;2), sustituyendo «rango» por las celdas donde están tus datos. El número 2 le indica a la función que quieres la segunda posición contando desde el valor más alto.
¿Por qué me da error #¡NUM! la función K.ESIMO.MAYOR?
Casi siempre porque el valor de k es mayor que la cantidad de datos numéricos que hay realmente en la matriz, por ejemplo al pedir el puesto 10 en una lista que solo tiene 7 valores. También aparece si k es cero, negativo o la matriz está vacía.
¿Cómo hago un top 5 con nombres, no solo con los números?
Combina K.ESIMO.MAYOR con BUSCARV o con INDICE y COINCIDIR. Primero obtienes el valor numérico de cada puesto con K.ESIMO.MAYOR, y después usas ese valor como criterio de búsqueda para localizar el nombre asociado en otra columna de la tabla.
¿Qué pasa con K.ESIMO.MAYOR si hay valores repetidos o empatados?
K.ESIMO.MAYOR trata cada valor repetido como una posición independiente: si hay dos personas con el mismo resultado, tanto la posición 1 como la posición 2 devolverán ese mismo número. El problema aparece al buscar el nombre con BUSCARV o COINCIDIR, porque siempre devuelven el primer nombre encontrado con ese valor, dejando invisible a la otra persona empatada.
¿Existe una función K.ESIMO.MAYOR.SI para aplicar condiciones?
No, no existe de forma nativa en Excel. Sí hay MAX.SI.CONJUNTO y MIN.SI.CONJUNTO para el máximo y el mínimo condicionados, pero para el segundo o tercer valor condicionado hay que construir una fórmula matricial combinando SI() con K.ESIMO.MAYOR, por ejemplo =K.ESIMO.MAYOR(SI(condición;rango);k).
¿Cómo se llaman K.ESIMO.MAYOR y K.ESIMO.MENOR en Google Sheets?
Google Sheets traduce los nombres al idioma de la hoja: con la hoja en español se llaman igual que en Excel, y con la hoja en inglés se llaman LARGE y SMALL, con la sintaxis LARGE(rango;k) y SMALL(rango;k). El comportamiento y el orden de los argumentos son idénticos a los de Excel.
¿Puedo usar K.ESIMO.MENOR para encontrar el valor mínimo?
Sí. =K.ESIMO.MENOR(rango;1) es exactamente equivalente a =MIN(rango). La ventaja de usar K.ESIMO.MENOR incluso para el mínimo es que puedes cambiar fácilmente el 1 por un 2 o un 3 si más adelante necesitas también el segundo o tercer valor más bajo sin reescribir la fórmula desde cero.

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.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *