Menu

ORDENAR y ORDENARPOR en Excel: ordenar con una fórmula

=ORDENAR(A2:C7;3;-1) devuelve la tabla A2:C7 ordenada por su tercera columna, de mayor a menor, y se reordena cuando cambian los datos. ORDENARPOR ordena por cualquier rango, también por varias columnas y en un orden personalizado.

Todas las hojas de esta página están vivas: cambia un número o una fórmula y se recalculan.

=SORT(A2:C7,3,-1) devuelve la tabla A2:C7 ordenada por su tercera columna, las ventas, de mayor a menor. En Excel en español la función se llama ORDENAR (SORT en inglés), y la tabla también acepta las fórmulas escritas en español, con punto y coma (o con comas, como en México): =ORDENAR(A2:C7;3;-1). La tabla original se queda como está; la copia ordenada se derrama desde la celda de la fórmula y se reordena cuando cambia un número. Cambia C7 a 300 y Finn sube al primer puesto.

Ventas de mayor a menor
E2
ABCDEFG
1NameRegionSalesNameRegionSales
2AnnNorth120CaraNorth200
3BenSouth80DanEast150
4CaraNorth200AnnNorth120
5DanEast150EveSouth95
6EveSouth95BenSouth80
7FinnNorth60FinnNorth60
Haz clic en una celda para ver su fórmula. Cambia un número o una fórmula y la hoja se recalcula.En Excel en español: =ORDENAR(A2:C7;3;-1)

Sintaxis de ORDENAR

=SORT(array, [sort_index], [sort_order], [by_col])
  • array (matriz) es el rango que se ordena y se devuelve.
  • sort_index es el número de columna dentro de array por la que se ordena. Por defecto, 1.
  • sort_order es 1 para ascendente (por defecto) o -1 para descendente.
  • by_col es FALSO (por defecto) para ordenar filas y VERDADERO para ordenar columnas de izquierda a derecha.

ORDENAR y ORDENARPOR necesitan Excel 2021, Excel 2024 o Microsoft 365; las versiones anteriores muestran #¿NOMBRE? (#NAME? en inglés; la tabla muestra los nombres de error en inglés). Google Sheets tiene las dos, aunque su SORT recibe un número de columna y TRUE o FALSE en parejas.

El orden ascendente pone primero los números, luego el texto de la A a la Z, y después FALSO y VERDADERO. El texto se compara sin tener en cuenta las mayúsculas. Las celdas vacías de array vuelven como 0 en el resultado.

Cómo ordenar alfabéticamente en Excel

Para reordenar una lista en el sitio, haz clic en cualquier celda de ella y elige Datos > Ordenar de A a Z (o de Z a A). Si la lista tiene columnas vecinas, Excel ordena toda la tabla para que cada fila se mantenga unida. Usa Datos > Ordenar para más de una columna o para una lista personalizada.

Para conservar el orden original y obtener una copia alfabética que se actualiza sola, usa ORDENAR sin más argumentos:

Nombres de la A a la Z
C2
ABC
1NameA to Z
2MiaAnn
3BenBen
4ZoeCara
5AnnDan
6LeoLeo
7CaraMia
8DanZoe
Haz clic en una celda para ver su fórmula. Cambia un número o una fórmula y la hoja se recalcula.En Excel en español: =ORDENAR(A2:A8)

Escribe Abe en A3 y aparece el primero. =ORDENAR(A2:A8;;-1) va de la Z a la A; los dos separadores seguidos se saltan sort_index. Para ordenar alfabéticamente una lista sin repeticiones, ordena el resultado de UNICOS: =ORDENAR(UNICOS(A2:A8)) (consulta UNICOS).

ORDENARPOR: ordenar por una columna que no devuelves

ORDENAR solo puede ordenar por una columna del rango que devuelve. ORDENARPOR (SORTBY en inglés) recibe la clave de ordenación como un rango aparte, así que puedes devolver solo los nombres, ordenados por ventas:

Nombres ordenados por ventas
E2
ABCDE
1NameRegionSalesBy sales
2AnnNorth120Cara
3BenSouth80Dan
4CaraNorth200Ann
5DanEast150Eve
6EveSouth95Ben
7FinnNorth60Finn
Haz clic en una celda para ver su fórmula. Cambia un número o una fórmula y la hoja se recalcula.En Excel en español: =ORDENARPOR(A2:A7;C2:C7;-1)

El resultado es Cara, Dan, Ann, Eve, Ben, Finn. La sintaxis, en su forma inglesa, es =SORTBY(array, by_array1, [sort_order1], [by_array2, sort_order2], ...). Cada by_array debe tener tantas filas como array; si no, ORDENARPOR devuelve #¡VALOR! (#VALUE! en inglés).

Para un top 3, toma las primeras filas del resultado: =TOMAR(ORDENARPOR(A2:A7;C2:C7;-1);3) devuelve a Cara, Dan y Ann. TOMAR necesita Microsoft 365 o Excel 2024; en Excel 2021 usa =INDICE(ORDENARPOR(A2:A7;C2:C7;-1);SECUENCIA(3)).

Ordenar por varias columnas

Dale a ORDENARPOR una pareja de clave y orden por nivel. Esto ordena por región de la A a la Z y, dentro de cada región, por ventas de mayor a menor:

Región de la A a la Z, luego ventas de mayor a menor
E2
ABCDEFG
1NameRegionSalesNameRegionSales
2AnnNorth120DanEast150
3BenSouth80CaraNorth200
4CaraNorth200AnnNorth120
5DanEast150FinnNorth60
6EveSouth95EveSouth95
7FinnNorth60BenSouth80
Haz clic en una celda para ver su fórmula. Cambia un número o una fórmula y la hoja se recalcula.En Excel en español: =ORDENARPOR(A2:C7;B2:B7;1;C2:C7;-1)

East va primero, luego las tres filas de North como Cara (200), Ann (120) y Finn (60), y después South. ORDENAR puede hacer lo mismo con matrices de números de columna y de órdenes, aunque ORDENARPOR se lee mejor:

=SORT(A2:C7,{2,3},{1,-1})

Esta fórmula lleva constantes matriciales entre llaves y aquí está en su forma inglesa.

Ordenar en un orden personalizado

El orden alfabético no siempre es el que quieres. Para ordenar las regiones como North, East, South, convierte cada región en su posición en esa lista con COINCIDIR (MATCH en inglés) y ordena por las posiciones:

Primero North, luego East, luego South
E2
ABCDEFG
1NameRegionSalesNameRegionSales
2AnnNorth120AnnNorth120
3BenSouth80CaraNorth200
4CaraNorth200FinnNorth60
5DanEast150DanEast150
6EveSouth95BenSouth80
7FinnNorth60EveSouth95
Haz clic en una celda para ver su fórmula. Cambia un número o una fórmula y la hoja se recalcula.

COINCIDIR devuelve 1 para North, 2 para East y 3 para South, y ORDENARPOR ordena por esos números. Las filas con la misma clave mantienen su orden original, así que las filas de North siguen siendo Ann, Cara, Finn. El mismo truco ordena meses o días de la semana por su nombre: escríbelos en orden de calendario dentro de COINCIDIR. Una región que no está en la lista obtiene #N/A de COINCIDIR; usa como clave IFERROR(MATCH(B2:B7,{"North","East","South"},0),99) (en su forma inglesa, por la constante matricial) para poner esas filas al final.

Práctica: nombres ordenados por ventas

Tu turno
E2
ABCDE
1NameRegionSalesBy sales
2AnnNorth120
3BenSouth80
4CaraNorth200
5DanEast150
6EveSouth95
7FinnNorth60
Haz clic en una celda para ver su fórmula. Cambia un número o una fórmula y la hoja se recalcula.

Tu turno: En E2, devuelve solo los nombres, ordenados por ventas de mayor a menor.

La función ORDENAR o el botón Ordenar

Los dos ordenan, pero hacen trabajos distintos:

Datos > OrdenarORDENAR y ORDENARPOR
Cambia la tabla originalSíNo, el resultado va a celdas nuevas
Se actualiza cuando cambian los datosNo, hay que volver a ordenarSí
Funciona en Excel 2019 y anterioresSíNo
El resultado se puede editar celda a celdaSíNo, es una sola fórmula
Se puede envolver en otra fórmulaNoSí, por ejemplo =TOMAR(ORDENAR(A2:C7;3;-1);3)

Usa el botón para ordenar una tabla una vez. Usa la función para un informe o un panel que tiene que seguir ordenado mientras cambian los datos. Si las celdas de debajo o de la derecha de la fórmula no están vacías, la función muestra #SPILL! en lugar de la lista ordenada; vacíalas y aparece (consulta error #SPILL!).

Preguntas frecuentes

¿Cómo ordeno datos con una fórmula en Excel?

Usa ORDENAR: =ORDENAR(A2:C7;3;-1) devuelve A2:C7 ordenada por su tercera columna, de mayor a menor. Omite los dos últimos argumentos, =ORDENAR(A2:A8), para ordenar por la primera columna de menor a mayor, o de la A a la Z si es texto.

¿Qué diferencia hay entre ORDENAR y ORDENARPOR?

ORDENAR ordena por una columna del rango que devuelve, elegida por número. ORDENARPOR ordena por cualquier rango que le des, aunque no lo devuelva: =ORDENARPOR(A2:A7;C2:C7;-1) devuelve solo los nombres, ordenados por ventas. ORDENARPOR también recibe varias claves de ordenación directamente.

¿Cómo ordeno alfabéticamente una lista en Excel?

Selecciona una celda de la lista y haz clic en Datos > Ordenar de A a Z para reordenarla en el sitio. Para conservar la original y obtener una copia ordenada que se actualiza, escribe =ORDENAR(A2:A8) en una celda vacía; usa =ORDENAR(A2:A8;;-1) para ir de la Z a la A.

¿Cómo ordeno por dos columnas con una fórmula?

Dale a ORDENARPOR dos parejas de clave y orden: =ORDENARPOR(A2:C7;B2:B7;1;C2:C7;-1) ordena por región de la A a la Z y, dentro de cada región, por ventas de mayor a menor.

¿Qué versiones de Excel tienen ORDENAR y ORDENARPOR?

Excel 2021, Excel 2024 y Microsoft 365. En Excel 2019 y anteriores muestran #¿NOMBRE?, y la forma de ordenar es el botón Ordenar de la pestaña Datos.

Ilustración de los lenguajes de programación de Coddy

Aprende a programar con Coddy

COMENZAR