Sisukord
Täna vaatleme lähemalt uue dünaamilise massiivi SORTBY funktsiooni süntaksit ja tüüpilisi kasutusviise. Saate teada, kuidas Excelis valemi abil kohandatud sorteerida, sorteerida loendit juhuslikult, järjestada lahtreid teksti pikkuse järgi ja palju muud.
Microsoft Excel pakub mitmeid viise, kuidas sorteerida tekstiandmeid tähestikuliselt, kuupäevi kronoloogiliselt ja numbreid väikseimast suurimani või suurimast madalaimani. Samuti on võimalik sorteerida oma kohandatud nimekirjade järgi. Lisaks tavapärasele sorteerimisfunktsioonile pakub Excel 365 täiesti uut võimalust andmete sorteerimiseks valemite abil - väga mugav ja uskumatult lihtne kasutada!
Exceli SORTBY funktsioon
Exceli funktsioon SORTBY on mõeldud ühe vahemiku või massiivi sorteerimiseks teise vahemiku või massiivi väärtuste alusel. Sorteerimine võib toimuda ühe või mitme veeru järgi.
SORTBY on üks kuuest uuest dünaamilise massiivi funktsioonist, mis on saadaval Excelis Microsoft 365 ja Excel 2021. Selle tulemuseks on dünaamiline massiivi, mis laieneb naaberruutudesse ja uuendatakse automaatselt, kui lähteandmed muutuvad.
Funktsioonil SORTBY on muutuv arv argumente - kaks esimest on kohustuslikud ja ülejäänud vabatahtlikud:
SORTBY(array, by_array1, [sort_order1], [by_array2, sort_order2],...).Array (nõutav) - sorteeritavate lahtrite või väärtuste massiivi vahemik.
By_array1 (nõutav) - vahemik või massiiv, mille järgi sorteerida.
Sort_order1 (valikuline) - sorteerimisjärjekord:
- 1 või jäetakse välja (vaikimisi) - kasvav
- -1 - kahanevas suunas
By_array2 / Sort_order2 , ... (valikuline) - täiendavad massiivi/järjestuse paarid, mida kasutada sorteerimisel.
Oluline märkus! Praegu on funktsioon SORTBY saadaval ainult Microsoft 365 tellimusprogrammiga ja Excel 2021. Excel 2019, Excel 2016 ja varasemates versioonides ei ole funktsioon SORTBY saadaval.
SORTBY funktsioon - 4 asja, mida meeles pidada
Selleks, et Exceli SORTBY-valem töötaks õigesti, on mõned olulised punktid, mida tuleb tähele panna:
- By_array argumendid peaksid olema kas ühe rea kõrgused või ühe veeru laiused.
- The massiivi ja kõik by_array argumendid peavad olema ühilduvate mõõtmetega. Näiteks kahe veeru järgi sorteerimisel, massiivi , by_array1 ja by_array2 peaks olema sama arv ridu; vastasel juhul tekib #VALUE viga.
- Kui SORTBY poolt tagastatav massiivi on lõpptulemus (väljund lahtrisse ja mitte teisele funktsioonile edastatud), loob Excel dünaamilise väljavooluala ja täidab selle tulemustega. Seega veenduge, et teil on piisavalt tühje lahtreid lahtri all ja/või paremal pool lahtrit, kuhu sisestate valemi, vastasel juhul saate #SPILL-viga.
- SORTBY valemite tulemused uuendatakse automaatselt alati, kui lähteandmed muutuvad. Kuid uued kirjed, mis on lisatud väljaspool valemis viidatud massiivi, ei kajastu tulemustes, kui te ei uuenda valemit massiivi viide. Selleks, et viidatud massiivi automaatselt laiendada, teisendage lähtevahemik Exceli tabeliks või looge dünaamiline nimega vahemik.
Põhiline SORTBY valem Excelis
Siin on tüüpiline stsenaarium SORTBY valemi kasutamisel Excelis:
Oletame, et teil on nimekiri projektidest, millel on Väärtus väljal. Te soovite sorteerida projektid nende väärtuse järgi eraldi lehel. Kuna teised kasutajad ei pea nägema numbreid, ei soovi te pigem lisada Väärtus veergu tulemustes.
Seda ülesannet saab hõlpsasti täita funktsiooniga SORTBY, mille jaoks annate järgmised argumendid:
- Array on A2:A10 - kuna te ei soovi, et Väärtus veergu tulemustes kuvada, jätate selle massiivist välja.
- By_array1 on B2:B10 - sorteerimine Väärtus .
- Sort_order1 on -1 - kahanevas järjestuses, st kõrgeimast madalaimani.
Kui panna argumendid kokku, saame järgmise valemi:
=SORTBY(A2:B10, B2:B10, -1)
Lihtsuse huvides kasutame valemit samal lehel - sisestame selle lahtrisse D2 ja vajutame Enter-klahvi. Tulemused "valguvad" automaatselt nii paljudesse lahtritesse kui vaja (meie puhul D2:D10). Kuid tehniliselt on valem ainult esimeses lahtris ja selle kustutamine lahtrist D2 kustutab kõik tulemused.
Kui seda kasutatakse teisel lehel, võtab valem järgmine kuju:
=SORTBY(Sheet1!A2:A10, Sheet1!B2:B10, -1)
Kus Leht1 on tööleht, mis sisaldab algseid andmeid.
SORTBY funktsiooni kasutamine Excelis - valemi näited
Allpool leiate veel mõned näited SORTBY kasutamise kohta, mis loodetavasti osutuvad kasulikuks ja sisukaks.
Sorteerimine mitme veeru järgi
Eespool käsitletud põhivalem sorteerib andmeid ühe veeru järgi. Aga mis siis, kui on vaja lisada veel üks sorteerimistase?
Oletame, et meie näidistabelis on kaks välja, Staatus (veerg B) ja Väärtus (veerg C) , soovime kõigepealt sorteerida Staatus tähestikulises järjekorras ja seejärel Väärtus laskuv.
Et sorteerida kahe veeru järgi, lisame lihtsalt veel ühe paari by_array / sort_order argumendid:
- Array on A2:C10 - seekord tahame lisada kõik kolm veergu tulemustesse.
- By_array1 on B2:B10 - esimene, sorteeri järgi Staatus .
- Sort_order1 on 1 - sorteeri tähestikuliselt A-st Z-ni.
- By_array2 on C2:C10 - siis sorteerige vastavalt Väärtus .
- Sort_order2 on -1 - sorteeri suurimast väikseimani.
Tulemusena saame järgmise valemi:
=SORTBY(A2:B10, B2:B10, 1, C2:C10, -1)
Mis paigutab meie andmed ümber täpselt nii, nagu me seda käskisime:
Kohandatud sorteerimine Excelis valemiga
Andmete sorteerimiseks kohandatud järjekorras saate kasutada kas Exceli funktsiooni Custom Sort (Kohandatud sorteerimine) või koostada sel viisil valemi SORTBY MATCH:
SORTBY(array, MATCH( range_to_sort , custom_list , 0))Meie andmestikku lähemalt vaadates on tõenäoliselt mugavam sorteerida projekte nende staatuse järgi "loogiliselt", nt tähtsuse järgi, mitte tähestiku järgi.
Selleks loome kõigepealt kohandatud nimekirja soovitud sorteerimisjärjekorras ( Käimas , Lõpetatud , Ootel ) kirjutades iga väärtuse eraldi lahtrisse vahemikus E2:E4.
Ja siis, kasutades ülaltoodud üldist valemit, anname allikate vahemiku jaoks massiivi (A2:C10), (A2:C10), (A2:C10), (A2:C10). Staatus veerg range_to_sort (B2:B10) ja kohandatud nimekiri, mille me lõime jaoks custom_list (E2:E4).
=SORTBY(A2:C10, MATCH(B2:B10, E2:E4, 0))
Selle tulemusena on meil projektid sorteeritud nende staatuse järgi täpselt nii, nagu vaja:
Et sorteerida kohandatud loendi järgi vastupidises järjekorras, pange -1 väärtuseks sort_order1 argument:
=SORTBY(A2:C10, MATCH(B2:B10, E2:E4, 0), -1)
Ja teil on projektid vastupidises suunas sorteeritud:
Kas soovite täiendavalt sorteerida kirjeid iga staatuse piires? Pole probleemi. Lihtsalt lisage valemile veel üks sorteerimistase, näiteks järgmise järgi Väärtus (C2:C10) ja määrata soovitud sorteerimise järjekord, meie puhul kasvav:
=SORTBY(A2:C10, MATCH(B2:B10, E2:E5, 0), 1, C2:C10, 1)
SORTBY valemi suur eelis Exceli kohandatud sorteerimisfunktsiooni ees on see, et valem uuendatakse automaatselt alati, kui algandmed muutuvad, samas kui see funktsioon nõuab iga muudatuse korral puhastamist ja uuesti sorteerimist.
Kuidas see valem töötab:
Nagu juba mainitud, saab Exceli funktsioon SORTBY töödelda ainult selliseid "sort by" massiive, mille mõõtmed ühilduvad lähtemassiiviga. Kuna meie lähtemassiiv (C2:C10) sisaldab 9 rida ja kohandatud nimekiri (E2:E4) ainult 3 rida, ei saa me seda otse anda funktsioonile by_array Selle asemel kasutame funktsiooni MATCH, et luua 9-realine massiivi:
MATCH(B2:B10, E2:E5, 0)
Siinkohal kasutame me Staatus veeru (B2:B10) otsinguväärtustena ja meie kohandatud nimekirja (E2:E5) otsingumassiivina. Viimane argument on seatud 0-ks, et otsida täpseid vasteid. Tulemusena saame 9 numbrist koosneva massiivi, millest igaüks esindab antud suhtelist positsiooni. Staatus väärtus kohandatud nimekirjas:
{1;3;2;1;3;2;2;1;2}
See massiivi läheb otse by_array SORTBY funktsiooni argument ja sunnib seda paigutama andmed massiivi elementidele vastavasse järjekorda, st kõigepealt kirjed, mida esindavad 1-d, seejärel kirjed, mida esindavad 2-d jne.
Juhuslik sorteerimine Excelis valemiga
Varasemates Exceli versioonides saate teha juhusliku sorteerimise funktsiooni RAND abil, nagu on selgitatud selles õpetuses: Kuidas sorteerida nimekirja juhuslikult Excelis.
Uues Excelis saate kasutada võimsamat funktsiooni RANDARRAY koos funktsiooniga SORTBY:
SORTBY( massiivi , RANDARRAY(ROWS( massiivi )))Kus massiivi on lähteandmed, mida soovite segada.
See üldine valem töötab nii ühest veerust koosneva loendi kui ka mitme veeruga vahemiku puhul.
Näiteks loendi juhuslikuks sorteerimiseks A2:A10, kasutage seda valemit:
=SORTBY(A2:A10, RANDARRAY(ROWS(A2:A10)))
Et segada andmeid A2:C10-s, hoides read koos, kasuta seda:
=SORTBY(A2:C10, RANDARRAY(ROWS(A2:C10)))
Kuidas see valem töötab:
Funktsioon RANDARRAY toodab sorteerimiseks kasutatava juhuslike numbrite massiivi, mille annate üle funktsioonis by_array SORTBY argumendiga. Et määrata, kui palju juhuslikke numbreid genereerida, loendate ridade arvu lähtepiirkonnas, kasutades funktsiooni ROWS, ja "söödate" selle arvu funktsioonile read argument RANDARRAY. See on kõik!
Märkus. Nagu oma eelkäija, on ka RANDARRAY lenduv funktsioon ja see genereerib iga kord, kui tööleht ümber arvutatakse, uue juhuslike numbrite massiivi. Selle tulemusena teie andmed muutuvad iga muudatuse korral lehel. Automaatse muutmise vältimiseks saate kasutada funktsiooni Paste Special > Väärtused funktsioon, et asendada valemid nende väärtustega.
Sortida lahtrid stringi pikkuse järgi
Lahtrite sorteerimiseks neis sisalduvate tekstisõnade pikkuse järgi kasutage funktsiooni LEN, et lugeda igas lahtris olevate tähemärkide arvu ja sisestage arvutatud pikkused funktsioonile by_array SORTBY argument. sort_order argumendiks võib määrata kas 1 või -1, sõltuvalt eelistatud sorteerimisjärjekorrast.
Sorteerida tekstistringi järgi väikseimast suurimani:
SORTBY(array, LEN(array), 1)Sorteerida tekstirida suurimast väikseimani:
SORTBY(array, LEN(array), -1)Ja siin on valem, mis demonstreerib seda lähenemist reaalsete andmete põhjal:
=SORTBY(A2:A7, LEN(A2:A7), 1)
Kus A2:A7 on algsed lahtrid, mida soovite sorteerida teksti pikkuse järgi kasvavas järjekorras:
SORTBY vs. SORT
Exceli uute dünaamiliste massiivi funktsioonide rühmas on kaks sorteerimiseks mõeldud funktsiooni. Järgnevalt loetleme kõige olulisemad erinevused ja sarnasused ning selle, millal kummalgi neist on kõige parem kasutada.
- Erinevalt funktsioonist SORT ei nõua SORTBY, et massiivi "sort by" oleks osa lähtemassiivist, samuti ei pea see sisalduma tulemustes. Seega, kui teie ülesanne on sorteerida vahemikku teise sõltumatu massiivi või kohandatud loendi alusel, on SORTBY õige funktsioon. Kui soovite sorteerida vahemikku selle enda väärtuste alusel, siis on SORT sobivam.
- Mõlemad funktsioonid toetavad mitmetasandilist sorteerimist ja mõlemaid saab ühendada teiste dünaamiliste massiivi ja tavapäraste funktsioonidega.
- Mõlemad funktsioonid on saadaval ainult Excel 365 ja Excel 2021 kasutajatele.
Exceli SORTBY funktsioon ei tööta
Kui teie SORTBY-valem annab vea, on selle põhjuseks tõenäoliselt üks järgmistest põhjustest.
Vale by_array argumendid
The by_array argumendid peavad olema ühe rea või ühe veeru suurused ja sobima suurusega massiivi Näiteks kui massiivi on 10 rida, by_array peaks sisaldama ka 10 rida. Vastasel juhul tekib #VALUE! viga.
Vale sort_order argumendid
The sort_order argumendid võivad olla ainult 1 (kasvav) või -1 (kahanev). Kui mingit väärtust ei ole määratud, on SORTBY vaikimisi kasvav järjekord. Kui on määratud mõni muu väärtus, tagastatakse #VALUE! viga.
Tulemuste jaoks ei ole piisavalt ruumi
Nagu iga teine dünaamiline massiivi funktsioon, valab SORTBY tulemused automaatselt muudetava suurusega ja uuendatavasse vahemikku. Kui kõigi väärtuste kuvamiseks ei ole piisavalt tühje lahtreid, antakse veateade #SPILL!.
Lähte töövihik on suletud
Kui SORTBY-valem viitab teisele Exceli failile, peavad mõlemad töövihikud olema avatud. Kui lähtetöövihik on suletud, tekib #REF! viga.
Teie Exceli versioon ei toeta dünaamilisi massiive
Kui funktsiooni SORT kasutatakse Exceli dünaamikaeelses versioonis, annab funktsioon SORT tagasi #NAME? vea.
See on, kuidas kasutada SORTBY funktsiooni Excelis, et teha kohandatud sorteerimist ja muid asju. Ma tänan teid lugemise eest ja loodan, et näeme teid järgmisel nädalal meie blogis!
Praktiline töövihik allalaadimiseks
Exceli SORTBY valemid (.xlsx fail)