Ynhâldsopjefte
De tutorial lit sjen hoe't jo de SORT-funksje brûke kinne om gegevensarrays dynamysk te sortearjen. Jo sille in formule leare om alfabetysk te sortearjen yn Excel, nûmers te regeljen yn opkommende of ôfnimmende folchoarder, sortearje op meardere kolommen, en mear.
De Sort-funksjonaliteit bestiet al in lange tiid. Mar mei de yntroduksje fan dynamyske arrays yn Excel 365 ferskynde der in verbazingwekkend ienfâldige manier om te sortearjen mei formules. De skientme fan dizze metoade is dat de resultaten automatysk bywurkje as de boarnegegevens feroarje.
Excel SORT-funksje
De SORT-funksje yn Excel sortearret de ynhâld fan in array of berik troch kolommen of rigen, yn oprinnende of ôfnimmende folchoarder.
SORT heart ta de groep Dynamic arrayfunksjes. It resultaat is in dynamyske array dy't automatysk fertikaal of horizontaal nei oanbuorjende sellen spielt, ôfhinklik fan de foarm fan de boarne array.
De syntaksis fan de SORT-funksje is as folget:
SORT(array, [sort_index) ], [sort_order], [by_col])Wêr:
Array (ferplicht) - is in array fan wearden as in berik fan sellen om te sortearjen. Dit kinne alle wearden wêze, ynklusyf tekst, sifers, datums, tiden, ensfh.
Sort_index (opsjoneel) - in hiel getal dat oanjout op hokker kolom of rige op sortearje moat. As it weilitten wurdt, wurdt de standert yndeks 1 brûkt.
Sort_oarder (opsjoneel) - definiearret de sortearring:
- 1 of weilitten (standert) - oprinnende folchoarder , d.w.s. fanformules (.xlsx-bestân) lytste nei grutste
- -1 - ôfnimmende folchoarder, dus fan grutste nei lytste
By_col (opsjoneel) - in logyske wearde dy't de rjochting fan sortearring oanjout:
- FALSE of weilitten (standert) - sortearje op rige. Jo sille dizze opsje meastentiids brûke.
- TRUE - sortearje op kolom. Brûk dizze opsje as jo gegevens horizontaal binne organisearre yn kolommen lykas yn dit foarbyld.
Excel SORT-funksje - tips en notysjes
SORT is in nije dynamyske arrayfunksje en hat as sadanich in pear spesifisiteiten wêrfan jo bewust wêze moatte:
- Op it stuit is de SORT-funksje allinich beskikber yn Microsoft 365 en Excel 2021. Excel 2019, Excel 2016 stypje gjin dynamyske array-formules, dus de SORT-funksje is net beskikber yn dizze ferzjes.
- As de array weromjûn troch in SORT-formule it einresultaat is (dus net trochjûn oan in oare funksje), makket Excel dynamysk in berik fan passend grutte en populearret it mei de sortearre wearden. Soargje der dus foar dat jo altyd genôch lege sellen hawwe omleech of/en rjochts fan 'e sel wêr't jo de formule ynfiere, oars bart der in #SPILL-flater.
- De resultaten wurde dynamysk bywurke as de boarnegegevens feroarje. De array dy't oan de formule wurdt levere, wreidet lykwols net automatysk út om nije yngongen op te nimmen dy't bûten de ferwiisde array wurde tafoege. Om sokke items op te nimmen, moatte jo de array -referinsje yn jo formule bywurkje, ofkonvertearje it boarneberik nei in tabel lykas werjûn yn dit foarbyld, of meitsje in dynamysk neamd berik.
Basic Excel SORT-formule
Dit foarbyld lit in basisformule sjen foar it sortearjen fan gegevens yn Excel yn oprinnende en delgeande folchoarder.
Stel dat jo gegevens alfabetysk binne rangearre lykas werjûn yn de skermprint hjirûnder. Jo sykje nûmers yn kolom B te sortearjen sûnder gegevens te brekken of te mingjen.
Formule om te sortearjen yn oprinnende folchoarder
Om wearden yn kolom B fan lyts nei grutste te sortearjen, is hjir de formule te brûken:
=SORT(A2:B8, 2, 1)
Wêr:
- A2:B8 is de boarne array
- 2 is it kolomnûmer om op te sortearjen
- 1 is de oprinnende sortearfolchoarder
Om't ús gegevens yn rigen organisearre binne, kin it lêste argumint weilitten wurde as standert op FALSE - sortearje op rigen.
Fier gewoan de formule yn yn elke lege sel (D2 yn ús gefal), druk op Enter , en de resultaten sille automatysk spielje nei D2:E8.
Formule om yn ôfnimmende folchoarder te sortearjen
Om gegevens ôfnimmend te sortearjen, dus fan grutste nei lytste, set it sort_order argumint op -1 sa yn:
=SORT(A2:B8, 2, -1)
Fier de formule yn yn 'e sel linksboppe fan it bestimmingsberik en jo krije dit resultaat:
Op in fergelykbere manier kinne jo tekstwearden sortearje yn alfabetyske folchoarder fan A oant Z of fan Z oant A.
Hoe kinne jo gegevens sortearje yn Excel mei f ormula
De ûndersteande foarbylden litte in pear typyske gebrûk sjen fan de SORT-funksje yn Excelen in pear net-triviale.
Excel SORTEREN op kolom
As jo gegevens sortearje yn Excel, feroarje jo foar it grutste part de folchoarder fan de rigen. Mar as jo gegevens horizontaal binne organisearre mei rigen mei labels en kolommen dy't records befetsje, moatte jo miskien fan links nei rjochts sortearje, ynstee fan fan boppe nei ûnderen.
Om te sortearjen op kolom yn Excel, set de by_col argumint nei TRUE. Yn dit gefal sil sort_index in rige fertsjintwurdigje, net in kolom.
Bygelyks om de ûndersteande gegevens te sortearjen op Aantal. fan heech nei leech, brûk dizze formule:
=SORT(B1:H2, 2, 1, TRUE)
Wêr:
- B1:H2 is de boarnegegevens om te sortearjen
- 2 is de sorte-yndeks, om't wy nûmers yn 'e twadde rige sortearje
- -1 jout de ôfnimmende sortearfolchoarder oan
- TRUE betsjut om kolommen te sortearjen, net rigen
Sortearje op meardere kolommen yn ferskillende folchoarder (soarte op meardere nivo's)
As jo wurkje mei komplekse gegevensmodellen, kinne jo faaks in sortearring op meardere nivo's nedich wêze. Kin dat mei in formule? Ja, maklik! Wat jo dogge is arraykonstanten oan te jaan foar de sort_index en sort_order arguminten.
Bygelyks, om de ûndersteande gegevens earst te sortearjen op Regio (kolom A) fan A oant Z, en dan troch Aantal . (kolom C) fan lytste nei grutste, set de folgjende arguminten yn:
- Array is de gegevens yn A2:C13.
- Sort_index is de arraykonstante {1,3}, om't wy earst sortearje op Regio (1ekolom), en dan troch Aantal . (3e kolom).
- Sort_order is de arraykonstante {1,-1}, om't de 1e kolom yn oprinnende folchoarder sortearre wurde moat en de 3e kolom yn ôfnimmende folchoarder.
- By_col wurdt weilitten om't wy rigen sortearje, wat standert is.
As wy de arguminten byinoar sette, krije wy dizze formule:
=SORT(A2:C13, {1,3}, {1,-1})
En it wurket perfekt! De tekstwearden yn de earste kolom binne alfabetysk sortearre en de nûmers yn de tredde kolom fan grut nei lyts:
Sortearje en filterje yn Excel
In gefal as jo sykje om gegevens te filterjen mei guon kritearia en de útfier yn oarder sette, brûk dan de SORT- en FILTER-funksjes tegearre:
SORT(FILTER(array, criteria_range= kriteria) , [sort_index], [sort_order], [by_col])De FILTER-funksje krijt in array fan wearden basearre op de kritearia dy't jo definiearje en jout dy array troch nei it earste argumint fan SORT.
It bêste ding oer dizze formule is dat it ek útfiert de resultaten as in dynamysk spillomradet, sûnder jo moatte drukke op Ctrl + Shift + Enter of riede op hoefolle sellen te kopiearjen it nei. Lykas gewoanlik, typ jo in formule yn 'e boppeste sel en druk op de Enter-kaai.
As foarbyld sille wy items mei in kwantiteit lyk oan of grutter as 30 (>=30) út de boarne gegevens yn A2:B9 en regelje de resultaten yn oprinnende folchoarder.
Dêrfoar sette wy earst de betingst yn, bygelyks ynsel E2 lykas werjûn yn de ôfbylding hjirûnder. En dan, bouwe ús Excel SORT-formule op dizze manier:
=SORT(FILTER(A2:B9, B2:B9>=E2), 2)
Utsein array oanmakke troch de FILTER-funksje, spesifisearje wy allinich de sort_index argumint (kolom 2). De oerbleaune twa arguminten wurde weilitten, om't de standertynstellingen krekt wurkje sa't wy nedich binne (sortearje oprinnend, op rige).
Krij N grutste of lytste wearden en sortearje de resultaten
By it analysearjen fan grutte bulks as ynformaasje, is d'r faaks in need nedich om in bepaald oantal topwearden te ekstrahearjen. Miskien net allinich ekstrahearje, mar ek regelje se yn 'e winske folchoarder. En ideaal kieze hokker kolommen jo wolle opnimme yn 'e resultaten. Klinkt lestich? Net mei de nije dynamyske arrayfunksjes!
Hjir is in generike formule:
INDEX(SORT(…), SEQUENCE( n), { column1_to_return, column2_to_return, …})Wêr't n it nûmer is fan de wearden dy't jo werom wolle.
Fan de ûndersteande gegevensset, nim dan oan dat jo wolle krije in top 3 list basearre op de nûmers yn kolom C.
Om it dien te hawwen, sortearje jo earst de array A2:C13 troch de 3e kolom yn ôfnimmende folchoarder:
SORT(A2:C13, 3, -1)
En dan, nêst de boppesteande formule yn it earste ( array ) argumint fan de INDEX-funksje om de array te sortearjen fan heechste nei lytste.
Foar de twadde ( row_num ) argumint, dat oanjout hoefolle rigen moatte weromkomme, generearje de fereaske opfolgjende nûmers troch de funksje SEQUENCE te brûken. Aswy hawwe 3 topwearden nedich, wy brûke SEQUENCE(3), dat is itselde as it leverjen fan in fertikale arraykonstante {1;2;3} direkt yn 'e formule.
Foar de tredde ( col_num ) argumint, dat definiearret hoefolle kolommen weromkomme, leverje de kolomnûmers yn 'e foarm fan in horizontale arraykonstante. Wy wolle de kolommen B en C weromjaan, dus brûke wy de array {2,3}.
Uteinlik krije wy de folgjende formule:
=INDEX(SORT(A2:C13, 3, -1), SEQUENCE(3), {2,3})
En it produsearret krekt de resultaten dy't wy wolle:
Om 3 ûnderste wearden werom te jaan, sortearje de oarspronklike gegevens gewoan fan lyts nei grutste. Feroarje hjirfoar it sort_order argumint fan -1 nei 1:
=INDEX(SORT(A2:C13, 3, 1), SEQUENCE(3), {2,3})
Jou in sortearre wearde werom yn in spesifike posysje
Sjoch út in oare hoeke, wat as jo allinich in spesifike sortearringsposysje werom wolle? Sis, allinich de 1e, allinich de 2e, of allinich de 3e rekord fan 'e sorteare list? Om it dien te meitsjen, brûk de ferienfâldige ferzje fan 'e INDEX SORT-formule dy't hjirboppe besprutsen is:
INDEX(SORT(...), n, { column1_to_return, column2_to_return, …})Wêr't n de posysje fan belang is.
Bygelyks, om in bepaalde posysje fan boppen te krijen (d.w.s. fan 'e gegevens sortearre ôfnimmend), brûk dizze formule :
=INDEX(SORT(A2:C13, 3, -1), F1, {2,3})
Om in spesifike posysje fan ûnderen te krijen (d.w.s. fan de gegevens sortearre oprinnend), brûk dizze:
=INDEX(SORT(A2:C13, 3, 1), I1, {2,3})
Wêr A2: C13 is boarne gegevens, F1 is de posysje fan boppen, I1 is de posysje fanboaiem, en {2,3} binne de kolommen dy't weromjûn wurde.
Brûk Excel-tabel om sortearray te krijen om automatysk út te wreidzjen
Sa't jo al witte , de sortearre array wurdt automatysk bywurke as jo wizigingen meitsje oan 'e orizjinele gegevens. Dit is it standertgedrach fan alle dynamyske arrayfunksjes, ynklusyf SORT. As jo lykwols nije yngongen tafoegje bûten de ferwiisde array, wurde se net automatysk opnommen yn in formule. As jo wolle dat jo formule reagearret op sokke feroaringen, konvertearje dan it boarneberik nei in folslein funksjonele Excel-tabel en brûk struktureare referinsjes yn jo formule.
Om te sjen hoe't it yn 'e praktyk wurket, beskôgje dan it folgjende foarbyld.
Stel dat jo de ûndersteande Excel SORT-formule brûke om wearden yn it berik A2:B8 yn alfabetyske folchoarder te regeljen:
=SORT(A2:B8, 1, 1)
Dan ynfiere jo in nije yngong yn rige 9 ... en binne teloarsteld om te sjen dat de nij tafoege yngong is oerbleaun út it spillbereik:
No, konvertearje it boarneberik nei in tabel. Selektearje hjirfoar gewoan jo berik ynklusyf de kolomkoppen (A1:B8) en druk op Ctrl + T . By it bouwen fan jo formule, selektearje it boarneberik mei de mûs, en de tabelnamme sil automatysk yn de formule ynfoege wurde (dit wurdt in strukturearre referinsje neamd):
=SORT(Table1, 1, 1)
As jo in typearje nije yngong rjochts ûnder de lêste rige, de tabel sil automatysk útwreidzje, en de nije gegevens wurde opnommen yn it spillomradefan de SORT-formule:
Excel SORT-funksje wurket net
As jo SORT-formule resulteart yn in flater, komt dat nei alle gedachten troch de folgjende redenen.
#NAME flater: âldere Excel ferzje
SORT is in nije funksje en wurket allinnich yn Excel 365 en Excel 2021. Yn âldere ferzjes dêr't dizze funksje net stipe wurdt, is in #NAME? flater optreedt.
#SPILL-flater: eat blokkearret spillbereik
As ien of mear sellen yn it spillbereik net folslein leech binne of gearfoege, dan is in #SPILL! flater wurdt werjûn. Om it te reparearjen, ferwiderje gewoan de blokkade. Sjoch foar mear ynformaasje Excel #SPILL! flater - wat it betsjut en hoe te reparearjen.
#VALUE flater: ûnjildige arguminten
As jo in #VALUE! flater, kontrolearje de sort_index en sort_order arguminten. Sort_index moat net mear wêze as it oantal kolommen is array , en sort_order moat of 1 (oprinnend) of -1 (ôfnimmend) wêze.
#REF flater: boarne wurkboek is sluten
Om't dynamyske arrays beheinde stipe hawwe foar referinsjes tusken wurkboeken, is de SORT-funksje fereasket dat beide bestannen iepen binne. As it boarne wurkboek is sletten, sil in formule in #REF! fersin. Om it te reparearjen, iepenje gewoan it ferwiisde bestân.
Sa sortearje jo gegevens yn Excel mei formule. Ik tankje jo foar it lêzen en hoopje jo nije wike op ús blog te sjen!
Oefeningswurkboek om te downloaden
Sortearje yn Excel mei