Funció SORTBY d'Excel: ordenació personalitzada amb fórmula

  • Comparteix Això
Michael Brown

Avui veurem de prop la sintaxi i els usos típics de la nova funció SORTBY de matriu dinàmica. Aprendràs a ordenar personalment a Excel amb una fórmula, ordenar aleatòriament una llista, organitzar cel·les per longitud de text i molt més.

Microsoft Excel ofereix diverses maneres d'ordenar les dades de text alfabèticament, dates. cronològicament, i números de més petit a més gran o de major a menor. També hi ha una manera d'ordenar segons les vostres pròpies llistes personalitzades. A més de la funcionalitat d'ordenació convencional, Excel 365 introdueix una manera totalment nova d'ordenar les dades amb fórmules, molt còmode i increïblement senzill d'utilitzar!

    Funció d'Ordenació d'Excel

    La funció SORTBY a Excel està dissenyada per ordenar un rang o matriu en funció dels valors d'un altre rang o matriu. L'ordenació es pot fer per una o diverses columnes.

    SORTBY és una de les sis noves funcions de matriu dinàmica disponibles a Excel per a Microsoft 365 i Excel 2021. El seu resultat és una matriu dinàmica que s'aboca a les cel·les veïnes i s'actualitza automàticament quan les dades d'origen canvien.

    La funció SORTBY té un nombre variable d'arguments: els dos primers són obligatoris i els altres són opcionals:

    SORTBY(array, by_array1, [sort_order1], [by_array2, sort_order2] ,…)

    Matriu (obligatori): l'interval de cel·les o la matriu de valors que cal ordenar.

    Per_matriu1 (obligatori) - l'interval o la matriu ordenarper.

    Orden_ordenació1 (opcional) - l'ordre d'ordenació:

    • 1 o omès (per defecte) - ascendent
    • -1 - descendent

    By_array2 / Sort_order2 , … (opcional) - parells de matriu/ordre addicionals per utilitzar per ordenar.

    Nota important! Actualment, la funció SORTBY només està disponible amb subscripcions de Microsoft 365 i Excel 2021. A Excel 2019, Excel 2016 i versions anteriors, la funció SORTBY no està disponible.

    Funció SORTBY: 4 coses per recordar

    Perquè una fórmula SORTBY d'Excel funcioni correctament, hi ha alguns punts importants que cal tenir en compte:

    • Per_matriu els arguments han de tenir una fila d'alçada o una columna d'amplada.
    • El array i tots els arguments by_array han de tenir dimensions compatibles. Per exemple, en ordenar per dues columnes, array , by_array1 i by_array2 haurien de tenir el mateix nombre de files; en cas contrari es produirà un error #VALUE.
    • Si la matriu retornada per SORTBY és el resultat final (sortida en una cel·la i no es passa a una altra funció), Excel crea un rang de vessament dinàmic i l'omple amb els resultats. Per tant, assegureu-vos que teniu prou cel·les buides cap avall i/o a la dreta de la cel·la on introduïu la fórmula, en cas contrari obtindreu un error #SPILL.
    • Els resultats de les fórmules SORTBY s'actualitzen automàticament sempre que canvis de dades font. Tanmateix, noves entrades que s'afegeixen fora dela matriu a què fa referència la fórmula no s'inclou als resultats tret que actualitzeu la referència matriu . Perquè la matriu a la qual es fa referència s'ampliï automàticament, convertiu l'interval d'origen en una taula d'Excel o creeu un interval amb nom dinàmic.

    Fórmula bàsica SORTBY a Excel

    Aquí hi ha un escenari típic d'ús d'un Fórmula SORTBY a Excel:

    Suposem que teniu una llista de projectes amb el camp Valor . Voleu ordenar els projectes pel seu valor en un full a part. Com que altres usuaris no necessiten veure els números, preferiu no incloure la columna Valor als resultats.

    La tasca es pot realitzar fàcilment amb la funció SORTBY, per a la qual podeu proporcioneu els arguments següents:

    • Matriu és A2:A10; com que no voleu que la columna Valor es mostri als resultats, la deixeu fora de la matriu.
    • Per_matriu1 és B2:B10 - ordena per Valor .
    • Orden_ordena1 és -1 - descendent, és a dir, de major a menor.

    Ajuntant els arguments, obtenim aquesta fórmula:

    =SORTBY(A2:B10, B2:B10, -1)

    Per simplificar, utilitzem la fórmula al mateix full: introduïu-lo a D2 i premeu la tecla Enter. Els resultats "es vessen" automàticament a tantes cel·les com sigui necessari (D2:D10 en el nostre cas). Però tècnicament, la fórmula només es troba a la primera cel·la i si la suprimeixes de D2 se suprimiran tots els resultats.

    Quan s'utilitza en un altre full, la fórmula pren elforma següent:

    =SORTBY(Sheet1!A2:A10, Sheet1!B2:B10, -1)

    On Full1 és el full de treball que conté les dades originals.

    Ús de la funció SORTBY a Excel - exemples de fórmules

    A continuació trobareu uns quants exemples més d'ús de SORTBY, que s'espera que siguin útils i perspicaces.

    Ordena per diverses columnes

    La fórmula bàsica que s'ha comentat anteriorment ordena les dades per una columna. Però, què passa si necessiteu afegir un nivell més d'ordenació?

    Suposant que la nostra taula de mostra té dos camps, Estat (columna B) i Valor (columna C) , volem ordenar primer per Estat alfabèticament i després per Valor descendent.

    Per ordenar per dues columnes, només afegim un parell més de <1 Arguments>by_array / sort_order :

    • Array és A2:C10; aquesta vegada, volem incloure les tres columnes als resultats.
    • Per_matriu1 és B2:B10 - primer, ordena per Estat .
    • Orden_ordenació1 és 1 - ordena alfabèticament des de A a Z.
    • By_array2 és C2:C10; llavors, ordena per Valor .
    • Orden_ordena2 és -1 - ordenar de més gran a més petit.

    Com a resultat, obtenim la fórmula següent:

    =SORTBY(A2:B10, B2:B10, 1, C2:C10, -1)

    Que reordena les nostres dades exactament tal com els vam indicar:

    Ordenació personalitzada a Excel amb una fórmula

    Per ordenar les dades en un ordre personalitzat, podeu utilitzar la funció d'ordenació personalitzada d'Excel o crear una fórmula d'ORDENACIÓ DE COINCIDENCIA d'aquesta manera:

    SORTBY(matriu,MATCH( range_to_sort , custom_list , 0))

    Fent una ullada més de prop al nostre conjunt de dades, probablement us resultarà més convenient ordenar els projectes pel seu estat "lògicament" , per exemple. per importància, més que per ordre alfabètic.

    Per fer-ho, primer creem una llista personalitzada en l'ordre d'ordenació desitjat ( En curs , Completat , En espera ) escrivint cada valor en una cel·la separada a l'interval E2:E4.

    I després, utilitzant la fórmula genèrica anterior, proporcionem l'interval d'origen per a matriu (A2 :C10), la columna Estat per a range_to_sort (B2:B10) i la llista personalitzada que hem creat per a custom_list (E2:E4).

    =SORTBY(A2:C10, MATCH(B2:B10, E2:E4, 0))

    Com a resultat, tenim els projectes ordenats segons el seu estat exactament com cal:

    Per ordenar per llista personalitzada en ordre invers, poseu -1 per al Argument sort_order1 :

    =SORTBY(A2:C10, MATCH(B2:B10, E2:E4, 0), -1)

    I tindreu els projectes ordenats en la direcció oposada:

    Vol ordenar els registres addicionalment dins de cada estat? Cap problema. Simplement, afegiu un nivell més d'ordenació a la fórmula, per exemple per Valor (C2:C10) i definiu l'ordre d'ordenació desitjat, ascendent en el nostre cas:

    =SORTBY(A2:C10, MATCH(B2:B10, E2:E5, 0), 1, C2:C10, 1)

    Un gran avantatge de la fórmula SORTBY respecte a la funció d'ordenació personalitzada d'Excel és que la fórmula s'actualitza automàticament sempre que canvien les dades originals, mentre que la funció requereix netejar i tornar a ordenar amb cada canvi.

    Com. aquesta fórmulafunciona:

    Com ja s'ha esmentat, la funció SORTBY d'Excel només pot processar matrius "ordenar per" les dimensions de les quals són compatibles amb la matriu d'origen. Com que la nostra matriu font (C2:C10) conté 9 files i la llista personalitzada (E2:E4) només 3 files, no podem proporcionar-la directament a l'argument by_array . En comptes d'això, utilitzem la funció MATCH per crear una matriu de 9 files:

    MATCH(B2:B10, E2:E5, 0)

    Aquí, fem servir la columna Estat (B2:B10) com a valors de cerca i la nostra llista personalitzada (E2:E5) com a matriu de cerca. L'últim argument s'estableix a 0 per buscar coincidències exactes. Com a resultat, obtenim una matriu de 9 números, cadascun representant la posició relativa d'un valor determinat Estat a la llista personalitzada:

    {1;3;2;1;3;2;2;1;2}

    Aquesta matriu va directament a l'argument by_array de la funció SORTBY i l'obliga a col·locar les dades en l'ordre corresponent als elements de la matriu, és a dir, primer les entrades representades per 1, després entrades representades per 2, i així successivament.

    Ordenació aleatòria a Excel amb una fórmula

    En versions anteriors d'Excel, podeu fer una ordenació aleatòria amb la funció RAND tal com s'explica en aquest tutorial: Com ordenar aleatòriament una llista a Excel.

    A l'Excel nou, podeu utilitzar una funció RANDARRAY més potent juntament amb SORTBY:

    SORTBY( array , RANDARRAY(ROWS( array )))

    On matriu són les dades font que voleu barrejar.

    Aquesta fórmula genèrica funciona per a una llista que consta d'ununa sola columna així com per a un rang de diverses columnes.

    Per exemple, per ordenar aleatòriament una llista a A2:A10, utilitzeu aquesta fórmula:

    =SORTBY(A2:A10, RANDARRAY(ROWS(A2:A10)))

    Per barrejar dades a A2:C10 mantenint les files juntes, utilitzeu aquesta:

    =SORTBY(A2:C10, RANDARRAY(ROWS(A2:C10)))

    Com funciona aquesta fórmula:

    La funció RANDARRAY produeix una matriu de nombres aleatoris que s'utilitzaran per ordenar i ho passeu a l'argument by_array de SORTBY. Per especificar quants números aleatoris voleu generar, compteu el nombre de files de l'interval d'origen mitjançant la funció ROWS i "alimenteu" aquest nombre a l'argument files de RANDARRAY. Això és tot!

    Nota. Igual que el seu predecessor, RANDARRAY és una funció volàtil i genera una nova matriu de nombres aleatoris cada vegada que es torna a calcular el full de treball. Com a resultat, les vostres dades seran recorregudes amb cada canvi al full. Per evitar el recurs automàtic, podeu utilitzar la funció Enganxa especial > Valors per substituir les fórmules pels seus valors.

    Ordena les cel·les per longitud de cadena

    Per ordenar les cel·les per la longitud de les cadenes de text que contenen, utilitzeu la funció LEN per comptar el nombre de caràcters de cada cel·la i proporcioneu les longituds calculades a l'argument by_array de SORTBY. L'argument sort_order es pot establir a 1 o a -1, depenent de l'ordre preferit d'ordenació.

    Per ordenar per cadena de text del més petit al més gran:

    SORTBY(matriu, LEN(matriu), 1)

    Per ordenar percadena de text del més gran al més petit:

    SORTBY(array, LEN(array), -1)

    I aquí hi ha una fórmula que demostra aquest enfocament en dades reals:

    =SORTBY(A2:A7, LEN(A2:A7), 1)

    On A2:A7 són les cel·les originals que voleu ordenar segons la longitud del text en ordre ascendent:

    ORDENAR vs. ORDENAR

    Al grup de noves funcions de matriu dinàmica d'Excel, hi ha dues dissenyat per a la classificació. A continuació enumerem les diferències i similituds més essencials, així com quan és millor utilitzar-les.

    • A diferència de la funció SORT, SORTBY no requereix que la matriu "ordena per" sigui part de la font. matriu, ni cal que aparegui als resultats. Per tant, quan la vostra tasca és ordenar un rang basat en una altra matriu independent o una llista personalitzada, SORTBY és la funció adequada per utilitzar. Si voleu ordenar un interval en funció dels seus propis valors, aleshores SORT és més adequat.
    • Les dues funcions admeten diversos nivells d'ordenació i ambdues es poden encadenar amb altres matrius dinàmiques i funcions convencionals.
    • Ambdues funcions només estan disponibles per als usuaris d'Excel 365 i Excel 2021.

    La funció d'Excel SORTBY no funciona

    En cas que la vostra fórmula SORTBY retorni un error, és molt probable que sigui a causa de un dels motius següents.

    Arguments by_array no vàlids

    Els arguments by_array han de ser una sola fila o una sola columna i de mida compatible amb la matriu argument. Per exemple, si array té 10files, by_array també hauria d'incloure 10 files. En cas contrari, un #VALOR! es produeix un error.

    Arguments de sort_order no vàlids

    Els arguments sort_order només poden ser 1 (ascendent) o -1 (descendente). Si no s'estableix cap valor, SORTBY és per defecte en ordre ascendent. Si s'estableix algun altre valor, un #VALOR! es retorna l'error.

    No hi ha prou espai per als resultats

    Com qualsevol altra funció de matriu dinàmica, SORTBY aboca els resultats en un interval que es pot redimensionar i actualitzar automàticament. Si no hi ha prou cel·les buides per mostrar tots els valors, un #SPILL! es genera un error.

    El llibre de treball d'origen està tancat

    Si una fórmula SORTBY fa referència a un altre fitxer d'Excel, tots dos llibres de treball han d'estar oberts. Si el llibre d'origen està tancat, un #REF! es produeix un error.

    La vostra versió d'Excel no admet matrius dinàmiques

    Quan s'utilitza en una versió predinàmica d'Excel, la funció SORT retorna un #NOM? error.

    Així és com s'utilitza la funció SORTBY a Excel per fer una ordenació personalitzada i altres coses. Us agraeixo la lectura i espero veure-us al nostre blog la setmana vinent!

    Quader de pràctiques per descarregar

    Fórmules d'Excel SORTBY (fitxer .xlsx)

    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.