Funció Excel SORT: ordena automàticament les dades mitjançant una fórmula

  • Comparteix Això
Michael Brown

El tutorial mostra com utilitzar la funció SORT per ordenar les matrius de dades de manera dinàmica. Aprendràs una fórmula per ordenar alfabèticament a Excel, ordenar els números en ordre ascendent o descendent, ordenar per diverses columnes i molt més.

La funcionalitat d'ordenació fa molt de temps que existeix. Però amb la introducció de matrius dinàmiques a Excel 365, va aparèixer una manera increïblement senzilla d'ordenar amb fórmules. La bellesa d'aquest mètode és que els resultats s'actualitzen automàticament quan canvien les dades d'origen.

    Funció EXCEL SORT

    La funció SORT d'Excel ordena el contingut d'una matriu o rang per columnes o files, en ordre ascendent o descendent.

    ORDENAR pertany al grup de funcions de matriu dinàmica. El resultat és una matriu dinàmica que s'aboca automàticament a les cel·les veïnes verticalment o horitzontalment, depenent de la forma de la matriu d'origen.

    La sintaxi de la funció SORT és la següent:

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

    On:

    Matriu (obligatori): és una matriu de valors o un rang de cel·les per ordenar. Aquests poden ser qualsevol valor, com ara text, números, dates, hores, etc.

    Ordenar_índex (opcional): un nombre enter que indica per quina columna o fila cal ordenar. Si s'omet, s'utilitza l'índex predeterminat 1.

    Ordre_ordenació (opcional) - defineix l'ordre d'ordenació:

    • 1 o s'omet (per defecte) - ordre ascendent , és a dir, defórmules (fitxer .xlsx) de més petit a més gran
    • -1 - ordre descendent, és a dir, de més gran a més petit

    By_col (opcional) - un valor lògic que indica la direcció de l'ordenació:

    • FALSE o omès (per defecte): ordena per fila. Utilitzareu aquesta opció la major part del temps.
    • TRUE: ordena per columna. Utilitzeu aquesta opció si les vostres dades s'organitzen horitzontalment en columnes com en aquest exemple.

    Funció d'Ordenació d'Excel: consells i notes

    ORDENAR és una nova funció de matriu dinàmica i, com a tal, té un parell d'especificitats que hauríeu de tenir en compte:

    • Actualment, la funció SORT només està disponible a Microsoft 365 i Excel 2021. Excel 2019, Excel 2016 no admeten fórmules de matriu dinàmica, de manera que la funció SORT no està disponible en aquestes versions.
    • Si la matriu que retorna una fórmula SORT és el resultat final (és a dir, no s'ha passat a una altra funció), Excel crea dinàmicament un interval de mida adequada i l'omple amb els valors ordenats. Per tant, assegureu-vos que sempre teniu prou cel·les buides avall o/i a la dreta de la cel·la on introduïu la fórmula, en cas contrari es produirà un error #SPILL.
    • Els resultats s'actualitzen dinàmicament a mesura que canvien les dades d'origen. Tanmateix, la matriu subministrada a la fórmula no s'estén automàticament per incloure entrades noves que s'afegeixen fora de la matriu de referència. Per incloure aquests elements, heu d'actualitzar la referència matriu a la vostra fórmula, o béconvertiu l'interval d'origen en una taula tal com es mostra en aquest exemple o creeu un interval amb nom dinàmic.

    Fórmula bàsica d'Ordenació d'Excel

    Aquest exemple mostra una fórmula bàsica per ordenar dades a Excel en ordre ascendent i descendent.

    Suposant que les vostres dades estan ordenades alfabèticament tal com es mostra a la captura de pantalla següent. Esteu buscant ordenar els nombres de la columna B sense trencar ni barrejar dades.

    Fórmula per ordenar en ordre ascendent

    Per ordenar els valors de la columna B de més petit a més gran, aquí teniu la fórmula que cal utilitzar:

    =SORT(A2:B8, 2, 1)

    On:

    • A2:B8 és la matriu font
    • 2 és el número de columna per ordenar
    • 1 és l'ordre d'ordenació ascendent

    Com que les nostres dades estan organitzades en files, l'últim argument es pot ometre com a FALSE per defecte: ordena per files.

    Només introduïu la fórmula a qualsevol cel·la buida (D2 en el nostre cas), premeu Retorn i els resultats es veuran automàticament a D2:E8.

    Fórmula per ordenar en ordre descendent

    Per ordenar les dades de manera descendent, és a dir, de més gran a més petit, establiu l'argument sort_order a -1 així:

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

    Introduïu la fórmula a la cel·la superior esquerra de l'interval de destinació i obtindreu aquest resultat:

    De manera similar, podeu ordenar els valors de text per ordre alfabètic de la A a la Z o de la Z a la A.

    Com ordenar dades a Excel mitjançant f ormula

    Els exemples següents mostren alguns usos típics de la funció SORT a Exceli un parell de no trivials.

    Excel ORDENAR per columna

    Quan ordeneu dades a Excel, en la seva majoria canvieu l'ordre de les files. Però quan les vostres dades s'organitzen horitzontalment amb files que contenen etiquetes i columnes que contenen registres, és possible que hàgiu d'ordenar d'esquerra a dreta, en lloc de de dalt a baix.

    Per ordenar per columna a Excel, configureu el by_col a TRUE. En aquest cas, sort_index representarà una fila, no una columna.

    Per exemple, per ordenar les dades següents per Qty. de major a menor, utilitzeu aquesta fórmula:

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

    On:

    • B1:H2 són les dades font per ordenar
    • 2 és l'índex d'ordenació, ja que estem ordenant els números a la segona fila
    • -1 indica l'ordre d'ordenació descendent
    • VERTADER significa ordenar columnes, no files

    Ordenar per diverses columnes en diferent ordre (ordenació multinivell)

    Quan treballeu amb models de dades complexos, sovint necessiteu una ordenació multinivell. Es pot fer amb una fórmula? Sí, fàcilment! El que feu és proporcionar constants de matriu per als arguments sort_index i sort_order .

    Per exemple, per ordenar les dades següents primer per Regió (columna A) de la A a la Z i després per Qty . (columna C) de més petit a més gran, establiu els arguments següents:

    • Matriu són les dades d'A2:C13.
    • Ordena_índex és la constant de matriu {1,3}, ja que primer ordenem per Regió (1rcolumna), i després per Quantitat . (3a columna).
    • Orden_ordenar és la constant de matriu {1,-1}, ja que la primera columna s'ha d'ordenar en ordre ascendent i la tercera columna en ordre descendent.
    • By_col s'omet perquè ordenem les files, que és per defecte.

    Ajuntant els arguments, obtenim aquesta fórmula:

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

    I funciona perfectament! Els valors de text de la primera columna s'ordenen alfabèticament i els números de la tercera columna de més gran a més petit:

    Ordenar i filtrar a Excel

    En cas de quan busqueu filtrar dades amb alguns criteris i ordenar la sortida, utilitzeu les funcions SORT i FILTER junts:

    SORT(FILTER(array, criteria_range= criteria) , [sort_index], [sort_order], [by_col])

    La funció FILTER obté una matriu de valors en funció dels criteris que definiu i passa aquesta matriu al primer argument de SORT.

    El millor. sobre aquesta fórmula és que també mostra els resultats com a rang de vessament dinàmic, sense que hàgiu de prémer Ctrl + Maj + Retorn o endevinar a quantes cel·les voleu copiar-lo. Com és habitual, escriviu una fórmula a la cel·la superior i premeu la tecla Intro.

    Com a exemple, extreurem elements amb una quantitat igual o superior a 30 (>=30) del dades d'origen a A2:B9 i ordenar els resultats en ordre ascendent.

    Per a això, primer configurem la condició, per exemple, acel·la E2 tal com es mostra a la imatge següent. A continuació, creeu la nostra fórmula d'ORDENACIÓ d'Excel d'aquesta manera:

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

    A part de array generada per la funció FILTER, només especifiquem l' sort_index argument (columna 2). Els dos arguments restants s'ometen perquè els valors predeterminats funcionen exactament com necessitem (ordena ascendent, per fila).

    Obtenir N valors més grans o més petits i ordenar els resultats

    Quan s'analitzen grans quantitats d'informació, sovint cal extreure un cert nombre de valors principals. Potser no només extreu-los, sinó també organitzeu-los en l'ordre desitjat. I, idealment, triar quines columnes incloure als resultats. Sona complicat? No amb les noves funcions de matriu dinàmica!

    Aquí hi ha una fórmula genèrica:

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

    On n és el nombre de valors que voleu tornar.

    A partir del conjunt de dades següent, suposeu que voleu obtenir una llista dels 3 primers basat en els números de la columna C.

    Per fer-ho, primer ordeneu la matriu A2:C13 per la 3a columna en ordre descendent:

    SORT(A2:C13, 3, -1)

    I després, niu la fórmula anterior al primer argument ( matriu ) de la funció INDEX per ordenar la matriu de més gran a més petit.

    Per al segon ( núm_fila). L'argument ), que indica quantes files cal retornar, genera els números seqüencials necessaris mitjançant la funció SEQUENCE. Comnecessitem 3 valors superiors, utilitzem SEQUENCE(3), que és el mateix que proporcionar una constant de matriu vertical {1;2;3} directament a la fórmula.

    Per al tercer ( col_num ), que defineix quantes columnes cal retornar, proporciona els números de columna en forma d'una constant de matriu horitzontal. Volem retornar les columnes B i C, de manera que fem servir la matriu {2,3}.

    Finalment, obtenim la fórmula següent:

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

    I produeix exactament els resultats que volem:

    Per retornar 3 valors inferiors , només cal ordenar les dades originals de més petit a més gran. Per a això, canvieu l'argument sort_order de -1 a 1:

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

    Retorna un valor ordenat en una posició específica

    Mirant des d'un altre angle, què passa si només voleu tornar una posició d'ordenació específica? Per exemple, només el 1r , només el 2n o només el 3r registre de la llista ordenada? Per fer-ho, utilitzeu la versió simplificada de la fórmula INDEX SORT comentada anteriorment:

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

    On n és la posició d'interès.

    Per exemple, per obtenir una posició determinada des de dalt (és a dir, a partir de les dades ordenades de manera descendent), utilitzeu aquesta fórmula :

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

    Per obtenir una posició específica des de baix (és a dir, a partir de les dades ordenades ascendent), utilitzeu aquesta:

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

    On A2: C13 és les dades font, F1 és la posició des de dalt, I1 és la posició des deinferior i {2,3} són les columnes que s'han de retornar.

    Utilitzeu la taula d'Excel per aconseguir que la matriu d'ordenació s'ampliï automàticament

    Com ja sabeu , la matriu ordenada s'actualitza automàticament quan feu qualsevol canvi a les dades originals. Aquest és el comportament estàndard de totes les funcions de matriu dinàmiques, inclosa l'ORDENAR. Tanmateix, quan afegiu entrades noves fora de la matriu de referència, no s'inclouen automàticament en una fórmula. Si voleu que la vostra fórmula respongui a aquests canvis, convertiu l'interval d'origen en una taula d'Excel totalment funcional i utilitzeu referències estructurades a la fórmula.

    Per veure com funciona a la pràctica, tingueu en compte el següent exemple.

    Suposant que utilitzeu la fórmula d'Ordenació d'Excel a continuació per organitzar els valors de l'interval A2:B8 en ordre alfabètic:

    =SORT(A2:B8, 1, 1)

    A continuació, introduïu una nova entrada a fila 9... i es decep de veure que l'entrada recentment afegida queda fora de l'interval de vessament:

    Ara, convertiu l'interval d'origen en una taula. Per fer-ho, només cal que seleccioneu el vostre rang incloent les capçaleres de columna (A1:B8) i premeu Ctrl + T . Quan creeu la vostra fórmula, seleccioneu l'interval d'origen amb el ratolí i el nom de la taula s'inserirà a la fórmula automàticament (això s'anomena referència estructurada):

    =SORT(Table1, 1, 1)

    Quan escriviu un nova entrada just a sota de l'última fila, la taula s'ampliarà automàticament i les dades noves s'inclouran a l'interval de vessamentde la fórmula SORT:

    La funció d'Ordenació d'Excel no funciona

    Si la fórmula d'ORDENACIÓ provoca un error, és molt probable que sigui per les raons següents.

    Error #NAME: versió anterior d'Excel

    ORDENAR és una funció nova i només funciona a Excel 365 i Excel 2021. A les versions anteriors on aquesta funció no és compatible, un #NAME? es produeix un error.

    Error #SPILL: alguna cosa bloqueja l'interval de vessament

    Si una o més cel·les de l'interval de vessament no estan completament buides o fusionades, un #SPILL! es mostra un error. Per solucionar-ho, només cal eliminar el bloqueig. Per obtenir més informació, consulteu Excel #SPILL! error: què significa i com solucionar-ho.

    Error #VALUE: arguments no vàlids

    Sempre que trobeu un #VALOR! error, comproveu els arguments sort_index i sort_order . Sort_index no hauria de superar el nombre de columnes array i sort_order hauria de ser 1 (ascendent) o -1 (descendente).

    Error #REF: el llibre de treball d'origen està tancat

    Com que les matrius dinàmiques tenen un suport limitat per a referències entre llibres de treball, la funció SORT requereix que els dos fitxers estiguin oberts. Si el llibre d'origen està tancat, una fórmula llançarà un #REF! error. Per solucionar-ho, només cal que obriu el fitxer de referència.

    Així és com ordenar les dades a Excel mitjançant una fórmula. Us agraeixo la lectura i esperem veure-us al nostre blog la setmana vinent!

    Quader de pràctiques per descarregar

    Ordenar en Excel amb

    Michael Brown és un entusiasta de la tecnologia dedicat amb una passió per simplificar processos complexos mitjançant eines de programari. Amb més d'una dècada d'experiència en la indústria tecnològica, ha perfeccionat les seves habilitats en Microsoft Excel i Outlook, així com en Google Sheets i Docs. El bloc de Michael es dedica a compartir els seus coneixements i experiència amb altres persones, oferint consells i tutorials fàcils de seguir per millorar la productivitat i l'eficiència. Tant si sou un professional experimentat com si sou un principiant, el bloc de Michael ofereix valuoses idees i consells pràctics per treure el màxim profit d'aquestes eines de programari essencials.