Función Excel SORT: ordenación automática de datos mediante fórmula

  • Comparte Isto
Michael Brown

O titorial mostra como usar a función SORT para ordenar as matrices de datos de forma dinámica. Aprenderá unha fórmula para ordenar alfabeticamente en Excel, ordenar os números en orde ascendente ou descendente, ordenar por varias columnas e moito máis.

A funcionalidade Ordenar existe desde hai moito tempo. Pero coa introdución de matrices dinámicas en Excel 365, apareceu unha forma sorprendentemente sinxela de ordenar con fórmulas. A beleza deste método é que os resultados se actualizan automaticamente cando cambian os datos de orixe.

    Función ORDENAR en Excel

    A función ORDENAR en Excel ordena o contido dunha matriz ou rango por columnas ou filas, en orde ascendente ou descendente.

    ORDENAR pertence ao grupo de funcións de matriz dinámica. O resultado é unha matriz dinámica que se derrama automaticamente ás celas veciñas vertical ou horizontalmente, dependendo da forma da matriz de orixe.

    A sintaxe da función SORT é a seguinte:

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

    Onde:

    Matriz (obrigatorio): é unha matriz de valores ou un intervalo de celas para ordenar. Estes poden ser calquera valor, incluíndo texto, números, datas, horas, etc.

    Índice_ordenar (opcional): un número enteiro que indica por que columna ou fila ordenar. Se se omite, utilízase o índice predeterminado 1.

    Orden_ordenar (opcional) - define a orde de ordenación:

    • 1 ou omitido (predeterminado) - orde ascendente , é dicir, defórmulas (ficheiro .xlsx) de menor a maior
    • -1 - orde descendente, é dicir, de maior a menor

    By_col (opcional) - un valor lóxico que indica a dirección da ordenación:

    • FALSO ou omitido (predeterminado): ordenar por fila. Usarás esta opción a maior parte do tempo.
    • VERDADEIRO: ordena por columna. Use esta opción se os seus datos están organizados horizontalmente en columnas como neste exemplo.

    Función Excel SORT: consellos e notas

    SORT é unha nova función de matriz dinámica e, como tal, ten un par de especificidades que debes ter en conta:

    • Actualmente a función ORDENAR só está dispoñible en Microsoft 365 e Excel 2021. Excel 2019, Excel 2016 non admiten fórmulas de matriz dinámica, polo que a función ORDENAR non está dispoñible nestas versións.
    • Se a matriz devolta por unha fórmula SORT é o resultado final (é dicir, non se pasa a outra función), Excel crea dinámicamente un intervalo de tamaño adecuado e enchégao cos valores ordenados. Polo tanto, asegúrate de que sempre tes suficientes celas baleiras cara abaixo ou/e á dereita da cela onde introduces a fórmula, se non, ocorrerá un erro #SPILL.
    • Os resultados actualízanse de forma dinámica a medida que cambian os datos de orixe. Non obstante, a matriz proporcionada á fórmula non se estende automaticamente para incluír novas entradas que se engaden fóra da matriz referenciada. Para incluír tales elementos, cómpre actualizar a referencia matriz na súa fórmula ouconverta o intervalo de orixe nunha táboa como se mostra neste exemplo ou cree un intervalo con nome dinámico.

    Fórmula básica de ORDEN de Excel

    Este exemplo mostra unha fórmula básica para ordenar datos en Excel en orde ascendente e descendente.

    Supoño que os teus datos están ordenados alfabeticamente como se mostra na captura de pantalla que aparece a continuación. Estás buscando ordenar os números da columna B sen dividir nin mesturar datos.

    Fórmula para ordenar en orde ascendente

    Para ordenar os valores da columna B de menor a maior, aquí tes a fórmula que debes usar:

    =SORT(A2:B8, 2, 1)

    Onde:

    • A2:B8 é a matriz de orixe
    • 2 é o número de columna para ordenar
    • 1 é a orde de ordenación ascendente

    Dado que os nosos datos están organizados en filas, o último argumento pódese omitir como predeterminado como FALSO - ordenar por filas.

    Só tes que introducir a fórmula en calquera cela baleira (D2 no noso caso), prema Intro e os resultados verteranse automaticamente en D2:E8.

    Fórmula para ordenar en orde descendente

    Para ordenar os datos de forma descendente, é dicir, de maior a menor, configure o argumento sort_order en -1 así:

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

    Introduza a fórmula na cela superior esquerda de o intervalo de destino e obterás este resultado:

    De forma similar, podes ordenar os valores de texto en orde alfabética de A a Z ou de Z a A.

    Como ordenar datos en Excel usando f ormula

    Os exemplos seguintes mostran algúns usos típicos da función ORDENAR en Excele un par de non triviais.

    Excel ORDENAR por columna

    Cando ordena os datos en Excel, na súa maioría cambia a orde das filas. Pero cando os teus datos están organizados horizontalmente con filas que conteñan etiquetas e columnas que conteñan rexistros, é posible que teñas que ordenar de esquerda a dereita, en lugar de de arriba a abaixo.

    Para ordenar por columna en Excel, establece o by_col argumento a TRUE. Neste caso, sort_index representará unha fila, non unha columna.

    Por exemplo, para ordenar os datos a continuación por Cant. de maior a menor, use esta fórmula:

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

    Onde:

    • B1:H2 son os datos de orixe para ordenar
    • 2 son o índice de ordenación, xa que estamos ordenando números na segunda fila
    • -1 indica a orde descendente de ordenación
    • VERDADEIRO significa ordenar columnas, non filas

    Ordenar por varias columnas en orde diferente (ordenación multinivel)

    Ao traballar con modelos de datos complexos, é posible que moitas veces necesite unha ordenación multinivel. Pódese facer cunha fórmula? Si, facilmente! O que fai é proporcionar constantes de matriz para os argumentos sort_index e sort_order .

    Por exemplo, para ordenar primeiro os datos a continuación por Rexión (columna A) de A a Z, e despois por Cantidade . (columna C) de menor a maior, establece os seguintes argumentos:

    • Matriz son os datos en A2:C13.
    • Índice_ordenar é a constante da matriz {1,3}, xa que primeiro clasificamos por Rexión (1ºcolumna), e despois por Cantidade . (3a columna).
    • Orden_ordenar é a constante da matriz {1,-1}, xa que a 1a columna debe ordenarse en orde ascendente e a 3a columna en orde descendente.
    • By_col omítese porque ordenamos filas, que é o predeterminado.

    Xuntando os argumentos, obtemos esta fórmula:

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

    E funciona perfectamente! Os valores de texto da primeira columna están ordenados alfabeticamente e os números da terceira columna de maior a menor:

    Ordenar e filtrar en Excel

    En caso de que cando busca filtrar datos con algúns criterios e ordenar a saída, use as funcións ORDENAR e FILTRO xuntos:

    ORDENAR(FILTRO(matriz, intervalo_criterios= criterios) , [sort_index], [sort_order], [by_col])

    A función FILTER obtén unha matriz de valores en función dos criterios que defines e pasa esa matriz ao primeiro argumento de SORT.

    O mellor. Sobre esta fórmula é que tamén saca os resultados como un intervalo de derrame dinámico, sen que teñas que premer Ctrl + Maiús + Intro ou adiviñar cantas celas copialo. Como é habitual, escribe unha fórmula na cela superior e preme a tecla Intro.

    A modo de exemplo, imos extraer elementos cunha cantidade igual ou superior a 30 (>=30) do datos de orixe en A2:B9 e dispoñemos os resultados en orde ascendente.

    Para iso, primeiro configuramos a condición, por exemplo, encela E2 como se mostra na imaxe de abaixo. E despois, constrúe a nosa fórmula SORT de Excel deste xeito:

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

    Ademais da matriz xerada pola función FILTER, só especificamos o sort_index argumento (columna 2). Os dous argumentos restantes omítense porque os valores predeterminados funcionan exactamente como necesitamos (ordenar ascendente, por fila).

    Obtén N valores máis grandes ou máis pequenos e ordena os resultados

    Ao analizar grandes cantidades de información, moitas veces é necesario extraer un determinado número de valores principais. Quizais non só extraiga, senón que tamén dispoña na orde desexada. E idealmente escolla que columnas incluír nos resultados. Soa complicado? Non coas novas funcións de matriz dinámica!

    Aquí está unha fórmula xenérica:

    INDEX(SORT(…), SEQUENCE( n), { column1_to_return, column2_to_return, …})

    Onde n é o número de valores que quere devolver.

    A partir do seguinte conxunto de datos, supoña que quere obter unha lista dos 3 primeiros baseada nos números da columna C.

    Para facelo, primeiro ordena a matriz A2:C13 pola 3a columna en orde descendente:

    SORT(A2:C13, 3, -1)

    E logo, aniña a fórmula anterior no primeiro argumento ( matriz ) da función INDEX para que a matriz se ordene de maior a menor.

    Para o segundo ( núm_fila). ), que indica cantas filas devolver, xera os números secuenciais necesarios mediante a función SEQUENCE. Comonecesitamos 3 valores superiores, usamos SEQUENCE(3), que é o mesmo que proporcionar unha constante de matriz vertical {1;2;3} directamente na fórmula.

    Para o terceiro ( col_num ), que define cantas columnas devolver, proporciona os números de columna en forma dunha constante de matriz horizontal. Queremos devolver as columnas B e C, polo que usamos a matriz {2,3}.

    Eventualmente, obtemos a seguinte fórmula:

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

    E produce exactamente os resultados que queremos:

    Para devolver 3 valores inferiores , simplemente ordena os datos orixinais de menor a maior. Para iso, cambie o argumento sort_order de -1 a 1:

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

    Devolve un valor ordenado nunha posición específica

    Mirando desde outro ángulo, e se só queres devolver unha posición de ordenación específica? Digamos, só o primeiro rexistro, só o segundo ou só o terceiro rexistro da lista ordenada? Para facelo, use a versión simplificada da fórmula INDEX SORT comentada anteriormente:

    INDEX(SORT(…), n, { column1_to_return, column2_to_return, …})

    Onde n é a posición de interese.

    Por exemplo, para obter unha posición determinada desde arriba (é dicir, a partir dos datos ordenados de forma descendente), use esta fórmula :

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

    Para obter unha posición específica desde abaixo (é dicir, a partir dos datos ordenados ascendente), use esta:

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

    Onde A2: C13 son datos de orixe, F1 é a posición desde arriba, I1 é a posición desdeinferior, e {2,3} son as columnas que se devolverán.

    Use a táboa de Excel para que a matriz de ordenación se expanda automaticamente

    Como xa sabe , a matriz ordenada actualízase automaticamente cando fai algún cambio nos datos orixinais. Este é o comportamento estándar de todas as funcións de matriz dinámica, incluíndo ORDENAR. Non obstante, cando engades novas entradas fóra da matriz referenciada, non se inclúen automaticamente nunha fórmula. Se queres que a túa fórmula responda a tales cambios, converte o intervalo de orixe nunha táboa de Excel totalmente funcional e utiliza referencias estruturadas na túa fórmula.

    Para ver como funciona na práctica, ten en conta o seguinte exemplo.

    Supoño que usa a fórmula de ORDEN de Excel para organizar os valores no intervalo A2:B8 en orde alfabética:

    =SORT(A2:B8, 1, 1)

    A continuación, introduce unha nova entrada en fila 9... e decepcionan ver que a entrada recentemente engadida queda fóra do intervalo de derrame:

    Agora, converte o intervalo de orixe nunha táboa. Para iso, simplemente seleccione o seu intervalo incluíndo as cabeceiras de columna (A1:B8) e prema Ctrl + T . Ao crear a súa fórmula, seleccione o intervalo de orixe co rato e o nome da táboa inserirase na fórmula automaticamente (isto chámase referencia estruturada):

    =SORT(Table1, 1, 1)

    Cando escriba un nova entrada xusto debaixo da última fila, a táboa expandirase automaticamente e os novos datos incluiranse no intervalo de derrameda fórmula ORDENAR:

    A función ORDENAR de Excel non funciona

    Se a túa fórmula ORDENAR produce un erro, o máis probable é que se deba aos seguintes motivos.

    Erro #NAME: versión anterior de Excel

    ORDENAR é unha función nova e só funciona en Excel 365 e Excel 2021. Nas versións antigas onde non se admite esta función, un #NAME? prodúcese un erro.

    Erro #SPILL: algo bloquea o intervalo de derrame

    Se unha ou máis celas do intervalo de derrame non están completamente en branco ou combinadas, un #SPILL! móstrase o erro. Para solucionalo, só tes que eliminar o bloqueo. Para obter máis información, consulte Excel #SPILL! erro: que significa e como solucionalo.

    Erro #VALUE: argumentos non válidos

    Sempre que se atope cun #VALOR! erro, comprobe os argumentos sort_index e sort_order . Sort_index non debe exceder o número de columnas é matriz e sort_order debe ser 1 (ascendente) ou -1 (descendente).

    Erro #REF: o libro de orixe está pechado

    Dado que as matrices dinámicas teñen soporte limitado para referencias entre libros de traballo, a función SORT require que os dous ficheiros estean abertos. Se o libro de orixe está pechado, unha fórmula xerará un #REF! erro. Para solucionalo, só tes que abrir o ficheiro de referencia.

    Así é como ordenar os datos en Excel usando fórmulas. Grazas por ler e espero verte no noso blog a próxima semana!

    Práctica para descargar

    Ordenar en Excel con

    Michael Brown é un entusiasta da tecnoloxía dedicada á súa paixón por simplificar procesos complexos mediante ferramentas de software. Con máis dunha década de experiencia na industria tecnolóxica, perfeccionou as súas habilidades en Microsoft Excel e Outlook, así como en Follas de cálculo e Documentos de Google. O blog de Michael está dedicado a compartir o seu coñecemento e experiencia con outros, proporcionando consellos e titoriais fáciles de seguir para mellorar a produtividade e a eficiencia. Tanto se es un profesional experimentado como un principiante, o blog de Michael ofrece valiosas ideas e consellos prácticos para sacar o máximo proveito destas ferramentas de software esenciais.