Cuprins
Veți învăța o formulă pentru a sorta în ordine alfabetică în Excel, pentru a aranja numerele în ordine crescătoare sau descrescătoare, pentru a sorta după mai multe coloane și multe altele.
Funcția de sortare există de mult timp. Dar odată cu introducerea tablourilor dinamice în Excel 365, a apărut o modalitate uimitor de simplă de sortare cu ajutorul formulelor. Frumusețea acestei metode este că rezultatele se actualizează automat atunci când datele sursă se modifică.
Funcția Excel SORT
Funcția SORT din Excel ordonează conținutul unei matrice sau al unui interval pe coloane sau rânduri, în ordine crescătoare sau descrescătoare.
SORT aparține grupului de funcții de matrice dinamică. Rezultatul este o matrice dinamică care se revarsă automat în celulele vecine pe verticală sau pe orizontală, în funcție de forma matricei sursă.
Sintaxa funcției SORT este următoarea:
SORT(array, [sort_index], [sort_order], [by_col])Unde:
Array (obligatoriu) - este o matrice de valori sau un interval de celule de sortat. Acestea pot fi orice valori, inclusiv text, numere, date, ore etc.
Sort_index (opțional) - un număr întreg care indică după ce coloană sau rând se face sortarea. Dacă se omite, se utilizează indicele implicit 1.
Sortare_ordine (opțional) - definește ordinea de sortare:
- 1 sau omis (implicit) - ordine crescătoare, adică de la cel mai mic la cel mai mare
- -1 - ordine descrescătoare, adică de la cel mai mare la cel mai mic
By_col (opțional) - o valoare logică care indică direcția de sortare:
- FALSE sau omis (implicit) - sortează după rând. Veți utiliza această opțiune de cele mai multe ori.
- TRUE - sortare după coloană. Utilizați această opțiune dacă datele dvs. sunt organizate orizontal în coloane, ca în acest exemplu.
Funcția Excel SORT - sfaturi și note
SORT este o nouă funcție de matrice dinamică și, ca atare, are câteva particularități pe care trebuie să le cunoașteți:
- În prezent, funcția SORT este disponibilă numai în Microsoft 365 și Excel 2021. Excel 2019, Excel 2016 nu acceptă formule de matrice dinamice, astfel încât funcția SORT nu este disponibilă în aceste versiuni.
- Dacă matricea returnată de o formulă SORT este rezultatul final (adică nu este transmisă unei alte funcții), Excel creează în mod dinamic un interval de dimensiuni corespunzătoare și îl populează cu valorile sortate. Așadar, asigurați-vă că aveți întotdeauna suficiente celule goale în jos sau/și în dreapta celulei în care introduceți formula, altfel apare o eroare #SPILL.
- Rezultatele se actualizează în mod dinamic pe măsură ce datele sursă se modifică. Cu toate acestea, sistemul array furnizată formulei nu se extinde în mod automat pentru a include noile intrări adăugate în afara formulei de referință. array Pentru a include astfel de elemente, trebuie fie să actualizați array în formula dvs. sau convertiți intervalul sursă într-un tabel, așa cum se arată în acest exemplu, sau creați un interval dinamic numit.
Formula de bază Excel SORT de bază
Acest exemplu prezintă o formulă de bază pentru sortarea datelor în Excel în ordine crescătoare și descrescătoare.
Să presupunem că datele dvs. sunt aranjate în ordine alfabetică, așa cum se arată în captura de ecran de mai jos. Dvs. doriți să sortați numerele din coloana B fără a întrerupe sau amesteca datele.
Formula de sortare în ordine crescătoare
Pentru a sorta valorile din coloana B de la cel mai mic la cel mai mare, iată formula care trebuie utilizată:
=SORT(A2:B8, 2, 1)
Unde:
- A2:B8 este matricea sursă
- 2 este numărul coloanei după care se sortează
- 1 este ordinea de sortare ascendentă
Deoarece datele noastre sunt organizate în rânduri, ultimul argument poate fi omis pentru a se seta FALSE - sortare după rânduri.
Trebuie doar să introduceți formula în orice celulă goală (D2 în cazul nostru), să apăsați Enter , iar rezultatele se vor revărsa automat în D2:E8.
Formula de sortare în ordine descrescătoare
Pentru a sorta datele în ordine descrescătoare, adică de la cel mai mare la cel mai mic, setați valoarea sort_order la -1, astfel:
=SORT(A2:B8, 2, -1)
Introduceți formula în celula din stânga sus a intervalului de destinație și veți obține acest rezultat:
În mod similar, puteți sorta valorile textului în ordine alfabetică de la A la Z sau de la Z la A.
Cum să sortați datele în Excel folosind formula
Exemplele de mai jos prezintă câteva utilizări tipice ale funcției SORT în Excel și câteva utilizări ne banale.
Excel SORT pe coloană
Atunci când sortați date în Excel, în cea mai mare parte schimbați ordinea rândurilor. Dar când datele sunt organizate pe orizontală, cu rânduri care conțin etichete și coloane care conțin înregistrări, este posibil să aveți nevoie să sortați de la stânga la dreapta, mai degrabă decât de sus în jos.
Pentru a sorta după coloană în Excel, setați by_col la TRUE. În acest caz, sort_index va reprezenta un rând, nu o coloană.
De exemplu, pentru a sorta datele de mai jos în funcție de cantitate, de la cel mai mare la cel mai mic, utilizați această formulă:
=SORT(B1:H2, 2, 1, TRUE)
Unde:
- B1:H2 sunt datele sursă de sortat
- 2 este indicele de sortare, deoarece sortăm numerele din al doilea rând.
- -1 indică ordinea descrescătoare de sortare
- TRUE înseamnă că se sortează coloanele, nu rândurile
Sortare după mai multe coloane în ordine diferită (sortare pe mai multe niveluri)
Atunci când lucrați cu modele de date complexe, este posibil să aveți nevoie adesea de o sortare pe mai multe niveluri. Se poate face acest lucru cu o formulă? Da, foarte ușor! Ceea ce trebuie să faceți este să furnizați constante de matrice pentru sort_index și sort_order argumente.
De exemplu, pentru a sorta datele de mai jos mai întâi după Regiune (coloana A) de la A până la Z, apoi prin Cantitate . (coloana C) de la cel mai mic la cel mai mare, se stabilesc următoarele argumente:
- Array reprezintă datele din A2:C13.
- Sort_index este constanta de matrice {1,3}, deoarece mai întâi sortăm după Regiune (prima coloană), apoi cu Cantitate . (coloana a 3-a).
- Sortare_ordine este constanta de matrice {1,-1}, deoarece prima coloană trebuie sortată în ordine crescătoare, iar cea de-a treia coloană în ordine descrescătoare.
- By_col este omis deoarece sortăm rândurile, ceea ce este implicit.
Punând cap la cap argumentele, obținem următoarea formulă:
=SORT(A2:C13, {1,3}, {1,-1})
Valorile textului din prima coloană sunt sortate în ordine alfabetică, iar numerele din a treia coloană, de la cel mai mare la cel mai mic:
Sortare și filtrare în Excel
În cazul în care doriți să filtrați datele în funcție de anumite criterii și să puneți în ordine rezultatele, utilizați funcțiile SORT și FILTER împreună:
SORT(FILTER(array, interval_criteriu = criterii ), [sort_index], [sort_order], [by_col])Funcția FILTER obține o matrice de valori pe baza criteriilor pe care le definiți și transmite această matrice primului argument al funcției SORT.
Cel mai bun lucru la această formulă este că, de asemenea, emite rezultatele ca un interval de vărsare dinamic, fără a fi nevoie să apăsați Ctrl + Shift + Enter sau să ghiciți în câte celule să o copiați. Ca de obicei, introduceți o formulă în celula cea mai de sus și apăsați tasta Enter.
Ca exemplu, vom extrage articolele cu o cantitate egală sau mai mare de 30 (>=30) din datele sursă din A2:B9 și vom aranja rezultatele în ordine crescătoare.
Pentru aceasta, mai întâi stabilim condiția, să zicem, în celula E2, așa cum se arată în imaginea de mai jos. Și apoi, construim formula noastră Excel SORT în acest fel:
=SORT(FILTER(A2:B9, B2:B9>=E2), 2)
În afară de array generat de funcția FILTER, vom specifica doar sort_index (coloana 2). Celelalte două argumente sunt omise deoarece valorile implicite funcționează exact așa cum avem nevoie (sortare crescătoare, pe rând).
Obțineți N cele mai mari sau cele mai mici valori și sortați rezultatele
Atunci când se analizează volume uriașe de informații, este adesea nevoie să extrageți un anumit număr de valori de top. Poate nu doar să le extrageți, ci și să le aranjați în ordinea dorită. Și, în mod ideal, să alegeți ce coloane să includeți în rezultate. Sună complicat? Nu și cu noile funcții de matrice dinamică!
Iată o formulă generică:
INDEX(SORT(...), SEQUENCE( n ), { column1_to_return , column2_to_return , ...})Unde n este numărul valorilor pe care doriți să le returnați.
Din setul de date de mai jos, să presupunem că doriți să obțineți o listă a primelor 3 persoane pe baza numerelor din coloana C.
Pentru a face acest lucru, mai întâi sortați matricea A2:C13 după a treia coloană în ordine descrescătoare:
SORT(A2:C13, 3, -1)
Și apoi, se anină formula de mai sus în prima ( array ) al funcției INDEX pentru a sorta array-ul de la cel mai mare la cel mai mic.
Pentru al doilea ( număr_ rând ), care indică numărul de rânduri care trebuie returnate, generează numerele secvențiale necesare utilizând funcția SEQUENCE. Deoarece avem nevoie de 3 valori de top, folosim SEQUENCE(3), care este același lucru cu furnizarea unei constante de matrice verticală {1;2;3} direct în formulă.
Pentru cel de-al treilea ( col_num ), care definește câte coloane trebuie returnate, furnizează numerele coloanelor sub forma unei constante de matrice orizontală. Dorim să returnăm coloanele B și C, așa că folosim matricea {2,3}.
În cele din urmă, obținem următoarea formulă:
=INDEX(SORT(A2:C13, 3, -1), SEQUENCE(3), {2,3})
Și produce exact rezultatele pe care le dorim:
Pentru a reveni 3 fund pur și simplu sortați datele originale de la cea mai mică la cea mai mare. Pentru aceasta, modificați valorile sort_order de la -1 la 1:
=INDEX(SORT(A2:C13, 3, 1), SEQUENCE(3), {2,3})
Returnează o valoare sortată într-o anumită poziție
Privind dintr-un alt unghi, ce se întâmplă dacă doriți să returnați doar o anumită poziție de sortare? Să zicem, doar prima, a doua sau a treia înregistrare din lista sortată? Pentru a face acest lucru, utilizați versiunea simplificată a formulei INDEX SORT discutată mai sus:
INDEX(SORT(...), n , { column1_to_return , column2_to_return , ...})Unde n este poziția de interes.
De exemplu, pentru a obține o anumită poziție din partea de sus (adică din datele ordonate descrescător), utilizați această formulă:
=INDEX(SORT(A2:C13, 3, -1), F1, {2,3})
Pentru a obține o anumită poziție de jos în sus (adică din datele ordonate crescător), folosiți acest lucru:
=INDEX(SORT(A2:C13, 3, 1), I1, {2,3})
Unde A2:C13 sunt datele sursă, F1 este poziția de sus, I1 este poziția de jos, iar {2,3} sunt coloanele care trebuie returnate.
Utilizați tabelul Excel pentru a obține o matrice de sortare care să se extindă automat
După cum știți deja, array-ul sortat se actualizează automat atunci când faceți orice modificare a datelor originale. Acesta este comportamentul standard al tuturor funcțiilor de array dinamic, inclusiv SORT. Cu toate acestea, atunci când adăugați noi intrări în afara array-ului de referință, acestea nu sunt incluse automat într-o formulă. Dacă doriți ca formula dvs. să reacționeze la astfel de modificări, convertiți intervalul sursă într-un interval complet-tabel Excel funcțional și utilizați referințe structurate în formula dumneavoastră.
Pentru a vedea cum funcționează în practică, vă rugăm să luați în considerare următorul exemplu.
Să presupunem că utilizați formula Excel SORT de mai jos pentru a aranja valorile din intervalul A2:B8 în ordine alfabetică:
=SORT(A2:B8, 1, 1)
Apoi, introduceți o nouă intrare în rândul 9... și sunteți dezamăgit să vedeți că noua intrare adăugată nu este inclusă în intervalul de vărsare:
Acum, convertiți intervalul sursă într-un tabel. Pentru aceasta, selectați pur și simplu intervalul, inclusiv anteturile de coloană (A1:B8) și apăsați Ctrl + T . Atunci când construiți formula, selectați intervalul sursă cu ajutorul mouse-ului, iar numele tabelului va fi inserat automat în formulă (aceasta se numește referință structurată):
=SORT(Tabelul1, 1, 1, 1)
Atunci când introduceți o nouă intrare chiar sub ultimul rând, tabelul se va extinde automat, iar noile date vor fi incluse în intervalul de vărsare al formulei SORT:
Funcția Excel SORT nu funcționează
Dacă formula SORT dă o eroare, cel mai probabil se datorează următoarelor motive.
#NAME error: versiune mai veche a Excel
SORT este o funcție nouă și funcționează numai în Excel 365 și Excel 2021. În versiunile mai vechi în care această funcție nu este suportată, apare o eroare #NAME?
Eroare #SPILL: ceva blochează intervalul de deversare
Dacă una sau mai multe celule din intervalul de vărsare nu sunt complet goale sau unite, se afișează o eroare #SPILL! Pentru a o remedia, trebuie doar să eliminați blocajul. Pentru mai multe informații, consultați Excel #SPILL! error - ce înseamnă și cum se remediază.
Eroare #VALUE: argumente invalide
Ori de câte ori întâmpinați o eroare #VALUE! sort_index și sort_order argumente. Sort_index nu trebuie să depășească numărul de coloane este array , și sort_order trebuie să fie 1 (ascendent) sau -1 (descendent).
Eroare #REF: registrul de lucru sursă este închis
Deoarece array-urile dinamice au un suport limitat pentru referințe între registrele de lucru, funcția SORT necesită ca ambele fișiere să fie deschise. Dacă registrul de lucru sursă este închis, o formulă va genera o eroare #REF! Pentru a remedia problema, deschideți doar fișierul la care se face referire.
Iată cum se sortează datele în Excel cu ajutorul formulei. Vă mulțumesc pentru lectură și sper să ne vedem pe blog săptămâna viitoare!
Caietul de practică pentru descărcare
Sortarea în Excel cu ajutorul formulelor (fișier .xlsx)