Función ORDENAR en Excel (ordenar con fórmula)

Ordena datos en Excel con la función ORDENAR (matriz dinámica) sin tocar el original, y con ORDENARPOR por otra columna. Guía con ejemplos.

fxBlog

Función ORDENAR en Excel (ordenar con fórmula)

Ordena datos en Excel con la función ORDENAR (matriz dinámica) sin tocar el original, y con ORDENARPOR por otra columna. Guía con ejemplos.

Listo·Alejandro·15 min de lectura·Actualizado 5 Oct 2026

Cuando alguien necesita ordenar una lista en Excel, lo primero que suele hacer es seleccionar el rango y pulsar el botón Ordenar de la pestaña Datos. Funciona, pero tiene un inconveniente serio: es un proceso manual que reorganiza físicamente las filas originales y que hay que repetir cada vez que cambian los datos. La función ORDENAR en Excel soluciona este problema con una fórmula: ordena una matriz y devuelve el resultado como una matriz dinámica que se derrama (spill) en las celdas vecinas, sin tocar ni una sola celda del rango de origen.

ORDENAR es, junto a FILTRAR y UNICOS, una de las funciones más importantes que trajo Excel 365. En esta guía vas a ver la sintaxis completa de =ORDENAR(), cómo ordenar en orden ascendente y descendente, cómo ordenar por una columna que no es la primera, qué hace su función hermana ORDENARPOR, cómo combinar ORDENAR con FILTRAR y UNICOS para montar rankings automáticos (como un top 5 que se actualiza solo), en qué se diferencia realmente de la ordenación manual, por qué aparece el error #¡DESBORDE! y cómo se comporta en distintas versiones de Excel y en Google Sheets.

Función ORDENAR en Excel (ordenar con fórmula)
Función ORDENAR en Excel (ordenar con fórmula)

Qué es la función ORDENAR y qué significa que devuelva una matriz dinámica

La función ORDENAR toma un rango o una matriz de datos y devuelve esos mismos datos ordenados, pero como resultado de una fórmula, no como una acción sobre las celdas originales. Esto significa que si escribes =ORDENAR(A2:C10) en la celda E2, Excel no mueve nada en el rango A2:C10: calcula el orden correcto y derrama el resultado hacia abajo y hacia la derecha a partir de E2, ocupando tantas celdas como haga falta.

Ese comportamiento se llama matriz dinámica o spill (derrame). El área que ocupa el resultado se conoce como rango de derrame, y Excel lo marca con un borde azul discontinuo cuando seleccionas la celda de origen de la fórmula. Si los datos de A2:C10 cambian —añades una fila, editas un valor de ventas, cambias un nombre—, el resultado de ORDENAR se recalcula automáticamente y el derrame se ajusta solo, sin que tengas que volver a ordenar nada a mano.

📌
Lo esencial de ORDENARORDENAR es no destructiva: nunca modifica el rango de origen. El resultado es dinámico: se actualiza solo cuando cambian los datos. Y es una sola fórmula en la celda superior izquierda del resultado, aunque ocupe muchas celdas.

Solo puedes escribir la fórmula en la celda de origen del derrame; las demás celdas que ocupa el resultado quedan controladas por la fórmula: no puedes editar su contenido, y si escribes un valor en ellas la fórmula de origen devolverá #¡DESBORDE!. Para referenciar todo el resultado de una función ORDENAR desde otra fórmula, se usa el operador almohadilla: si la fórmula está en E2, escribes =E2# para apuntar a todo el rango de derrame, se expanda o encoja como se expanda.

Sintaxis de la función ORDENAR

La sintaxis completa en español es =ORDENAR(matriz; [índice_col]; [orden]; [por_columna]). Solo el primer argumento es obligatorio; los otros tres son opcionales y tienen un valor por defecto sensato.

ArgumentoQué hace
matrizEl rango o la matriz que quieres ordenar. Es el único argumento obligatorio.
índice_colNúmero de columna (o de fila, si por_columna es VERDADERO) por la que se ordena. Si se omite, ordena por la primera columna.
orden1 para ascendente (valor por defecto) o -1 para descendente.
por_columnaFALSO por defecto: ordena filas comparando valores de columnas. VERDADERO: ordena columnas comparando valores de filas.

Un ejemplo mínimo: si tienes esta tabla de vendedores en A2:C6, la fórmula =ORDENAR(A2:C6;3;-1) te devuelve la misma tabla ordenada por la tercera columna (Ventas) de mayor a menor.

VendedorRegiónVentas
AnaNorte4500
LuisSur3200
MartaNorte6100
PedroEste2900
SofíaSur5300

Ordenar en orden ascendente y descendente con ORDENAR

Orden ascendente (argumento 1)

El orden ascendente es el valor por defecto, así que estas dos fórmulas hacen exactamente lo mismo sobre la tabla anterior: =ORDENAR(A2:C6;3) y =ORDENAR(A2:C6;3;1). Ambas colocan primero al vendedor con menos ventas (Pedro, 2900) y al final al que más vendió (Marta, 6100). Es útil, por ejemplo, para detectar rápidamente los valores más bajos de una lista: el producto con menos stock, el mes con menos facturación, el empleado con menos horas registradas.

Orden descendente (argumento -1)

Para invertir el criterio basta con cambiar el tercer argumento a -1: =ORDENAR(A2:C6;3;-1). Ahora la primera fila del resultado es Marta (6100) y la última es Pedro (2900). Este es el uso más habitual cuando quieres construir un ranking, un top de ventas o cualquier lista donde lo relevante está arriba.

💡
Recuerda el signoNo hay más valores válidos que 1 y -1 para el argumento orden. Si escribes 0, «asc» o «desc», ORDENAR devuelve un error #¡VALOR!. Piensa en ello como un interruptor: 1 sube de menor a mayor, -1 baja de mayor a menor.

Ordenar por una columna que no es la primera

Uno de los mayores puntos a favor de ORDENAR frente al ordenamiento manual es que puedes elegir cualquier columna como criterio sin tener que moverla ni reorganizar la tabla. El argumento índice_col es precisamente para eso: indica la posición de la columna dentro de la matriz, contando desde 1 dentro del propio rango que has pasado como primer argumento (no desde la columna A de la hoja).

Con la tabla de vendedores en A2:C6, si quieres ordenar por Región (la segunda columna del rango) en lugar de por Ventas, usas =ORDENAR(A2:C6;2;1). El resultado agrupa primero Este, luego Norte y después Sur, manteniendo intactas todas las columnas asociadas a cada fila. Da igual que la columna de interés esté en la posición 2, la 5 o la 20: solo cambia el número de índice_col.

💡
Índice relativo al rango, no a la hojaSi tu matriz empieza en la columna C de la hoja, la columna C es la número 1 para ORDENAR, no la columna 3. Es un error habitual al copiar fórmulas entre tablas que empiezan en columnas distintas.

Ordenar por varias columnas a la vez

ORDENAR también admite ordenar por varios criterios simultáneos, igual que harías con niveles en el cuadro de diálogo del botón Ordenar. Para eso, tanto índice_col como orden aceptan una constante matricial entre llaves: =ORDENAR(A2:C6;{1;3};{1;-1}). Esta fórmula ordena primero por la columna 1 (Vendedor) en ascendente y, como criterio de desempate dentro de cada grupo, por la columna 3 (Ventas) en descendente.

  1. Identifica qué columnas quieres usar como criterios y en qué orden de prioridad (el primero de la lista manda).
  2. Escribe sus índices entre llaves separados por punto y coma, en el mismo orden de prioridad: por ejemplo {1;3}.
  3. Escribe el sentido de cada uno en el mismo orden dentro de otras llaves: {1;-1} significa ascendente para el primer criterio y descendente para el segundo.
  4. Comprueba que ambas listas de llaves tienen la misma cantidad de elementos; si no coinciden, ORDENAR devuelve un error.

Este mecanismo es potente pero tiene un límite práctico: solo puedes ordenar por columnas que ya existen en la matriz, en el orden en que aparecen. Si necesitas ordenar por un dato que no forma parte de la tabla, o por un valor calculado, la función que te interesa es ORDENARPOR.

La función ORDENARPOR: ordenar por otra columna o por un criterio calculado

ORDENARPOR resuelve una limitación de ORDENAR: con ORDENAR solo puedes ordenar por columnas que están dentro de la propia matriz que vas a devolver. Con ORDENARPOR puedes devolver una matriz y ordenarla usando otra matriz distinta como criterio, aunque esa segunda matriz no aparezca en el resultado final. Eso incluye columnas auxiliares, fórmulas calculadas al vuelo o incluso rangos de otra hoja.

La sintaxis es =ORDENARPOR(matriz; matriz_ordenación1; [orden1]; [matriz_ordenación2]; [orden2]; …). Por ejemplo, si en D2:D6 tienes calculado el margen de beneficio de cada vendedor (una columna que no quieres mostrar en el resultado), puedes escribir =ORDENARPOR(A2:C6;D2:D6;-1) para devolver los nombres y ventas de A2:C6 ordenados por ese margen oculto, de mayor a menor.

Necesitas…Usa
Ordenar por una columna que ya está dentro de tu matrizORDENAR con índice_col
Ordenar por un criterio externo, calculado o de otra tablaORDENARPOR con una o varias matrices de ordenación
Ordenar por varias columnas propias de la matrizORDENAR con constantes matriciales {1;2}
Ordenar combinando columnas propias y externasORDENARPOR admite mezclar varios pares matriz_ordenación/orden
📌
ORDENAR frente a ORDENARPORCon ORDENAR el criterio de orden vive dentro de la matriz que devuelves. Con ORDENARPOR el criterio puede vivir fuera: en otra columna, en otra hoja o en el resultado de otra fórmula. Si dudas entre las dos, pregúntate si la columna de ordenación va a aparecer en el resultado final.

Combinar ORDENAR con FILTRAR y UNICOS: rankings dinámicos

Top 5 dinámico con ORDENAR y FILTRAR

Anidar funciones de matriz dinámica es donde ORDENAR se vuelve realmente útil. Para quedarte solo con los vendedores que superan un mínimo de ventas y verlos ya ordenados de mayor a menor, combinas FILTRAR por dentro y ORDENAR por fuera: =ORDENAR(FILTRAR(A2:C6;C2:C6>3000);3;-1). Primero se filtran las filas que cumplen la condición y después se ordena ese subconjunto ya reducido, todo en una sola fórmula que se actualiza sola.

Para un top 5 propiamente dicho, en lugar de filtrar por un umbral fijo puedes ordenar toda la tabla en descendente con =ORDENAR(A2:C200;3;-1) y quedarte solo con las cinco primeras filas combinándolo con SECUENCIA e INDICE, por ejemplo referenciando el derrame con =INDICE(E2#;SECUENCIA(5);0), o, en Excel 365, con TOMAR: =TOMAR(ORDENAR(A2:C200;3;-1);5).

Ranking sin duplicados con UNICOS y ORDENAR

Cuando la lista de origen tiene valores repetidos y quieres un ranking sin duplicados —por ejemplo, la lista de regiones distintas ordenada alfabéticamente, o el listado de clientes únicos ordenado por su primera compra—, anidas UNICOS dentro de ORDENAR: =ORDENAR(UNICOS(B2:B6);1;1). Primero UNICOS elimina los duplicados de la columna Región y después ORDENAR coloca el resultado alfabéticamente.

💡
El orden de anidamiento importaFiltra o desduplica primero y ordena después: =ORDENAR(FILTRAR(…);…) o =ORDENAR(UNICOS(…);…). Si lo haces al revés arrastras más datos de los necesarios a la función más costosa y, en el caso de UNICOS, puedes acabar ordenando duplicados que aún no se han eliminado.

Estos rankings dinámicos combinan bien con funciones de búsqueda para presentar los resultados en un panel de control: por ejemplo, usar BUSCARH para traer datos adicionales de una tabla horizontal a partir del nombre ya ordenado por ORDENAR.

ORDENAR frente al botón Ordenar: fórmula dinámica contra ordenación manual

El botón Ordenar de la pestaña Datos (o el clásico Ordenar de A a Z) sigue siendo perfectamente válido para ordenaciones puntuales, pero conviene tener claro en qué se diferencia de la función ORDENAR antes de elegir uno u otro. Si buscas más detalle sobre las dos formas de trabajar, tienes una comparativa completa en cómo ordenar y filtrar en Excel.

Función ORDENARBotón Ordenar
Se recalcula sola cuando cambian los datos de origenHay que repetir la acción manualmente cada vez que cambian los datos
No modifica el rango original: genera una copia ordenadaReorganiza físicamente las filas del rango original
Se puede anidar con FILTRAR, UNICOS, ORDENARPOR, etc.Es una acción aislada, no se combina con fórmulas
Disponible en Excel 365 y Excel 2021Disponible en todas las versiones de Excel, incluidas las antiguas

En la práctica, usa el botón Ordenar cuando quieras reorganizar de forma permanente una lista que no va a cambiar (una lista de contactos, un histórico cerrado). Usa la función ORDENAR cuando el resultado deba mantenerse actualizado automáticamente, cuando necesites conservar los datos originales intactos en otra parte de la hoja, o cuando el orden forme parte de un cálculo mayor junto con otras funciones.

El error #¡DESBORDE! al usar ORDENAR

El error #¡DESBORDE! aparece cuando Excel calcula correctamente el resultado de ORDENAR pero no encuentra espacio libre suficiente para derramarlo. Es el error más frecuente al empezar a trabajar con matrices dinámicas y casi siempre tiene una causa sencilla.

  1. Hay celdas ocupadas en el camino del derrame: borra o mueve cualquier valor que esté en las celdas donde debería expandirse el resultado.
  2. La celda de origen está dentro de una Tabla de Excel (tabla estructurada): las funciones de matriz dinámica no se derraman correctamente dentro de una tabla; escribe la fórmula fuera de ella.
  3. Hay celdas combinadas en el rango de derrame: las celdas combinadas rompen el derrame porque Excel no puede repartir el resultado en una cuadrícula irregular.
  4. La hoja está protegida o el libro compartido restringe la edición del área necesaria.
⚠️
Antes de nada, comprueba el espacio libreSelecciona la celda con la fórmula ORDENAR y mira cuántas filas y columnas necesita el resultado (tantas filas como la matriz de origen, tantas columnas como tenga). Si hay cualquier dato, formato de tabla o celda combinada dentro de ese rectángulo, obtendrás #¡DESBORDE! aunque la fórmula esté perfectamente escrita.

ORDENAR en distintas versiones de Excel y en Google Sheets

La función ORDENAR (junto con ORDENARPOR, FILTRAR, UNICOS y el resto de funciones de matriz dinámica) solo está disponible en Excel 365 y en Excel 2021. Si abres un archivo con fórmulas ORDENAR en Excel 2019, 2016 o versiones anteriores, verás el error #¿NOMBRE?, porque esas versiones no reconocen la función ni el concepto de matriz dinámica. No hay forma de activarla mediante complementos: es una limitación del motor de cálculo de esas versiones.

En Google Sheets también existe una función llamada ORDENAR (SORT en inglés), pero con una sintaxis distinta a la de Excel, así que copiar y pegar la fórmula tal cual no funciona. En Sheets el orden ascendente o descendente se indica con VERDADERO o FALSO en lugar de con 1 o -1, y el separador de argumentos por defecto es la coma.

Excel (365 / 2021)Google Sheets
=ORDENAR(matriz; índice_col; orden; por_columna)=ORDENAR(rango; columna_de_ordenación; es_ascendente)
orden se indica con 1 (ascendente) o -1 (descendente)es_ascendente se indica con VERDADERO o FALSO
Separador de argumentos: punto y coma ( ; )Separador de argumentos: coma ( , ) por defecto
⚠️
Mismo nombre, sintaxis distintaQue Excel y Google Sheets usen el mismo nombre de función no significa que la fórmula sea intercambiable. Si trabajas en los dos entornos, revisa siempre el tipo de argumento de orden (número frente a VERDADERO/FALSO) antes de copiar una fórmula de uno a otro.

Una vez tienes tus datos ordenados con ORDENAR, es habitual dar el siguiente paso y resumirlos o agruparlos: si necesitas totales por región, promedios por vendedor o cualquier análisis cruzado, probablemente te interese ver cómo hacer una tabla dinámica en Excel, que complementa muy bien a las funciones de matriz dinámica cuando el objetivo ya no es solo ordenar sino agregar información.

¿Ordenas rankings a mano?

Nuestras plantillas ya traen los datos ordenados solos. Descárgalas gratis.

Ver la plantilla →

Preguntas y respuestas

¿Qué diferencia hay entre ORDENAR y ORDENARPOR?
ORDENAR ordena una matriz usando una columna que forma parte de esa misma matriz (índice_col). ORDENARPOR ordena una matriz usando una o varias matrices de ordenación externas, que pueden no aparecer en el resultado final, como una columna auxiliar o un cálculo que no quieres mostrar.
¿Puedo usar la función ORDENAR en Excel 2016 o 2019?
No. ORDENAR solo está disponible en Excel 365 y Excel 2021, porque depende del motor de matrices dinámicas introducido en esas versiones. En Excel 2019, 2016 o anteriores, la fórmula devuelve el error #¿NOMBRE?.
¿Por qué me da error #¡DESBORDE! al usar ORDENAR?
Porque el rango donde debería derramarse el resultado no está completamente vacío: hay una celda ocupada, celdas combinadas, o la fórmula está dentro de una Tabla de Excel. Libera ese espacio o mueve la fórmula fuera de la tabla estructurada y el error desaparece.
¿ORDENAR modifica mis datos originales?
No. ORDENAR es una función no destructiva: calcula el resultado ordenado y lo derrama en celdas nuevas, dejando el rango de origen exactamente como estaba. Para reordenar físicamente las filas originales necesitas el botón Ordenar de la pestaña Datos.
¿Cómo ordeno por más de una columna a la vez con ORDENAR?
Pasando constantes matriciales entre llaves en índice_col y en orden, por ejemplo =ORDENAR(A2:C6;{1;3};{1;-1}), que ordena primero por la columna 1 en ascendente y usa la columna 3 en descendente como criterio de desempate.
¿Puedo usar ORDENAR dentro de una Tabla de Excel (tabla estructurada)?
Puedes usarla como fuente (por ejemplo =ORDENAR(TablaVentas), o =ORDENAR(TablaVentas[#Datos])), pero no debes escribir la fórmula ORDENAR dentro de las celdas de la propia tabla estructurada, porque el derrame no funciona correctamente ahí y suele dar #¡DESBORDE!.
¿Cómo hago referencia a todo el resultado derramado de una fórmula ORDENAR?
Con el operador almohadilla. Si la fórmula ORDENAR está en la celda E2, escribe E2# en otra fórmula para referenciar todo el rango de derrame actual, se expanda o se reduzca según cambien los datos de origen.
¿La función ORDENAR funciona igual en Google Sheets?
Existe una función equivalente con el mismo nombre, pero la sintaxis cambia: en Google Sheets el argumento de orden se indica con VERDADERO o FALSO en lugar de 1 o -1, y el separador de argumentos habitual es la coma en vez del punto y coma.

La idea que te llevas

La función ORDENAR cambia la forma de trabajar con listas en Excel: en lugar de reordenar filas a mano cada vez que cambian los datos, escribes una fórmula que se mantiene siempre actualizada y que puedes combinar con FILTRAR, UNICOS y ORDENARPOR para construir rankings, tops y paneles que se calculan solos. Dominar su sintaxis —matriz, índice_col, orden y por_columna— y saber cuándo usar ORDENARPOR en lugar de ORDENAR es lo que marca la diferencia entre una hoja que hay que mantener a mano y una que se mantiene sola.

Si acabas de empezar con las matrices dinámicas, practica primero con ORDENAR sobre una tabla pequeña, comprueba cómo se comporta el derrame con el operador #, y después ve añadiendo capas: un FILTRAR por dentro, un UNICOS, o un ORDENARPOR con un criterio externo. Una vez interiorizado ese patrón, verás que se repite en casi todas las fórmulas de matriz dinámica de Excel.

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 *