Matrices dinámicas

Función ORDENAR en Excel: ordenar un rango con una fórmula

Devuelve un rango ordenado, como un resultado vivo que se reordena solo.

ORDENAR hace lo que el botón de ordenar de la cinta, pero como fórmula, y eso cambia para qué sirve. El botón reorganiza tus datos de forma permanente y hay que pulsarlo otra vez cada vez que cambian. ORDENAR deja el origen intacto y produce una copia ordenada aparte que se reordena en cuanto un valor cambia o se añade una fila.

Eso la convierte en la herramienta adecuada para todo lo que deba estar al día: una tabla de los diez primeros en un panel, una clasificación, un resumen ordenado que otra persona mirará mañana. El origen se queda en el orden en que llegó, que suele ser el que quieres para auditarlo.

Su compañera ORDENARPOR ordena un rango usando los valores de otro, que es la versión que quieres cuando la columna por la que ordenas no es la que quieres mostrar.

Sintaxis

=ORDENAR(matriz; [índice_ordenar]; [orden]; [por_columna])

Argumentos

matriz
Obligatorio
El rango que se ordena. Una columna o varias; la forma vuelve sin cambios.
índice_ordenar
Opcional
Por qué columna de matriz ordenar, contando desde 1 en su borde izquierdo. Por defecto, 1.
orden
Opcional
1 para ascendente (por defecto), -1 para descendente.
por_columna
Opcional
FALSO (por defecto) ordena filas. VERDADERO ordena columnas de izquierda a derecha, para datos dispuestos en horizontal.

Los datos de ejemplo

Encabezados en la fila 1, datos en A2:C6.

ABC
1JugadorPuntosCorreo
2Alicia Moreau1240alicia@northwind.com
3Bruno Santos385bruno@southgate.co.uk
4Chen Wei2100chen@northwind.com
5Dana Okafor940dana@eastvale.org
6Erik Halls1560erik@southgate.co.uk

Ejemplos resueltos

=ORDENAR(A2:B6; 2; -1)

Resultado: Chen Wei 2100, Erik Halls 1560, Alicia Moreau 1240, Dana Okafor 940, Bruno Santos 385

Ordenado por la segunda columna, de forma descendente: la fórmula estándar de una clasificación.

=ORDENAR(A2:A6)

Resultado: Alicia Moreau, Bruno Santos, Chen Wei, Dana Okafor, Erik Halls

Una sola columna sin más argumentos: ordenada de forma ascendente por sí misma.

=ORDENARPOR(A2:A6; B2:B6; -1)

Resultado: Chen Wei, Erik Halls, Alicia Moreau, Dana Okafor, Bruno Santos

Nombres ordenados por puntos sin que la columna de puntos venga detrás. ORDENARPOR toma la clave como rango aparte.

=ORDENAR(FILTRAR(A2:B6; B2:B6>900); 2; -1)

Resultado: Chen Wei 2100, Erik Halls 1560, Alicia Moreau 1240, Dana Okafor 940

La combinación que merece aprenderse: filtra primero y después ordena lo que sobreviva.

Ahora practícala

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é.

Abrir el ejercicio: Ordena a los comerciales sin tocar los datos de origen

Errores habituales y cómo resolverlos

#¡DESBORDAMIENTO!

Por qué ocurre: Las celdas que necesita el resultado ordenado no están vacías.

Cómo resolverlo: Vacía el bloque de abajo y de la derecha. Recuerda que necesita tantas filas como tenga el origen.

#¡VALOR!

Por qué ocurre: índice_ordenar es mayor que el número de columnas de matriz: ordenar por la columna 3 de un rango de dos.

Cómo resolverlo: Cuenta las columnas desde el borde izquierdo de matriz, no desde la columna A de la hoja.

Los números se ordenan mal

Por qué ocurre: Están guardados como texto, así que se ordenan alfabéticamente: 100 va antes que 20.

Cómo resolverlo: Conviértelos en números reales. Los números como texto se alinean a la izquierda, que es la comprobación más rápida.

#¿NOMBRE?

Por qué ocurre: La versión de Excel es anterior a las matrices dinámicas.

Cómo resolverlo: ORDENAR necesita Microsoft 365 o Excel 2021+. Las versiones antiguas necesitan el botón de la cinta o una construcción con K.ESIMO.MAYOR e INDICE.

Consejos que conviene saber

  • ORDENARPOR admite varias claves: =ORDENARPOR(A2:A6; C2:C6; 1; B2:B6; -1) ordena por correo y después por puntos.
  • Envuélvela en TOMAR para una tabla de los N primeros: =TOMAR(ORDENAR(A2:B6; 2; -1); 3) da los tres mejores.
  • ORDENAR ignora el formato del origen: el resultado son valores, así que da estilo al destino por separado.
  • Refiérete al resultado derramado desde otro sitio con #: E2# significa todo lo que produjo E2.

Preguntas frecuentes

¿Qué diferencia hay entre ORDENAR y ORDENARPOR?

ORDENAR ordena un rango usando una columna de ese mismo rango, indicada por posición. ORDENARPOR lo ordena usando valores de un rango totalmente aparte, así que puedes ordenar nombres por una columna de puntos sin mostrarla. ORDENARPOR además acepta varias claves.

¿Cómo muestro solo los cinco primeros?

Ordena de forma descendente y toma los cinco primeros: =TOMAR(ORDENAR(A2:B100; 2; -1); 5). Sin TOMAR, envuelve el ORDENAR en INDICE o deja simplemente que se derrame y lee las primeras filas.

¿ORDENAR cambia mis datos originales?

No, y esa es la principal diferencia con el botón de ordenar de la cinta. El origen se queda exactamente como estaba; ORDENAR produce un resultado aparte que se actualiza cuando el origen cambia.

Funciones relacionadas

Guías que la usan

Lecturas más largas donde esta función hace trabajo real en una hoja real.