🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →
Back to Blog

Función SORT en Excel — Ordenar sin tocar tus datos (SORT vs. SORTBY)

|

Función SORT en Excel — Ordenar sin tocar tus datos (SORT vs. SORTBY)

Resumen — El botón Ordenar de la cinta reorganiza tus filas reales; la función SORT devuelve una copia ordenada que se reordena cada vez que cambia el origen. Sintaxis: =SORT(matriz; [índice_orden]; [orden]; [por_col]). La regla que pilla a todos: índice_orden es un número de columna, no una letra — SORT(data; 2; -1) ordena por la 2.ª columna, descendente; fuera de rango da #VALUE!. Para ordenar por una clave que no está en tu salida, no la fuerces en el índice — usa SORTBY. Excel 365 y 2021+.

=SORT(Sales)                       ' copia ordenada, por la primera columna, ascendente
=SORT(Sales, 2, -1)                ' por la 2.ª columna, descendente
=SORTBY(Names, Scores, -1)         ' nombres ordenados por una columna de puntos no mostrada

Ordenar solía significar seleccionar el rango, hacer clic en Ordenar y reescribir permanentemente el orden de tus filas — bien una vez, doloroso cuando los datos siguen llegando. La función SORT le da la vuelta: deja el origen intacto y te entrega una vista viva y ordenada que nunca se queda anticuada.

Nota: en una interfaz de Excel en español la función se llama ORDENAR, y SORTBY es ORDENARPOR. Relacionadas: FILTER = FILTRAR, UNIQUE = UNICOS. Las fórmulas de abajo usan los nombres en inglés; el comportamiento es idéntico.

Lo que aprenderás

  • Por qué SORT es una copia viva y el botón de la cinta una reescritura de una vez
  • La regla de índice_orden: es un número de columna, y qué significa #VALUE!
  • Ordenar por varias columnas a la vez
  • Cuándo SORTBY es la herramienta correcta en lugar de SORT
  • El patrón vivo =SORT(UNIQUE(FILTER(...))) para paneles y desplegables

El modelo mental: una copia ordenada, no una reescritura

El botón Ordenar de la cinta es destructivo y manual: reordena físicamente las filas que seleccionaste y no tiene memoria — añade una fila mañana y vuelves a ordenar. La función SORT es un espejo con orden: lee el origen, devuelve una copia ordenada en su propio rango de derrame y reordena en cuanto el origen cambia. Tus datos originales se quedan en el orden en que llegaron, lo cual importa cuando ese orden significa algo (secuencia de entrada, una columna de ID) o cuando el origen es una tabla a la que sigues añadiendo filas.

' El origen A2:C100 queda tal como se introdujo; esto derrama una vista ordenada en otro lugar:
=SORT(A2:C100, 3, -1)        ' por la columna 3 (la 3.ª columna), de mayor a menor

La regla que pilla a todos: índice_orden es un número

índice_orden le dice a SORT por qué columna ordenar — y es un número de posición dentro de la matriz, contando desde 1, no la letra de columna de la hoja. Si tu matriz es A2:C100, entonces 1 es la columna A, 2 es B, 3 es C. Pide una columna que no exista en la matriz y obtienes #VALUE!:

=SORT(A2:C100, 2)        ' por la 2.ª columna de la matriz (B), ascendente
=SORT(A2:C100, 4)        ' -> #VALUE!  la matriz solo tiene 3 columnas

orden es 1 para ascendente (predeterminado) y -1 para descendente — no las palabras «asc»/«desc». Ten claros esos dos hechos y el 90 % de los errores de SORT desaparecen. El cuarto argumento, por_col, lo cambia todo a ordenar columnas de izquierda a derecha en vez de filas de arriba abajo; rara vez lo necesitarás.

Ordenar por varias columnas a la vez

Los ordenamientos reales suelen ser de varias claves: primero región, luego importe dentro de cada región. Pasa matrices entre llaves tanto para el índice como para el orden:

' Por la columna 1 ascendente, luego la columna 3 descendente en los empates:
=SORT(Sales, {1, 3}, {1, -1})

Las dos listas {...} se corresponden posición a posición: la columna 1 recibe orden 1 (ascendente), la columna 3 recibe orden −1 (descendente). Una clave primaria y otra secundaria en una sola fórmula — lo que el cuadro de diálogo de la cinta te hace configurar a través de tres desplegables.

Cuándo recurrir a SORTBY en su lugar

Esta es la distinción que decide qué función usar. SORT solo puede ordenar por una columna que esté dentro de la matriz que devuelve. SORTBY separa lo que muestras de aquello por lo que ordenas — así puedes ordenar una lista de nombres por una columna de puntuación que no quieres mostrar:

' SORT no lo hace limpiamente — la clave (Scores) no está en la salida (Names):
=SORTBY(Names, Scores, -1)               ' nombres, clasificados por puntos, puntos ocultos

' Ordenar por dos claves externas:
=SORTBY(Names, Region, 1, Hire_Date, 1)  ' por región, luego fecha de contratación

El criterio: si tu clave de orden es una columna que ya estás devolviendo, SORT con índice es lo más simple. En cuanto quieras ordenar por algo que no está en la salida — o por una expresión como SORTBY(data, LEFT(Code, 2)) —, deja de pelear con el índice de columna de SORT y cambia a SORTBY. Forzar una clave externa dentro de SORT es la razón más común por la que la gente decide «SORT no puede hacer lo que necesito», cuando en realidad querían SORTBY desde el principio.

El patrón vivo: SORT envolviendo a UNIQUE y FILTER

SORT es la capa más externa de la fórmula más útil del Excel moderno. Combínala con UNIQUE y FILTER y una sola expresión produce una lista limpia, ordenada y que se mantiene sola:

=SORT(UNIQUE(FILTER(Customer, Region = "West")))

FILTER selecciona, UNIQUE deduplica, SORT ordena — y todo se vuelve a ejecutar cuando entra una venta. Es la fuente estándar de un desplegable dinámico (apunta la Validación de datos al derrame con #) o de una lista de panel que se mantiene sola. Sin reordenar a mano, sin botón de actualizar, sin macros.

Cómo ayuda ExcelMaster

La mayoría de las peticiones de ordenamiento son en realidad «muéstrame esto, clasificado, y mantenlo así» — cuentas top por saldo, tickets abiertos del más antiguo primero, una clasificación. ExcelMaster escribe la fórmula correcta — SORT con el índice numérico y el orden correctos, o SORTBY cuando la clave está fuera de la salida — a partir de una descripción en lenguaje natural, y deja la vista viva en la pestaña que indiques. Tú describes la clasificación; él acierta el índice, el -1 y las llaves de varias claves.

Preguntas frecuentes

¿Cuál es la diferencia entre SORT y el botón Ordenar?

La función SORT devuelve una copia ordenada en un rango nuevo y reordena automáticamente cuando cambia el origen, sin tocar tus datos originales. El botón Ordenar de la cinta reescribe permanentemente el orden de las filas que seleccionaste y hay que reejecutarlo tras cada cambio de datos.

¿Cómo ordeno por varias columnas con la función SORT?

Pasa el índice y el orden como matrices entre llaves: =SORT(data; {1; 2}; {1; -1}) ordena por la primera columna ascendente y luego por la segunda descendente en los empates.

¿Cuál es la diferencia entre SORT y SORTBY?

SORT ordena una matriz por una de sus propias columnas (referida por número). SORTBY ordena una matriz por una o más matrices o expresiones independientes, de modo que puedes ordenar por una clave que no forma parte del resultado mostrado.

¿Por qué SORT devuelve #VALUE!?

Normalmente porque índice_orden apunta a una columna que no existe en la matriz — cuenta posiciones dentro de la matriz desde 1, no letras de columna de la hoja. Comprueba que el índice esté dentro del número de columnas que pasaste.

Probado en

Probado en: Excel 365 (Windows 11) — última verificación 16-06-2026.

Guías relacionadas: Excel FILTER · Excel UNIQUE · XLOOKUP en Excel