Sisällysluettelo
Ohjeessa näytetään, miten SORT-funktiota käytetään tietomääritysten dynaamiseen lajitteluun. Opit kaavan, jolla voit lajitella Excelissä aakkosjärjestykseen, järjestää numerot nousevaan tai laskevaan järjestykseen, lajitella useiden sarakkeiden mukaan ja paljon muuta.
Lajittelutoiminto on ollut käytössä jo pitkään. Mutta kun Excel 365:ssä otettiin käyttöön dynaamiset taulukot, ilmestyi hämmästyttävän yksinkertainen tapa lajitella kaavojen avulla. Tämän menetelmän kauneus on siinä, että tulokset päivittyvät automaattisesti, kun lähdetiedot muuttuvat.
Excel SORT -toiminto
Excelin SORT-toiminto lajittelee matriisin tai alueen sisällön sarakkeiden tai rivien mukaan nousevassa tai laskevassa järjestyksessä.
SORT kuuluu dynaamisten matriisifunktioiden ryhmään. Tuloksena on dynaaminen matriisi, joka leviää automaattisesti viereisiin soluihin pysty- tai vaakasuunnassa, riippuen lähdematriisin muodosta.
SORT-funktion syntaksi on seuraava:
SORT(array, [sort_index], [sort_order], [by_col])Missä:
Array (pakollinen) - on joukko arvoja tai lajiteltavien solujen alue. Nämä voivat olla mitä tahansa arvoja, kuten tekstiä, numeroita, päivämääriä, aikoja jne.
Sort_index (valinnainen) - kokonaisluku, joka osoittaa, minkä sarakkeen tai rivin mukaan lajitellaan. Jos sitä ei anneta, käytetään oletusindeksiä 1.
Sort_order (valinnainen) - määrittelee lajittelujärjestyksen:
- 1 tai jätetään pois (oletusarvo) - nouseva järjestys, eli pienimmästä suurimpaan.
- -1 - laskeva järjestys, eli suurimmasta pienimpään.
By_col (valinnainen) - looginen arvo, joka osoittaa lajittelun suunnan:
- FALSE tai jätetään pois (oletusarvo) - lajittelu rivin mukaan. Käytät tätä vaihtoehtoa useimmiten.
- TRUE - lajittele sarakkeen mukaan. Käytä tätä vaihtoehtoa, jos tietosi on järjestetty vaakasuoraan sarakkeisiin, kuten tässä esimerkissä.
Excel SORT -toiminto - vinkkejä ja muistiinpanoja
SORT on uusi dynaaminen array-funktio, ja siksi sillä on pari erityispiirrettä, jotka sinun on syytä huomioida:
- Tällä hetkellä SORT-toiminto on käytettävissä vain Microsoft 365:ssä ja Excel 2021:ssä. Excel 2019, Excel 2016 eivät tue dynaamisia array-kaavoja, joten SORT-toiminto ei ole käytettävissä näissä versioissa.
- Jos SORT-kaavan palauttama joukko on lopullinen tulos (eli sitä ei ole siirretty toiseen funktioon), Excel luo dynaamisesti sopivan kokoisen alueen ja täyttää sen lajitelluilla arvoilla. Varmista siis, että sinulla on aina riittävästi tyhjiä soluja sen solun alapuolella ja/tai oikealla puolella, johon kirjoitat kaavan, muuten syntyy #SPILL-virhe.
- Tulokset päivittyvät dynaamisesti, kun lähdetiedot muuttuvat. array ei automaattisesti ulotu kattamaan uusia merkintöjä, jotka on lisätty viitattavan kaavan ulkopuolelle. array Jos haluat sisällyttää tällaiset kohteet, sinun on joko päivitettävä array viittaus kaavassa, tai muunna lähdealue taulukoksi, kuten tässä esimerkissä on esitetty, tai luo dynaaminen nimetty alue.
Excelin perus SORT-kaava
Tässä esimerkissä näytetään peruskaava tietojen lajittelemiseksi Excelissä nousevaan ja laskevaan järjestykseen.
Oletetaan, että tietosi on järjestetty aakkosjärjestykseen alla olevan kuvakaappauksen mukaisesti. Haluat lajitella sarakkeen B numerot rikkomatta tai sekoittamatta tietoja.
Kaava lajitteluun nousevassa järjestyksessä
Jos haluat lajitella sarakkeen B arvot pienimmästä suurimpaan, käytä seuraavaa kaavaa:
=SORT(A2:B8, 2, 1)
Missä:
- A2:B8 on lähdemääritys
- 2 on sarakkeen numero, jonka mukaan lajitellaan
- 1 on nouseva lajittelujärjestys
Koska tietomme on järjestetty riveihin, viimeinen argumentti voidaan jättää pois, jolloin oletusarvo on FALSE - lajittelu rivien mukaan.
Kirjoita kaava mihin tahansa tyhjään soluun (tässä tapauksessa D2), paina Enter-näppäintä, ja tulokset siirtyvät automaattisesti soluihin D2:E8.
Kaava lajitteluun laskevassa järjestyksessä
Jos haluat lajitella tiedot alenevasti eli suurimmasta pienimpään, aseta arvoksi sort_order argumentin arvoksi -1 näin:
=SORT(A2:B8, 2, -1)
Kirjoita kaava kohdealueen vasemmanpuoleiseen yläsoluun, niin saat tämän tuloksen:
Samalla tavalla voit lajitella tekstiarvot aakkosjärjestykseen A:sta Z:hen tai Z:stä A:han.
Miten lajitella tietoja Excelissä kaavan avulla
Alla olevissa esimerkeissä esitetään muutamia tyypillisiä SORT-funktion käyttötapoja Excelissä ja pari ei-triviaalia.
Excel SORT sarakkeen mukaan
Kun lajittelet tietoja Excelissä, useimmiten muutat rivien järjestystä. Mutta kun tiedot on järjestetty vaakasuoraan siten, että rivit sisältävät etikettejä ja sarakkeet tietueita, saatat joutua lajittelemaan vasemmalta oikealle eikä ylhäältä alaspäin.
Jos haluat lajitella sarakkeen mukaan Excelissä, aseta by_col argumentin arvoksi TRUE. Tässä tapauksessa, sort_index edustaa riviä, ei saraketta.
Jos haluat esimerkiksi lajitella alla olevat tiedot määrän mukaan suurimmasta pienimpään, käytä tätä kaavaa:
=SORT(B1:H2, 2, 1, TRUE)
Missä:
- B1:H2 on lajiteltava lähdetieto
- 2 on lajitteluindeksi, koska lajittelemme toisen rivin numeroita.
- -1 tarkoittaa alenevaa lajittelujärjestystä
- TRUE tarkoittaa, että lajitellaan sarakkeita, ei rivejä.
Lajittele useita sarakkeita eri järjestyksessä (monitasoinen lajittelu).
Kun työskentelet monimutkaisten tietomallien parissa, saatat usein tarvita monitasoista lajittelua. Voiko sen tehdä kaavalla? Kyllä, helposti! Sinun tarvitsee vain antaa joukko vakioita sarjalle sort_index ja sort_order argumentit.
Esimerkiksi lajitellaksesi alla olevat tiedot ensin seuraavasti Alue (sarake A) A:sta Z:hen, ja sitten seuraavalla tavalla Määrä . (sarake C) pienimmästä suurimpaan, aseta seuraavat argumentit:
- Array on A2:C13:n tiedot.
- Sort_index on joukkovakio {1,3}, koska lajittelemme ensin sarjan Alue (1. sarake) ja sitten Määrä . (3. sarake).
- Sort_order on array-vakio {1,-1}, koska 1. sarake on lajiteltava nousevaan järjestykseen ja 3. sarake laskevaan järjestykseen.
- By_col jätetään pois, koska lajittelemme rivit, mikä on oletusarvo.
Kun argumentit yhdistetään, saadaan tämä kaava:
=SORT(A2:C13, {1,3}, {1,-1})
Ja se toimii täydellisesti! Ensimmäisen sarakkeen tekstiarvot on lajiteltu aakkosjärjestykseen ja kolmannen sarakkeen numerot suurimmasta pienimpään:
Lajittelu ja suodatus Excelissä
Jos haluat suodattaa tietoja joidenkin kriteerien perusteella ja laittaa tulosteet järjestykseen, käytä SORT- ja FILTER-toimintoja yhdessä:
SORT(FILTER(array, criteria_range = kriteerit ), [sort_index], [sort_order], [by_col])FILTER-funktio muodostaa määrittelemiesi kriteerien perusteella arvojen joukon ja siirtää sen SORT-funktion ensimmäiseen argumenttiin.
Parasta tässä kaavassa on se, että se myös tulostaa tulokset dynaamisena vuotoalueena ilman, että sinun tarvitsee painaa Ctrl + Shift + Enter tai arvailla, kuinka moneen soluun se kopioidaan. Kuten tavallista, kirjoitat kaavan ylimpään soluun ja painat Enter-näppäintä.
Esimerkkinä poimitaan lähdetiedoista A2:B9:stä kohteet, joiden määrä on vähintään 30 (>=30), ja järjestetään tulokset nousevaan järjestykseen.
Tätä varten asetamme ensin ehdon esimerkiksi soluun E2, kuten alla olevassa kuvassa näkyy. Ja sitten rakennamme Excelin SORT-kaavan näin:
=SORT(FILTER(A2:B9, B2:B9>=E2), 2)
Lukuun ottamatta array FILTER-funktion tuottama, määrittelemme vain tiedoston sort_index Kaksi muuta argumenttia jätetään pois, koska oletusarvot toimivat juuri niin kuin tarvitsemme (lajittelu nousevaan suuntaan riveittäin).
Hae N suurinta tai pienintä arvoa ja lajittele tulokset.
Kun analysoidaan valtavia tietomassoja, on usein tarpeen poimia tietty määrä huippuarvoja. Ehkä ei vain poimia, vaan myös järjestää ne haluttuun järjestykseen. Ja mieluiten valita, mitkä sarakkeet sisällytetään tuloksiin. Kuulostaa hankalalta? Ei uusien dynaamisten array-funktioiden avulla!
Tässä on yleinen kaava:
INDEX(SORT(...), SEQUENCE( n ), { column1_to_return , column2_to_return , ...})Missä n on niiden arvojen numero, jotka haluat palauttaa.
Oletetaan, että alla olevasta tietokokonaisuudesta halutaan saada top 3 -lista, joka perustuu sarakkeen C numeroihin.
Lajittele ensin joukko A2:C13 3. sarakkeen mukaan alenevassa järjestyksessä:
SORT(A2:C13, 3, -1)
Ja sen jälkeen aseta edellä oleva kaava ensimmäiseen ( array ) argumentilla INDEX-funktiota, jotta joukko lajitellaan suurimmasta pienimpään.
Toisen ( row_num ) argumentti, joka ilmoittaa, kuinka monta riviä palautetaan, luo tarvittavat peräkkäiset numerot SEQUENCE-funktion avulla. Koska tarvitsemme kolme ylimmäistä arvoa, käytämme SEQUENCE(3) -funktiota, mikä on sama kuin antaisit pystysuoran array-vakiovakion {1;2;3} suoraan kaavassa.
Kolmannen ( col_num ) -argumentti, joka määrittelee, kuinka monta saraketta palautetaan, anna sarakkeiden numerot vaakasuoran sarakevakion muodossa. Haluamme palauttaa sarakkeet B ja C, joten käytämme saraketta {2,3}.
Lopulta saadaan seuraava kaava:
=INDEX(SORT(A2:C13, 3, -1), SEQUENCE(3), {2,3})
Ja se tuottaa juuri niitä tuloksia, joita haluamme:
Palaa takaisin 3 pohja arvot, lajittele alkuperäiset tiedot pienimmästä suurimpaan. Tätä varten vaihda muuttujaa sort_order argumentti -1:stä 1:een:
=INDEX(SORT(A2:C13, 3, 1), SEQUENCE(3), {2,3})
Palauta lajiteltu arvo tietyssä asennossa
Jos tarkastellaan asiaa toisesta näkökulmasta, entä jos haluat palauttaa vain tietyn lajitteluaseman? Sanotaan, että vain 1., 2. tai 3. tietue lajitellusta luettelosta? Jos haluat tehdä sen, käytä yksinkertaistettua versiota edellä käsitellystä INDEX SORT -kaavasta:
INDEX(SORT(....), n , { column1_to_return , column2_to_return , ...})Missä n on kiinnostava sijainti.
Jos haluat esimerkiksi saada tietyn sijainnin ylhäältä (eli alenevasti lajitelluista tiedoista), käytä tätä kaavaa:
=INDEX(SORT(A2:C13, 3, -1), F1, {2,3})
Jos haluat saada tietyn sijainnin alhaalta (eli nousevaan järjestykseen lajitelluista tiedoista), käytä tätä:
=INDEX(SORT(A2:C13, 3, 1), I1, {2,3})
Jossa A2:C13 on lähdetiedot, F1 on sijainti ylhäältä, I1 on sijainti alhaalta ja {2,3} ovat palautettavat sarakkeet.
Käytä Excel-taulukkoa saadaksesi lajittelumassan laajentumaan automaattisesti
Kuten jo tiedät, lajiteltu joukko päivittyy automaattisesti, kun teet muutoksia alkuperäisiin tietoihin. Tämä on kaikkien dynaamisten joukkofunktioiden, myös SORTin, vakiokäyttäytyminen. Kun kuitenkin lisäät uusia merkintöjä viitattavan joukon ulkopuolelle, niitä ei oteta automaattisesti mukaan kaavaan. Jos haluat, että kaava reagoi tällaisiin muutoksiin, muunna lähdealue täysin-toiminnallinen Excel-taulukko ja käytä rakenteellisia viittauksia kaavassasi.
Jos haluat nähdä, miten se toimii käytännössä, katso seuraava esimerkki.
Oletetaan, että käytät alla olevaa Excelin SORT-kaavaa järjestämään arvot alueella A2:B8 aakkosjärjestykseen:
=SORT(A2:B8, 1, 1)
Syötät sitten uuden merkinnän riville 9... ja pettynyt huomaa, että juuri lisätty merkintä on jätetty ylivuotoalueen ulkopuolelle:
Muunna nyt lähdealue taulukoksi. Valitse tätä varten alue sarakkeiden otsikot (A1:B8) mukaan lukien ja paina Ctrl + T . Kun muodostat kaavaa, valitse lähdealue hiirellä, jolloin taulukon nimi lisätään kaavaan automaattisesti (tätä kutsutaan rakenteelliseksi viittaukseksi):
=SORT(Table1, 1, 1)
Kun kirjoitat uuden merkinnän aivan viimeisen rivin alapuolelle, taulukko laajenee automaattisesti, ja uudet tiedot sisällytetään Lajittelukaavan ylivuotoväliin:
Excel SORT -toiminto ei toimi
Jos SORT-kaavasi tuottaa virheen, se johtuu todennäköisesti seuraavista syistä.
#NAME-virhe: vanhempi Excel-versio
SORT on uusi toiminto, ja se toimii vain Excel 365:ssä ja Excel 2021:ssä. Vanhemmissa versioissa, joissa tätä toimintoa ei tueta, tulee #NAME? -virhe.
#SPILL-virhe: jokin estää vuodon alueen
Jos yksi tai useampi solu vuotoalueella ei ole täysin tyhjä tai yhdistetty, näyttöön tulee #SPILL! -virhe. Voit korjata sen poistamalla tukoksen. Lisätietoja on kohdassa Excel #SPILL! -virhe - mitä se tarkoittaa ja miten se korjataan.
#VALUE virhe: virheelliset argumentit
Aina kun törmäät #VALUE! -virheeseen, tarkista komentoehto sort_index ja sort_order argumentit. Sort_index ei saisi ylittää sarakkeiden lukumäärää on array ja sort_order pitäisi olla joko 1 (nouseva) tai -1 (laskeva).
#REF-virhe: lähdekirjan työkirja on suljettu.
Koska dynaamiset taulukot tukevat vain rajoitetusti työkirjojen välisiä viittauksia, SORT-toiminto edellyttää, että molemmat tiedostot ovat auki. Jos lähdetyökirja on suljettu, kaava antaa #REF! -virheen. Korjaa se avaamalla viitattu tiedosto.
Näin lajittelet tietoja Excelissä kaavan avulla. Kiitän sinua lukemisesta ja toivottavasti tapaamme blogissamme ensi viikolla!
Käytännön työkirja ladattavissa
Lajittelu Excelissä kaavojen avulla (.xlsx-tiedosto)