La función ORDENARPOR en Excel ordena el contenido de un rango o matriz basándose en los valores de un rango o matriz correspondiente. Es especialmente útil cuando se desea ordenar un conjunto de datos utilizando una columna que no se quiere incluir en el resultado final.
Por ejemplo, puedes ordenar una lista de nombres de empleados según su fecha de contratación sin necesidad de que la fecha aparezca en la lista ordenada resultante. Esta es una de las funciones de «matrices dinámicas» de Excel, lo que significa que puede devolver una matriz de valores que se «desborda» automáticamente en las celdas adyacentes.
Sintaxis
=ORDENARPOR(matriz; por_matriz1; [orden1]; [por_matriz2]; [orden2]; ...)
La función ORDENARPOR utiliza los siguientes argumentos:
- matriz: Es el rango o la matriz de datos que se desea ordenar. Obligatorio.
- por_matriz1: El rango o matriz por el que se debe ordenar. Debe tener dimensiones compatibles con el argumento matriz (el mismo número de filas si se ordena por una columna, o el mismo número de columnas si se ordena por una fila). Obligatorio.
- orden1: Especifica el orden de clasificación. Puede ser 1 para ascendente (de menor a mayor) o -1 para descendente (de mayor a menor). Si se omite, el valor predeterminado es 1 (ascendente). Opcional.
- [por_matriz2], [orden2], …: Pares adicionales de rango de ordenación y criterio de orden. Se aplican en secuencia si existen valores iguales en los criterios anteriores. Opcional.
Ejemplos
Para los siguientes ejemplos, usaremos la siguiente tabla de datos de ejemplo:
| A | B | C | |
|---|---|---|---|
| 1 | Nombre | Departamento | Edad |
| 2 | Ana | Ventas | 34 |
| 3 | Luis | Marketing | 28 |
| 4 | Elena | Ventas | 41 |
| 5 | Carlos | IT | 28 |
Ejemplo 1: Ordenar nombres por edad
Esta fórmula ordena la lista de nombres (rango A2:A5) basándose en la edad de cada persona (rango C2:C5) de forma ascendente.
=ORDENARPOR(A2:A5; C2:C5)
Resultado: La fórmula devolverá una matriz con los nombres ordenados por la edad de menor a mayor. La celda donde se introduce la fórmula mostrará «Luis», y los nombres siguientes se desbordarán en las celdas inferiores.
- Luis
- Carlos
- Ana
- Elena
Ejemplo 2: Ordenar nombres por edad en orden descendente
Similar al ejemplo anterior, pero esta vez ordenando de mayor a menor edad, especificando -1 en el tercer argumento.
=ORDENARPOR(A2:A5; C2:C5; -1)
Resultado: Una lista de nombres ordenada por la edad de mayor a menor.
- Elena
- Ana
- Luis
- Carlos
Ejemplo 3: Ordenar por múltiples criterios
Esta fórmula ordena la tabla completa (A2:C5) primero por Departamento (B2:B5) en orden ascendente y, para aquellos que estén en el mismo departamento, por Edad (C2:C5) en orden descendente.
=ORDENARPOR(A2:C5; B2:B5; 1; C2:C5; -1)
Resultado: Una tabla de 3 columnas y 4 filas, ordenada primero alfabéticamente por departamento y luego por edad de mayor a menor.
| Carlos | IT | 28 |
| Luis | Marketing | 28 |
| Elena | Ventas | 41 |
| Ana | Ventas | 34 |
Observaciones
Es fundamental que las dimensiones de los argumentos matriz y por_matriz sean compatibles. Por ejemplo, si matriz tiene 10 filas y 3 columnas, por_matriz1 debe ser un rango de 10 filas y 1 columna, o de 1 fila y 10 columnas.
Al ser una función de matriz dinámica, los resultados se «desbordarán». Asegúrate de que haya suficientes celdas vacías debajo y/o a la derecha de la celda de la fórmula para evitar un error #¡DESBORDAMIENTO!.
Errores comunes
- #¡VALOR!: Ocurre si los argumentos matriz y por_matriz tienen dimensiones incompatibles (por ejemplo, diferente número de filas o columnas).
- #¡DESBORDAMIENTO!: Se produce si el rango donde se deben mostrar los resultados contiene datos. Despeja el área necesaria para que la matriz de resultados pueda expandirse.
Disponibilidad por versión de Excel
La función ORDENARPOR está disponible en las siguientes versiones de Excel:
- Excel para Microsoft 365 (Windows y Mac)
- Excel 2021 (Windows y Mac)
- Excel para la web
- Excel para dispositivos móviles (iOS y Android)
No está disponible en versiones perpetuas anteriores como Excel 2019, 2016, etc.
Compatibilidad
| Software | Compatibilidad | Notas | Alternativa |
|---|---|---|---|
| Microsoft Excel | ✔️ | Disponible en Microsoft 365 y Excel 2021 o posterior. | N/A |
| Google Sheets | ✔️ | La función se llama SORTBY y tiene una sintaxis muy similar. | N/A |
| LibreOffice Calc | ✔️ | Disponible a partir de la versión 7.0. | En versiones antiguas, se puede replicar usando columnas auxiliares y la función ORDENAR. |
| OpenOffice Calc | ❌ | No soporta funciones de matriz dinámica. | Se requiere el uso de columnas auxiliares y la ordenación manual de datos. |
| WPS Office Spreadsheets | ✔️ | Las versiones recientes incluyen soporte para funciones de matriz dinámica. | N/A |
| Apple Numbers | ❌ | No dispone de una función equivalente directa a ORDENARPOR. | La ordenación debe realizarse sobre la tabla de datos original o usando columnas auxiliares. |
Funciones Relacionadas
- ORDENAR: Ordena el contenido de un rango o matriz basándose en una o más columnas dentro de la propia matriz.
- FILTRAR: Permite filtrar un rango de datos en función de los criterios que definas. Se puede combinar con ORDENARPOR para ordenar un conjunto de datos filtrados.
- UNICOS: Devuelve una lista de los valores únicos de un rango o matriz.
- SECUENCIA: Genera una lista de números secuenciales en una matriz, útil para crear índices o listas numeradas.
