Excel SORTBY funkció - egyéni rendezés képlettel

  • Ossza Meg Ezt
Michael Brown

Ma alaposan megnézzük az új dinamikus tömb SORTBY függvényének szintaxisát és tipikus felhasználási módjait. Megtanulja, hogyan lehet az Excelben egyéni rendezést végezni egy képlettel, véletlenszerűen rendezni egy listát, a cellákat a szöveg hossza szerint rendezni, és még sok minden mást.

A Microsoft Excel számos lehetőséget kínál a szöveges adatok ábécé szerinti, a dátumok időrendi, a számok pedig a legkisebbtől a legnagyobb vagy a legnagyobbtól a legkisebbig történő rendezésére. A saját egyéni listák szerinti rendezésre is van mód. A hagyományos rendezési funkció mellett az Excel 365 egy vadonatúj lehetőséget is kínál az adatok képletekkel történő rendezésére - ez nagyon kényelmes és hihetetlenül egyszerűen használható!

    Excel SORTBY funkció

    Az Excel SORTBY funkciója egy tartomány vagy tömb rendezésére szolgál egy másik tartomány vagy tömb értékei alapján. A rendezés egy vagy több oszlop szerint is elvégezhető.

    A SORTBY egyike a Microsoft 365 és az Excel 2021 Excelben elérhető hat új dinamikus tömbfüggvénynek, amelynek eredménye egy dinamikus tömb, amely a szomszédos cellákra is kiterjed, és automatikusan frissül, amikor a forrásadatok változnak.

    A SORTBY függvénynek változó számú argumentuma van - az első kettő kötelező, a többi opcionális:

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

    Array (kötelező) - a sorolandó cellák vagy értékek tartománya.

    By_array1 (kötelező) - a tartomány vagy tömb, amely alapján rendezni kell.

    Sort_order1 (opcionális) - a rendezési sorrend:

    • 1 vagy kihagyva (alapértelmezett) - növekvő
    • -1 - csökkenő

    By_array2 / Sort_order2 , ... (opcionális) - további tömb / sorrendpárok a rendezéshez.

    Fontos megjegyzés! A SORTBY funkció jelenleg csak a Microsoft 365 előfizetések és az Excel 2021 esetén érhető el. Az Excel 2019, Excel 2016 és korábbi verziókban a SORTBY funkció nem érhető el.

    SORTBY funkció - 4 dolog, amit nem szabad elfelejteni

    Ahhoz, hogy az Excel SORTBY képlet helyesen működjön, néhány fontos dologra oda kell figyelni:

    • By_array Az érveknek egy sor magasnak vagy egy oszlop szélesnek kell lenniük.
    • A array és minden by_array argumentumoknak kompatibilis dimenziókkal kell rendelkezniük. Például két oszlop szerinti rendezés esetén, array , by_array1 és by_array2 ugyanannyi sorral kell rendelkeznie; ellenkező esetben #VALUE hiba lép fel.
    • Ha a SORTBY által visszaadott tömb a végeredmény (a cellában lévő kimenet és nem egy másik függvénynek való átadás), az Excel létrehoz egy dinamikus kiöntési tartományt, és feltölti azt az eredményekkel. Tehát győződjön meg róla, hogy van elég üres cella lent és/vagy jobbra attól a cellától, ahol a képletet beírja, különben #SPILL hibát fog kapni.
    • A SORTBY képletek eredményei automatikusan frissülnek, amikor a forrásadatok változnak. A képletben hivatkozott tömbön kívül hozzáadott új bejegyzések azonban nem kerülnek be az eredményekbe, kivéve, ha frissíti a SORTBY képletben szereplő adatokat. array hivatkozás. Ahhoz, hogy a hivatkozott tömb automatikusan kibővüljön, alakítsa át a forrástartományt Excel-táblázattá, vagy hozzon létre egy dinamikus névvel ellátott tartományt.

    Alapvető SORTBY képlet az Excelben

    Íme egy tipikus forgatókönyv a SORTBY képlet használatára az Excelben:

    Tegyük fel, hogy van egy listája a projekteknek, amelyekben a Érték Mivel a többi felhasználónak nem kell látnia a számokat, ezért inkább nem szeretné, ha a projekteket értékük szerint rendezné egy külön lapon. Érték oszlop az eredményekben.

    A feladat könnyen elvégezhető a SORTBY függvénnyel, amelyhez a következő argumentumokat kell megadni:

    • Array az A2:A10 - mivel nem kívánja, hogy a Érték oszlopot az eredményekben megjeleníteni, hagyja ki a tömbből.
    • By_array1 B2:B10 - rendezés Érték .
    • Sort_order1 -1 - csökkenő, azaz a legmagasabbtól a legalacsonyabbig.

    Az érveket összerakva a következő képletet kapjuk:

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

    Az egyszerűség kedvéért használjuk a képletet ugyanazon a lapon - írjuk be a D2-be, és nyomjuk meg az Enter billentyűt. Az eredmények automatikusan annyi cellába "ömlenek", ahány cellára szükség van (esetünkben D2:D10). De technikailag a képlet csak az első cellában van, és ha töröljük a D2-ből, az összes eredmény törlődik.

    Ha egy másik lapon használjuk, a képlet a következő alakot veszi fel:

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

    Hol Sheet1 az eredeti adatokat tartalmazó munkalap.

    A SORTBY funkció használata az Excelben - képletpéldák

    Az alábbiakban talál néhány további példát a SORTBY használatára, amelyek remélhetőleg hasznosnak és tanulságosnak bizonyulnak.

    Rendezés több oszlop szerint

    A fent tárgyalt alapképlet egy oszlop szerint rendezi az adatokat. De mi van akkor, ha még egy további rendezési szintre van szüksége?

    Tegyük fel, hogy a mintatáblánknak két mezője van, Állapot (B oszlop) és Érték (C oszlop) , először a következők szerint szeretnénk rendezni Állapot betűrendben, majd Érték ereszkedő.

    Két oszlop szerinti rendezéshez csak még egy párat adunk hozzá a by_array / sort_order érvek:

    • Array A2:C10 - ezúttal mindhárom oszlopot be akarjuk vonni az eredményekbe.
    • By_array1 B2:B10 - először, rendezés a következő szerint Állapot .
    • Sort_order1 1 - ABC-sorrendben A-tól Z-ig.
    • By_array2 a C2:C10 - akkor rendezze a következő szerint Érték .
    • Sort_order2 -1 - a legnagyobbtól a legkisebbig történő rendezés.

    Ennek eredményeként a következő képletet kapjuk:

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

    Ami pontosan úgy rendezi át az adatainkat, ahogyan azt megadtuk:

    Egyéni rendezés Excelben egy képlettel

    Az adatok egyéni sorrendbe rendezéséhez vagy az Excel Egyéni rendezés funkcióját használhatja, vagy ilyen módon készíthet SORTBY MATCH képletet:

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

    Ha közelebbről megnézzük az adathalmazunkat, valószínűleg kényelmesebbnek találjuk, ha a projekteket státuszuk szerint "logikusan", pl. fontosság szerint rendezzük, mint ábécé szerint.

    Ehhez először létrehozunk egy egyéni listát a kívánt sorrendben ( Folyamatban , Befejezett , Várakozáson kívül ) minden egyes értéket külön cellába írva az E2:E4 tartományban.

    Ezután a fenti általános képlet segítségével megadjuk a forrás tartományt a következőhöz array (A2:C10), a Állapot oszlop a range_to_sort (B2:B10), és az egyéni listát, amelyet a custom_list (E2:E4).

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

    Ennek eredményeképpen a projekteket pontosan a szükséges módon, státuszuk szerint rendeztük:

    Ha az egyéni listát fordított sorrendben szeretné rendezni, akkor a -1-et írja be a sort_order1 érv:

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

    És a projekteket az ellenkező irányba rendezi:

    Szeretné a rekordokat az egyes státuszokon belül is rendezni? Nem probléma. Egyszerűen adjon hozzá még egy rendezési szintet a képlethez, mondjuk a következők szerint. Érték (C2:C10), és határozzuk meg a kívánt rendezési sorrendet, esetünkben felfelé haladva:

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

    A SORTBY képlet nagy előnye az Excel Egyéni rendezés funkciójával szemben, hogy a képlet automatikusan frissül, amikor az eredeti adatok megváltoznak, míg a funkció minden egyes változáskor tisztítást és újrarendezést igényel.

    Hogyan működik ez a képlet:

    Mint már említettük, az Excel SORTBY függvénye csak olyan "sort by" tömböket tud feldolgozni, amelyek dimenziói kompatibilisek a forrástömbbel. Mivel a forrástömbünk (C2:C10) 9 sort tartalmaz, az egyéni listánk (E2:E4) pedig csak 3 sort, nem tudjuk közvetlenül megadni a by_array Ehelyett a MATCH függvényt használjuk egy 9 soros tömb létrehozásához:

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

    Itt használjuk a Állapot oszlopot (B2:B10), mint keresési értékeket és az egyéni listánkat (E2:E5), mint keresési tömböt. Az utolsó argumentumot 0-ra állítjuk, hogy pontos egyezéseket keressünk. Eredményként egy 9 számból álló tömböt kapunk, amelyek mindegyike egy adott oszlop relatív pozícióját jelöli. Állapot értéket az egyéni listában:

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

    Ez a tömb közvetlenül a by_array argumentuma a SORTBY függvénynek, és arra kényszeríti, hogy az adatokat a tömb elemeinek megfelelő sorrendben helyezze el, azaz először az 1-es, majd a 2-es és így tovább.

    Véletlenszerű rendezés Excelben egy képlettel

    A korábbi Excel-verziókban a RAND funkcióval véletlenszerű rendezést végezhet, ahogyan azt ez a bemutató elmagyarázza: Hogyan rendezhetünk véletlenszerűen egy listát az Excelben.

    Az új Excelben a SORTBY funkcióval együtt egy erősebb RANDARRAY funkciót is használhat:

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

    Hol array a keverendő forrásadat.

    Ez az általános képlet egy oszlopból álló listára és több oszlopos tartományra is alkalmazható.

    Például egy lista véletlenszerű rendezéséhez az A2:A10 között használja ezt a képletet:

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

    Ha az A2:C10 adatok keveréséhez a sorokat együtt tartja, használja ezt:

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

    Hogyan működik ez a képlet:

    A RANDARRAY függvény egy véletlen számokból álló tömböt állít elő, amelyet a rendezéshez használunk, és átadjuk a by_array A SORTBY argumentuma. Annak megadásához, hogy hány véletlen számot generáljon, a ROWS függvény segítségével megszámolja a forrás tartományban lévő sorok számát, és ezt a számot "betáplálja" a sorok RANDARRAY érve. Ez az!

    Megjegyzés: Elődjéhez hasonlóan a RANDARRAY is egy illékony függvény, és minden alkalommal, amikor a munkalapot újraszámolja, új véletlen számok tömbjét generálja. Ennek eredményeképpen az adatok a lap minden egyes módosításakor átrendeződnek. Az automatikus átrendeződés megakadályozására használhatja a RANDARRAY függvényt. Beillesztés Special > Értékek funkcióval a képleteket az értékeikkel helyettesítheti.

    Cellák rendezése a karakterlánc hossza szerint

    A celláknak a bennük lévő szöveges karakterláncok hossza szerinti rendezéséhez használja a LEN függvényt az egyes cellákban lévő karakterek számának megszámlálásához, és adja meg a kiszámított hosszúságokat a LEN függvénynek. by_array a SORTBY érve. A sort_order argumentum 1 vagy -1 lehet, attól függően, hogy milyen sorrendben szeretnénk rendezni.

    A szöveges karakterlánc rendezése a legkisebbtől a legnagyobbig:

    SORTBY(tömb, LEN(tömb), 1)

    A szöveges karakterlánc rendezése a legnagyobbtól a legkisebbig:

    SORTBY(tömb, LEN(tömb), -1)

    És itt van egy képlet, amely ezt a megközelítést valós adatokon mutatja be:

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

    Ahol A2:A7 az eredeti cellák, amelyeket a szöveg hossza szerint szeretne növekvő sorrendben rendezni:

    SORTBY vs. SORT

    Az új Excel dinamikus tömbfüggvények csoportjában két, rendezésre szolgáló funkció található. Az alábbiakban felsoroljuk a legfontosabb különbségeket és hasonlóságokat, valamint azt, hogy mikor érdemes használni az egyes funkciókat.

    • A SORT függvénytől eltérően a SORTBY függvénynek nem szükséges, hogy a "sort by" tömb része legyen a forrástömbnek, és az eredményekben sem kell megjelennie. Tehát, ha a feladatunk egy tartomány rendezése egy másik független tömb vagy egy egyéni lista alapján, akkor a SORTBY függvény a megfelelő. Ha egy tartományt a saját értékei alapján szeretnénk rendezni, akkor a SORT függvény a megfelelőbb.
    • Mindkét függvény támogatja a többszintű rendezést, és mindkettő összekapcsolható más dinamikus tömb és hagyományos függvényekkel.
    • Mindkét funkció csak az Excel 365 és az Excel 2021 felhasználói számára érhető el.

    Az Excel SORTBY funkció nem működik

    Ha a SORTBY formula hibát ad vissza, annak valószínűleg az alábbi okok valamelyike az oka.

    Érvénytelen by_array argumentumok

    A by_array argumentumoknak egyetlen sornak vagy oszlopnak kell lenniük, és méretüknek kompatibilisnek kell lennie a array Például, ha a array 10 sorból áll, by_array szintén 10 sort kell tartalmaznia, különben #VALUE! hiba lép fel.

    Érvénytelen sort_order argumentumok

    A sort_order argumentum csak 1 (növekvő) vagy -1 (csökkenő) lehet. Ha nincs érték megadva, a SORTBY alapértelmezés szerint növekvő sorrendet állít be. Ha más értéket adunk meg, #VALUE! hibaüzenetet kapunk.

    Nincs elég hely az eredményekhez

    Mint minden más dinamikus tömbfüggvény, a SORTBY is egy automatikusan átméretezhető és frissíthető tartományba tölti az eredményeket. Ha nincs elég üres cella az összes érték megjelenítéséhez, akkor #SPILL! hibaüzenetet kap.

    A forrás munkafüzet le van zárva

    Ha egy SORTBY formula egy másik Excel-fájlra hivatkozik, mindkét munkafüzetnek nyitva kell lennie. Ha a forrás munkafüzetet bezárják, #REF! hiba lép fel.

    Az Excel verziója nem támogatja a dinamikus tömböket

    Ha az Excel dinamika előtti verziójában használják, a SORT funkció #NAME? hibát ad vissza.

    Így használhatjuk a SORTBY funkciót az Excelben az egyéni rendezéshez és egyéb dolgokhoz. Köszönöm, hogy elolvastad, és remélem, jövő héten találkozunk a blogon!

    Gyakorlati munkafüzet letölthető

    Excel SORTBY képletek (.xlsx fájl)

    Michael Brown elkötelezett technológiai rajongó, aki szenvedélyesen egyszerűsíti a bonyolult folyamatokat szoftvereszközök segítségével. A technológiai iparban szerzett több mint egy évtizedes tapasztalatával a Microsoft Excel és az Outlook, valamint a Google Táblázatok és a Dokumentumok területén fejlesztette tudását. Michael blogja célja, hogy megossza tudását és szakértelmét másokkal, könnyen követhető tippeket és oktatóanyagokat adva a termelékenység és a hatékonyság javításához. Akár tapasztalt szakember, akár kezdő, Michael blogja értékes betekintést és gyakorlati tanácsokat kínál, amelyek segítségével a legtöbbet hozhatja ki ezekből az alapvető szoftvereszközökből.