Excel SORTBY -toiminto - mukautettu lajittelu kaavalla

  • Jaa Tämä
Michael Brown

Tänään tarkastelemme tarkkaan uuden dynaamisen SORTBY-funktion syntaksia ja tyypillisiä käyttötapoja. Opit, miten voit mukauttaa lajittelua Excelissä kaavalla, lajitella luettelon satunnaisesti, järjestää soluja tekstin pituuden mukaan ja paljon muuta.

Microsoft Excel tarjoaa useita tapoja järjestää tekstidata aakkosjärjestykseen, päivämäärät aikajärjestykseen ja numerot pienimmästä suurimpaan tai suurimmasta pienimpään. Myös omien mukautettujen luetteloiden lajittelu on mahdollista. Perinteisen Lajittele-toiminnon lisäksi Excel 365 esittelee upouuden tavan lajitella tietoja kaavojen avulla - erittäin kätevää ja uskomattoman yksinkertaista käyttää!

    Excel SORTBY -toiminto

    Excelin SORTBY-toiminto on suunniteltu lajittelemaan yksi alue tai joukko toisen alueen tai joukon arvojen perusteella. Lajittelu voidaan tehdä yhden tai useamman sarakkeen mukaan.

    SORTBY on yksi kuudesta uudesta dynaamisesta matriisitoiminnosta, jotka ovat käytettävissä Excel for Microsoft 365:ssä ja Excel 2021:ssä. Sen tuloksena syntyy dynaaminen matriisi, joka leviää viereisiin soluihin ja päivittyy automaattisesti, kun lähdetiedot muuttuvat.

    SORTBY-funktiolla on vaihteleva määrä argumentteja - kaksi ensimmäistä ovat pakollisia ja muut valinnaisia:

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

    Array (pakollinen) - lajiteltavien solujen alue tai arvojen joukko.

    By_array1 (pakollinen) - alue tai joukko, jonka mukaan lajitellaan.

    Lajittelujärjestys1 (valinnainen) - lajittelujärjestys:

    • 1 tai jätetään pois (oletusarvo) - nouseva arvo
    • -1 - laskeva

    By_array2 / Lajittelujärjestys2 , ... (valinnainen) - lajittelussa käytettävät lisäjoukko-/järjestysparit.

    Tärkeä huomautus: Tällä hetkellä SORTBY-toiminto on käytettävissä vain Microsoft 365 -tilauksissa ja Excel 2021:ssä. Excel 2019:ssä, Excel 2016:ssa ja aiemmissa versioissa SORTBY-toiminto ei ole käytettävissä.

    SORTBY-toiminto - 4 muistettavaa asiaa

    Jotta Excelin SORTBY-kaava toimisi oikein, on otettava huomioon muutama tärkeä seikka:

    • By_array argumenttien olisi oltava joko yhden rivin korkuisia tai yhden sarakkeen levyisiä.
    • The array ja kaikki by_array argumenttien on oltava yhteensopivia. Esimerkiksi lajitellessa kahden sarakkeen mukaan, array , by_array1 ja by_array2 pitäisi olla sama määrä rivejä; muuten tapahtuu #VALUE-virhe.
    • Jos SORTBY:n palauttama joukko on lopullinen tulos (tuloste solussa eikä välitetä toiselle funktiolle), Excel luo dynaamisen valuma-alueen ja täyttää sen tuloksilla. Varmista siis, että sinulla on tarpeeksi tyhjiä soluja sen solun alapuolella ja/tai oikealla puolella, johon kirjoitat kaavan, muuten saat #SPILL-virheen.
    • SORTBY-kaavojen tulokset päivittyvät automaattisesti aina, kun lähdetiedot muuttuvat. Kaavassa viitatun joukon ulkopuolelle lisätyt uudet merkinnät eivät kuitenkaan sisälly tuloksiin, ellet päivitä kaavan array viittaus. Jotta viitattu joukko laajenee automaattisesti, muunna lähdealue Excel-taulukoksi tai luo dynaaminen nimetty alue.

    Perus SORTBY-kaava Excelissä

    Tässä on tyypillinen skenaario SORTBY-kaavan käytöstä Excelissä:

    Oletetaan, että sinulla on luettelo projekteista, joiden nimi on Arvo Kenttä. Haluat lajitella projektit niiden arvon mukaan erilliselle arkille. Koska muiden käyttäjien ei tarvitse nähdä lukuja, et halua sisällyttää kenttään Arvo sarakkeessa tuloksissa.

    Tehtävä voidaan suorittaa helposti SORTBY-funktiolla, jolle annetaan seuraavat argumentit:

    • Array on A2:A10 - koska et halua, että A2:A10:n Arvo saraketta näytetään tuloksissa, jätät sen pois joukosta.
    • By_array1 on B2:B10 - lajittelu Arvo .
    • Lajittelujärjestys1 on -1 - laskeva, eli suurimmasta pienimpään.

    Kun argumentit yhdistetään, saadaan tämä kaava:

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

    Yksinkertaisuuden vuoksi käytämme kaavaa samalla arkilla - kirjoitamme sen soluun D2 ja painamme Enter-näppäintä. Tulokset "valuvat" automaattisesti niin moneen soluun kuin tarvitaan (meidän tapauksessamme D2:D10). Teknisesti ottaen kaava on kuitenkin vain ensimmäisessä solussa, ja sen poistaminen solusta D2 poistaa kaikki tulokset.

    Kun kaavaa käytetään toisella arkilla, se saa seuraavan muodon:

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

    Missä Sheet1 on alkuperäiset tiedot sisältävä laskentataulukko.

    SORTBY-funktion käyttäminen Excelissä - kaavaesimerkkejä

    Alla on vielä muutamia esimerkkejä SORTBYn käytöstä, jotka toivottavasti osoittautuvat hyödyllisiksi ja oivaltaviksi.

    Lajittelu useiden sarakkeiden mukaan

    Edellä käsitelty peruskaava lajittelee tiedot yhden sarakkeen mukaan. Mutta entä jos haluat lisätä vielä yhden lajittelutason?

    Oletetaan, että esimerkkitaulussamme on kaksi kenttää, Tila (sarake B) ja Arvo (sarake C) , haluamme lajitella ensin Tila aakkosjärjestyksessä ja sitten Arvo laskeva.

    Jos haluamme lajitella kahden sarakkeen mukaan, lisäämme vain yhden sarakeparin lisää. by_array / sort_order argumentit:

    • Array on A2:C10 - tällä kertaa haluamme sisällyttää kaikki kolme saraketta tuloksiin.
    • By_array1 on B2:B10 - ensimmäinen, lajittele sen mukaan Tila .
    • Lajittelujärjestys1 on 1 - lajittele aakkosjärjestyksessä A:sta Z:hen.
    • By_array2 on C2:C10 - lajittele sen jälkeen seuraavasti Arvo .
    • Lajittelujärjestys2 on -1 - lajittele suurimmasta pienimpään.

    Tuloksena saadaan seuraava kaava:

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

    Se järjestää tietomme uudelleen juuri niin kuin olimme määränneet:

    Mukautettu lajittelu Excelissä kaavalla

    Jos haluat lajitella tiedot mukautettuun järjestykseen, voit joko käyttää Excelin Mukautettu lajittelu -toimintoa tai rakentaa SORTBY MATCH -kaavan tällä tavalla:

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

    Kun tarkastelet tietojamme lähemmin, on luultavasti kätevämpää lajitella hankkeet niiden tilan mukaan "loogisesti", esim. tärkeyden mukaan, kuin aakkosjärjestyksessä.

    Sitä varten luomme ensin mukautetun luettelon halutussa lajittelujärjestyksessä ( Käynnissä , Valmistunut , Odotuksessa ) kirjoittamalla kukin arvo erilliseen soluun alueella E2:E4.

    Ja sitten, käyttämällä edellä olevaa yleistä kaavaa, annamme lähdealueen arvolle array (A2:C10). Tila sarake range_to_sort (B2:B10), ja mukautettu luettelo, jonka loimme varten custom_list (E2:E4).

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

    Tämän tuloksena saimme projektit lajiteltua niiden tilan mukaan juuri niin kuin pitääkin:

    Jos haluat lajitella mukautetun luettelon käänteisessä järjestyksessä, laita -1 kenttään sort_order1 argumentti:

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

    Ja sinulla on hankkeet lajiteltu vastakkaiseen suuntaan:

    Haluatko lisäksi lajitella tietueet kunkin tilan sisällä? Ei ongelmaa. Lisää vain yksi lajittelutaso lisää kaavaan, vaikkapa by Arvo (C2:C10) ja määritä haluttu lajittelujärjestys, joka on tässä tapauksessa nouseva:

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

    SORTBY-kaavan suuri etu Excelin mukautettuun lajittelutoimintoon verrattuna on se, että kaava päivittyy automaattisesti aina, kun alkuperäiset tiedot muuttuvat, kun taas lajittelutoiminto vaatii siivouksen ja uudelleenlajittelun jokaisen muutoksen yhteydessä.

    Miten tämä kaava toimii:

    Kuten jo mainittiin, Excelin SORTBY-funktio voi käsitellä vain sellaisia "lajittelun mukaan" -matriiseja, joiden mitat ovat yhteensopivia lähdematriisin kanssa. Koska lähdematriisin (C2:C10) koko on 9 riviä ja mukautetun luettelon (E2:E4) koko vain 3 riviä, emme voi antaa sitä suoraan funktiolle SORTBY. by_array Sen sijaan käytämme MATCH-funktiota luodaksemme 9-rivisen joukon:

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

    Tässä käytämme Tila sarakkeen (B2:B10) hakuarvoina ja mukautetun listamme (E2:E5) hakumassana. Viimeinen argumentti asetetaan arvoon 0 tarkkojen vastaavuuksien etsimistä varten. Tuloksena saamme 9 numeron massan, joista kukin edustaa tietyn sarakkeen suhteellista sijaintia. Tila arvo mukautetussa luettelossa:

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

    Tämä joukko menee suoraan by_array argumentti SORTBY-funktiolle ja pakottaa sen sijoittamaan tiedot matriisin elementtejä vastaavaan järjestykseen, eli ensin merkinnät, joita edustavat ykköset, sitten merkinnät, joita edustavat kakkoset, ja niin edelleen.

    Satunnainen lajittelu Excelissä kaavalla

    Aikaisemmissa Excel-versioissa voit tehdä satunnaislajittelun RAND-funktiolla, kuten tässä ohjeessa selitetään: Miten lajitella luettelo satunnaisesti Excelissä.

    Uudessa Excelissä voit käyttää tehokkaampaa RANDARRAY-funktiota yhdessä SORTBYn kanssa:

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

    Missä array on lähdetiedot, jotka haluat sekoittaa.

    Tämä yleinen kaava toimii sekä yhdestä sarakkeesta koostuvalle listalle että monisarakkeiselle alueelle.

    Jos haluat esimerkiksi lajitella luettelon satunnaisesti A2:A10-luokkaan, käytä tätä kaavaa:

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

    Jos haluat sekoittaa tietoja A2:C10:ssä pitämällä rivit yhdessä, käytä tätä:

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

    Miten tämä kaava toimii:

    RANDARRAY-funktio tuottaa satunnaislukujen joukon, jota käytetään lajittelussa, ja se annetaan funktiossa by_array Määrittääksesi, kuinka monta satunnaislukua luodaan, lasket lähdealueen rivien lukumäärän käyttämällä ROWS-funktiota ja "syötät" tämän lukumäärän funktioon rivit RANDARRAYn argumentti. Siinä se!

    Huomautus. Kuten edeltäjänsä, RANDARRAY on haihtuva funktio, ja se luo uuden satunnaislukujen joukon aina, kun laskentataulukko lasketaan uudelleen. Tämän seurauksena tietosi uudelleenjärjestetään jokaisen muutoksen yhteydessä. Voit estää automaattisen uudelleenjärjestämisen käyttämällä komentoa Liitä Special > Arvot ominaisuus korvaa kaavat niiden arvoilla.

    Lajittele solut merkkijonon pituuden mukaan

    Jos haluat lajitella soluja niiden sisältämien merkkijonojen pituuden mukaan, käytä LEN-funktiota laskemaan merkkien määrä kussakin solussa ja anna lasketut pituudet funktiolle LEN. by_array SORTBY:n argumentti. sort_order argumentin arvoksi voidaan asettaa joko 1 tai -1, riippuen siitä, missä järjestyksessä lajittelu halutaan suorittaa.

    Lajittelemaan tekstijonon pienimmästä suurimpaan:

    SORTBY(array, LEN(array), 1)

    Lajittelemaan tekstijonon suurimmasta pienimpään:

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

    Ja tässä on kaava, joka osoittaa tämän lähestymistavan todellisilla tiedoilla:

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

    Jossa A2:A7 ovat alkuperäiset solut, jotka haluat lajitella tekstin pituuden mukaan nousevaan järjestykseen:

    SORTBY vs. SORT

    Excelin uusien dynaamisten array-funktioiden ryhmässä on kaksi lajitteluun tarkoitettua toimintoa. Seuraavassa luetellaan olennaisimmat erot ja yhtäläisyydet sekä se, milloin kumpaakin kannattaa käyttää.

    • Toisin kuin SORT-funktio, SORTBY ei vaadi, että "lajittele mukaan" -matriisi on osa lähdematriisia, eikä sen tarvitse näkyä tuloksissa. Kun tehtäväsi on lajitella alue toisen riippumattoman matriisin tai mukautetun luettelon perusteella, SORTBY on oikea funktio. Jos haluat lajitella alueen sen omien arvojen perusteella, SORT on sopivampi.
    • Molemmat toiminnot tukevat monitasoista lajittelua, ja molemmat voidaan ketjuttaa muiden dynaamisten array- ja tavanomaisten toimintojen kanssa.
    • Molemmat toiminnot ovat vain Excel 365- ja Excel 2021 -käyttäjien käytettävissä.

    Excel SORTBY -toiminto ei toimi

    Jos SORTBY-kaavasi palauttaa virheen, se johtuu todennäköisesti jostain seuraavista syistä.

    Väärät by_array-argumentit

    The by_array argumenttien on oltava yksittäisiä rivejä tai sarakkeita, ja niiden on oltava kooltaan yhteensopivia tiedoston array Esimerkiksi jos array on 10 riviä, by_array pitäisi myös sisältää 10 riviä, muutoin tulee virhe #VALUE!.

    Väärät sort_order-argumentit

    The sort_order argumentit voivat olla vain 1 (nouseva) tai -1 (laskeva). Jos mitään arvoa ei aseteta, SORTBY käyttää oletusarvoisesti nousevaa järjestystä. Jos jokin muu arvo asetetaan, palautetaan #VALUE! -virhe.

    Tuloksille ei ole riittävästi tilaa

    Kuten mikä tahansa muukin dynaaminen matriisifunktio, SORTBY jakaa tulokset automaattisesti muokattavaan ja päivitettävään alueeseen. Jos tyhjiä soluja ei ole tarpeeksi kaikkien arvojen näyttämiseen, annetaan virheilmoitus #SPILL!.

    Lähde työkirja on suljettu

    Jos SORTBY-kaavassa viitataan toiseen Excel-tiedostoon, molempien työkirjojen on oltava auki. Jos lähdetyökirja on suljettu, syntyy #REF! -virhe.

    Excel-versiosi ei tue dynaamisia matriiseja

    Kun SORT-funktiota käytetään Excelin dynaamista versiota edeltävässä versiossa, se palauttaa #NAME? -virheen.

    Näin käytät SORTBY-funktiota Excelissä mukautetun lajittelun ja muiden asioiden tekemiseen. Kiitos lukemisesta ja toivottavasti tapaamme blogissamme ensi viikolla!

    Käytännön työkirja ladattavissa

    Excel SORTBY -kaavat (.xlsx-tiedosto)

    Michael Brown on omistautunut teknologian harrastaja, jolla on intohimo yksinkertaistaa monimutkaisia ​​prosesseja ohjelmistotyökalujen avulla. Yli vuosikymmenen kokemuksella teknologia-alalta hän on hionut taitojaan Microsoft Excelissä ja Outlookissa sekä Google Sheetsissä ja Docsissa. Michaelin blogi on omistettu jakamaan tietojaan ja asiantuntemustaan ​​muiden kanssa, ja se tarjoaa helposti seurattavia vinkkejä ja opetusohjelmia tuottavuuden ja tehokkuuden parantamiseksi. Olitpa kokenut ammattilainen tai aloittelija, Michaelin blogi tarjoaa arvokkaita oivalluksia ja käytännön neuvoja, joiden avulla saat kaiken irti näistä tärkeistä ohjelmistotyökaluista.