Excel SORT función - auto ordenar los datos utilizando la fórmula

  • Compartir Este
Michael Brown

El tutorial muestra cómo utilizar la función SORT para ordenar matrices de datos de forma dinámica. Aprenderá una fórmula para ordenar alfabéticamente en Excel, ordenar números en orden ascendente o descendente, ordenar por varias columnas, etc.

La funcionalidad Ordenar existe desde hace mucho tiempo. Pero con la introducción de las matrices dinámicas en Excel 365, apareció una forma sorprendentemente sencilla de ordenar con fórmulas. Lo bueno de este método es que los resultados se actualizan automáticamente cuando cambian los datos de origen.

    Función SORT de Excel

    La función ORDENAR de Excel ordena el contenido de una matriz o rango por columnas o filas, en orden ascendente o descendente.

    SORT pertenece al grupo de funciones de matrices dinámicas. El resultado es una matriz dinámica que se extiende automáticamente a las celdas vecinas vertical u horizontalmente, dependiendo de la forma de la matriz de origen.

    La sintaxis de la función SORT es la siguiente:

    SORT(array, [sort_index], [sort_order], [by_col])

    Dónde:

    Matriz (obligatorio) - es una matriz de valores o un rango de celdas para ordenar. Pueden ser cualquier valor, incluyendo texto, números, fechas, horas, etc.

    Ordenar_índice (opcional) - un número entero que indica por qué columna o fila ordenar. Si se omite, se utiliza el índice 1 por defecto.

    Ordenar (opcional) - define el orden de clasificación:

    • 1 u omitido (por defecto) - orden ascendente, es decir, de menor a mayor
    • -1 - orden descendente, es decir, de mayor a menor

    By_col (opcional) - un valor lógico que indica la dirección de la ordenación:

    • FALSE u omitido (por defecto) - ordenar por fila. Utilizará esta opción la mayoría de las veces.
    • TRUE - ordenar por columna. Utilice esta opción si sus datos están organizados horizontalmente en columnas como en este ejemplo.

    Función SORT de Excel - consejos y notas

    SORT es una nueva función de array dinámico y como tal tiene un par de especificidades que debes conocer:

    • Actualmente, la función SORT solo está disponible en Microsoft 365 y Excel 2021. Excel 2019, Excel 2016 no admiten fórmulas de matrices dinámicas, por lo que la función SORT no está disponible en estas versiones.
    • Si la matriz devuelta por una fórmula ORDENAR es el resultado final (es decir, no se pasa a otra función), Excel crea dinámicamente un rango del tamaño adecuado y lo rellena con los valores ordenados. Por lo tanto, asegúrese de tener siempre suficientes celdas vacías abajo o/y a la derecha de la celda donde introduce la fórmula, de lo contrario se produce un error #SPILL.
    • Los resultados se actualizan dinámicamente a medida que cambian los datos de origen. Sin embargo, el matriz suministrado a la fórmula no se extiende automáticamente para incluir nuevas entradas que se añadan fuera de la fórmula referenciada. matriz Para incluir estos elementos, debe actualizar el archivo matriz en su fórmula, o convierta el rango fuente en una tabla como se muestra en este ejemplo, o cree un rango dinámico con nombre.

    Fórmula SORT básica de Excel

    Este ejemplo muestra una fórmula básica para ordenar datos en Excel en orden ascendente y descendente.

    Supongamos que sus datos están ordenados alfabéticamente como se muestra en la siguiente captura de pantalla. Usted está buscando ordenar los números en la columna B sin romper o mezclar los datos.

    Fórmula para ordenar en orden ascendente

    Para ordenar los valores de la columna B de menor a mayor, ésta es la fórmula que hay que utilizar:

    =SORT(A2:B8, 2, 1)

    Dónde:

    • A2:B8 es la matriz de origen
    • 2 es el número de columna por el que se ordena
    • 1 es el orden ascendente

    Como nuestros datos están organizados en filas, el último argumento puede omitirse para que por defecto sea FALSE - ordenar por filas.

    Sólo tienes que introducir la fórmula en cualquier celda vacía (D2 en nuestro caso), pulsar Intro , y los resultados se derramarán automáticamente a D2:E8.

    Fórmula para ordenar en orden descendente

    Para ordenar los datos de forma descendente, es decir, de mayor a menor, establezca la opción ordenar_clasificar a -1 así:

    =SORT(A2:B8, 2, -1)

    Introduzca la fórmula en la celda superior izquierda del rango de destino y obtendrá este resultado:

    De forma similar, puede ordenar los valores de texto por orden alfabético de la A a la Z o de la Z a la A.

    Cómo ordenar datos en Excel mediante una fórmula

    Los siguientes ejemplos muestran algunos usos típicos de la función SORT en Excel y un par de usos no triviales.

    Excel ORDENAR por columna

    Cuando se ordenan datos en Excel, en la mayoría de los casos se cambia el orden de las filas. Pero cuando los datos están organizados horizontalmente con filas que contienen etiquetas y columnas que contienen registros, puede ser necesario ordenar de izquierda a derecha, en lugar de arriba abajo.

    Para ordenar por columnas en Excel, establezca la opción by_col a TRUE. En este caso, ordenar_índice representará una fila, no una columna.

    Por ejemplo, para ordenar los datos siguientes por Cant. de mayor a menor, utilice esta fórmula:

    =SORT(B1:H2, 2, 1, TRUE)

    Dónde:

    • B1:H2 son los datos de origen a ordenar
    • 2 es el índice de ordenación, ya que estamos ordenando los números de la segunda fila
    • -1 indica el orden descendente
    • TRUE significa ordenar columnas, no filas

    Ordenar por varias columnas en distinto orden (ordenación multinivel)

    Cuando se trabaja con modelos de datos complejos, es posible que se necesite una ordenación de varios niveles. ¿Se puede hacer con una fórmula? Sí, ¡fácilmente! Lo que hay que hacer es suministrar constantes de matriz para las variables ordenar_índice y ordenar argumentos.

    Por ejemplo, para ordenar los datos siguientes primero por Región (columna A) de A a Z, y luego por Cantidad (columna C) de menor a mayor, establezca los siguientes argumentos:

    • Matriz son los datos de A2:C13.
    • Ordenar_índice es la constante del array {1,3}, ya que primero ordenamos por Región (1ª columna), y después por Cantidad (3ª columna).
    • Ordenar es la constante del array {1,-1}, ya que la 1ª columna debe ordenarse en orden ascendente y la 3ª columna en orden descendente.
    • By_col se omite porque ordenamos las filas, que es por defecto.

    Uniendo los argumentos, obtenemos esta fórmula:

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

    Los valores de texto de la primera columna se ordenan alfabéticamente y los números de la tercera columna, de mayor a menor:

    Ordenar y filtrar en Excel

    En caso de que desee filtrar datos con algún criterio y ordenar la salida, utilice las funciones SORT y FILTER conjuntamente:

    SORT(FILTRO(array, rango_de_criterios = criterios ), [sort_index], [sort_order], [by_col])

    La función FILTRO obtiene una matriz de valores basada en los criterios definidos y la pasa al primer argumento de ORDENAR.

    Lo mejor de esta fórmula es que también emite los resultados como un rango de derrame dinámico, sin que tengas que pulsar Ctrl + Mayús + Intro o adivinar en cuántas celdas copiarlo. Como de costumbre, escribes una fórmula en la celda situada más arriba y pulsas la tecla Intro.

    Como ejemplo, vamos a extraer los artículos con una cantidad igual o superior a 30 (>=30) de los datos de origen en A2:B9 y organizar los resultados en orden ascendente.

    Para esto, primero establecemos la condición, digamos, en la celda E2 como se muestra en la imagen de abajo. Y luego, construimos nuestra fórmula SORT de Excel de esta manera:

    =SORT(FILTER(A2:B9, B2:B9>=E2), 2)

    Además de matriz generado por la función FILTRO, sólo especificamos el ordenar_índice (columna 2). Los dos argumentos restantes se omiten porque los predeterminados funcionan exactamente como necesitamos (ordenación ascendente, por filas).

    Obtener N valores mayores o menores y ordenar los resultados

    Cuando se analizan grandes volúmenes de información, a menudo es necesario extraer un cierto número de valores principales, y no sólo extraerlos, sino también ordenarlos como se desee. Y, en el mejor de los casos, elegir qué columnas se incluirán en los resultados. ¿Suena complicado? ¡No con las nuevas funciones de array dinámico!

    He aquí una fórmula genérica:

    INDEX(ORDENAR(...), SECUENCIA( n ), { columna1_a_devolución , columna2_a_devolución , ...})

    Dónde n es el número de los valores que desea devolver.

    A partir del siguiente conjunto de datos, suponga que desea obtener una lista de los 3 primeros según los números de la columna C.

    Para hacerlo, primero ordena el array A2:C13 por la 3ª columna en orden descendente:

    ORDENAR(A2:C13, 3, -1)

    Y luego, anida la fórmula anterior en el primer ( matriz ) de la función INDEX para ordenar la matriz de mayor a menor.

    Para la segunda ( número_de_fila ), que indica cuántas filas devolver, genere los números secuenciales necesarios utilizando la función SECUENCIA. Como necesitamos 3 valores superiores, utilizamos SECUENCIA(3), que es lo mismo que suministrar una constante de matriz vertical {1;2;3} directamente en la fórmula.

    Para la tercera ( col_num ), que define cuántas columnas devolver, proporcione los números de columna en forma de constante de matriz horizontal. Queremos devolver las columnas B y C, así que utilizamos la matriz {2,3}.

    Finalmente, obtenemos la siguiente fórmula:

    =INDEX(SORT(A2:C13, 3, -1), SEQUENCE(3), {2,3})

    Y produce exactamente los resultados que queremos:

    Para volver 3 fondo basta con ordenar los datos originales de menor a mayor. Para ello, cambie la opción ordenar_clasificar de -1 a 1:

    =INDEX(SORT(A2:C13, 3, 1), SEQUENCE(3), {2,3})

    Devuelve un valor ordenado en una posición determinada

    Desde otro punto de vista, ¿qué ocurre si sólo desea devolver una posición de ordenación específica, por ejemplo, sólo el primer registro, sólo el segundo o sólo el tercero de la lista ordenada? Para ello, utilice la versión simplificada de la fórmula INDEX SORT descrita anteriormente:

    INDEX(ORDENAR(...), n , { columna1_a_devolución , columna2_a_devolución , ...})

    Dónde n es la posición de interés.

    Por ejemplo, para obtener una posición determinada de la parte superior (es decir, de los datos ordenados de forma descendente), utilice esta fórmula:

    =INDEX(SORT(A2:C13, 3, -1), F1, {2,3})

    Para obtener una posición específica desde abajo (es decir, a partir de los datos ordenados de forma ascendente), utilice ésta:

    =INDEX(SORT(A2:C13, 3, 1), I1, {2,3})

    Donde A2:C13 son los datos de origen, F1 es la posición desde arriba, I1 es la posición desde abajo, y {2,3} son las columnas a devolver.

    Utilizar una tabla de Excel para que la matriz de ordenación se expanda automáticamente

    Como ya sabes, el array ordenado se actualiza automáticamente cuando realizas cualquier cambio en los datos originales. Este es el comportamiento estándar de todas las funciones de array dinámico, incluyendo SORT. Sin embargo, cuando añades nuevas entradas fuera del array referenciado, éstas no se incluyen automáticamente en una fórmula. Si quieres que tu fórmula responda a dichos cambios, convierte el rango de origen a un rango completamente-tabla funcional de Excel y utilice referencias estructuradas en su fórmula.

    Para ver cómo funciona en la práctica, considere el siguiente ejemplo.

    Supongamos que utiliza la siguiente fórmula SORT de Excel para ordenar alfabéticamente los valores del rango A2:B8:

    =SORT(A2:B8, 1, 1)

    A continuación, introduce una nueva entrada en la fila 9... y se decepciona al ver que la entrada recién añadida queda fuera del intervalo de derrame:

    Ahora, convierta el rango de origen en una tabla. Para ello, simplemente seleccione su rango incluyendo las cabeceras de las columnas (A1:B8) y pulse Ctrl + T . Cuando construya su fórmula, seleccione el rango de origen utilizando el ratón, y el nombre de la tabla se insertará en la fórmula automáticamente (esto se llama una referencia estructurada):

    =SORT(Tabla1, 1, 1)

    Cuando escriba una nueva entrada justo debajo de la última fila, la tabla se expandirá automáticamente y los nuevos datos se incluirán en el intervalo de derrame de la fórmula SORT:

    La función SORT de Excel no funciona

    Si su fórmula SORT da lugar a un error, lo más probable es que se deba a las siguientes razones.

    Error #NAME: versión antigua de Excel

    SORT es una función nueva y sólo funciona en Excel 365 y Excel 2021. En versiones anteriores en las que no se admite esta función, se produce un error #NAME?

    #ERROR DE DERRAME: algo bloquea el alcance del derrame

    Si una o más celdas del rango de derrame no están completamente en blanco o fusionadas, se mostrará un error #SPILL! Para solucionarlo, simplemente elimine el bloqueo. Para obtener más información, consulte Error #SPILL! de Excel: qué significa y cómo solucionarlo.

    #VALOR error: argumentos no válidos

    Siempre que se encuentre con un error #VALUE!, compruebe el campo ordenar_índice y ordenar argumentos. Ordenar_índice no debe superar el número de columnas es matriz y ordenar debe ser 1 (ascendente) o -1 (descendente).

    Error #REF: el libro fuente está cerrado

    Dado que las matrices dinámicas tienen un soporte limitado para las referencias entre libros de trabajo, la función SORT requiere que ambos archivos estén abiertos. Si el libro de trabajo de origen está cerrado, una fórmula arrojará un error #REF! Para solucionarlo, basta con abrir el archivo referenciado.

    Así es como se ordenan los datos en Excel utilizando fórmulas. Gracias por leer y ¡espero verte en nuestro blog la semana que viene!

    Cuaderno de prácticas para descargar

    Ordenar en Excel con fórmulas (archivo .xlsx)

    Michael Brown es un entusiasta de la tecnología dedicado y apasionado por simplificar procesos complejos utilizando herramientas de software. Con más de una década de experiencia en la industria de la tecnología, ha perfeccionado sus habilidades en Microsoft Excel y Outlook, así como en Google Sheets y Docs. El blog de Michael está dedicado a compartir su conocimiento y experiencia con otros, brindando consejos y tutoriales fáciles de seguir para mejorar la productividad y la eficiencia. Ya sea un profesional experimentado o un principiante, el blog de Michael ofrece información valiosa y consejos prácticos para aprovechar al máximo estas herramientas de software esenciales.