O formulă matrice este o formulă care poate efectua mai multe calcule pentru unul sau mai multe elemente dintr-o matrice. Gândiți-vă la o matrice ca la un rând sau o coloană de valori sau ca la o combinație de rânduri și coloane de valori. Formulele matrice pot returna rezultate multiple sau un singur rezultat.
Începând cu actualizarea din septembrie 2018 pentru Microsoft 365, orice formulă care poate returna mai multe rezultate le va vărsa automat fie în jos, fie pe orizontală, în celule învecinate. Această modificare a comportamentului este însoțită, de asemenea, de mai multe funcții matrice dinamice noi. Formulele matrice dinamice, indiferent dacă utilizează funcții existente sau funcții de matrice dinamice, trebuie să fie introduse doar într-o singură celulă, apoi confirmate apăsând Enter. Anterior, formulele matrice moștenite necesită mai întâi selectarea întregii zone de ieșire, apoi confirmarea formulei cu Ctrl+Shift+Enter. Acestea sunt denumite, de obicei, formule CSE.
Puteți utiliza formulele matrice pentru a efectua activități complexe, cum ar fi:
-
Creați rapid seturi de date eșantion.
-
Contorizați caracterele dintr-o zonă de celule.
-
Însumați doar numerele care îndeplinesc anumite condiții, cum ar fi cele mai mici valori dintr-o zonă sau numerele care se încadrează între un prag superior și unul inferior.
-
Însumați fiecare a n-a valoare dintr-un interval de valori.
Exemplele următoare vă arată cum să creați formule matrice cu mai multe celule și cu o singură celulă. Acolo unde este posibil, am inclus exemple cu unele dintre funcțiile matrice dinamice, precum și cu formule matrice existente introduse atât ca matrice dinamice, cât și matrice moștenite.
Descărcați exemplele noastre
Descărcați un registru de lucru eșantion cu toate exemplele de formule matrice din acest articol.
Acest exercițiu vă arată cum să utilizați formulele matrice cu mai multe celule și cu o singură celulă pentru a calcula un set de cifre de vânzări. Primul set de pași utilizează o formulă cu mai multe celule pentru a calcula un set de subtotaluri. Al doilea set utilizează o formulă cu o singură celulă pentru a calcula un total general.
-
Formulele matrice cu celule multiple
-
Aici calculăm vânzările totale pentru mașinile de tip coupe și sedan pentru fiecare vânzător, introducând =F10:F19*G10:G19 în celula H10.
Când apăsați Enter, veți vedea rezultatele vărsate până la celulele H10:H19. Observați că intervalul de vărsare este evidențiat cu o bordură atunci când selectați orice celulă din zona de vărsare. De asemenea, este posibil să observați că formulele din celulele H10:H19 sunt estompate. Sunt acolo doar pentru referință, așadar, dacă doriți să ajustați formula, va trebui să selectați celula H10, unde se află formula matriță.
-
Formula matrice cu mai multe celule
În celula H20 din registrul de lucru exemplu, tastați sau copiați și lipiți =SUM(F10:F19*G10:G19), apoi apăsați Enter.
În acest caz, Excel înmulțește valorile din matrice (zona de celule F10 până la G19) și utilizează funcția SUM pentru a aduna totalurile. Rezultatul este un total general de 1.590.000 în vânzări.
Acest exemplu arată cât de puternic este acest tip de formulă. De exemplu, să presupunem că aveți 1.000 de rânduri de date. Aveți posibilitatea să însumați datele parțial sau total creând o formulă matrice într-o singură celulă în loc să glisați formula în jos prin cele 1000 de rânduri. De asemenea, observați că formula cu o singură celulă din celula H20 este independentă de formula cu mai multe celule (formula din celulele H10 până la H19). Acesta este un alt avantaj al utilizării formulelor matrice: flexibilitatea. Puteți modifica celelalte formule din coloana H fără a afecta formula din H20. De asemenea, poate fi o practică bună să aveți totaluri independente, ca acesta, deoarece vă ajută să validați acuratețea rezultatelor.
-
De asemenea, formulele matrice dinamice oferă și următoarele avantaje:
-
Consistență Dacă faceți clic pe oricare dintre celulele de la H10 în jos, vedeți aceeași formulă. Această consistență poate contribui la o mai mare acuratețe.
-
Siguranță Nu puteți suprascrie o componentă a unei formule matrice cu mai multe celule. De exemplu, faceți clic pe celula H11 și apăsați tasta Delete. Excel nu va modifica rezultatul matricei. Pentru a o modifica, trebuie să selectați celula din stânga sus din matrice sau celula H10.
-
Dimensiune redusă a fișierelor Deseori, aveți posibilitatea să utilizați o singură formulă matrice în loc de mai multe formule intermediare. Exemplul cu vânzarea de mașini utilizează o formulă matrice pentru a calcula rezultatele în coloana E. Dacă ați fi utilizat formule standard, cum ar fi =F10*G10, F11*G11, F12*G12 etc., ați fi utilizat 11 formule diferite pentru a calcula aceleași rezultate. Nu pare mare lucru, dar ce se întâmplă dacă aveți mii de rânduri în total? În acel caz, chiar ar face diferența.
-
Eficiență Funcțiile matrice pot fi o modalitate eficientă de a construi formule complexe. Formula matrice =SUM(F10:F19*G10:G19) este aceeași cu: =SUM(F10*G10,F11*G11,F12*G12,F13*G13,F14*G14,F15*G15,F16*G16,F17*G17,F18*G18,F19*G19).
-
Vărsarea Formulele matrice dinamice vor vărsa automat în zona de ieșire. Dacă datele sursă se află într-un tabel Excel, formulele matrice dinamice se vor redimensiona automat pe măsură ce adăugați sau eliminați date.
-
Eroare #SPILL! Matricele dinamice au introdus eroarea #SPILL!, ceea ce indică faptul că zona de vărsare proiectată este blocată din anumite motive. Când rezolvați blocarea, formula va vărsa automat.
-
Constantele matrice sunt o componentă a formulelor matrice. Creați constante matrice introducând o listă de elemente și încadrând apoi manual lista cu acolade ({ }), astfel:
={1\2\3\4\5} sau ={"Ianuarie"\"Februarie"\"Martie"}
Dacă separați elementele folosind virgule (pentru setările regionale în engleză) sau bare oblice inverse (\) pentru setările regionale în română, creați o matrice orizontală (un rând). Dacă separați elementele utilizând semnul punct și virgulă, creați o matrice verticală (o coloană). Pentru a crea o matrice bidimensională, delimitați elementele din fiecare rând cu virgule și delimitați fiecare rând cu punct și virgulă.
În următoarele proceduri veți exersa crearea constantelor orizontale, verticale și bidimensionale. Vă vom arăta exemple utilizând funcția SEQUENCE pentru a genera automat constante matrice, precum și constante matrice introduse manual.
-
Crearea unei constante orizontale
Utilizați registrul de lucru din exemplele anterioare sau creați un registru de lucru nou. Selectați orice celulă goală și introduceți =SEQUENCE(1,5). Funcția SEQUENCE construiește o matrice de un rând și cinci coloane la fel ca ={1\2\3\4\5}. Se afișează următorul rezultat:
-
Crearea unei constante verticale
Selectați orice celulă necompletată cu spațiu dedesubt și introduceți =SEQUENCE(5), sau ={1;2;3;4;5}. Se afișează următorul rezultat:
-
Crearea unei constante bidimensionale
Selectați orice celulă necompletată cu spațiu la dreapta și dedesubt și introduceți =SEQUENCE(3,4). Vedeți următorul rezultat:
De asemenea, puteți introduce: sau ={1\2\3\4;5\6\7\8;9\10\11\12}, dar trebuie să aveți grijă unde puneți punct și virgulă versus virgule.
După cum puteți vedea, opțiunea SEQUENCE oferă avantaje semnificative asupra introducerii manuale a valorilor de constante matrice. În principal, vă economisește timp, dar vă poate ajuta, de asemenea, să reduceți erorile de la introducerea manuală. De asemenea, este mai ușor de citit, mai ales că separatorii punct și virgulă pot fi greu de deosebit de separatorii virgulă.
Iată un exemplu care utilizează constante matrice ca parte a unei formule mai mari. În registrul de lucru eșantion, accesați foaia de lucru Constantă într-o formulă sau creați o foaie de lucru nouă.
În celula D9, am introdus =SEQUENCE(1,5,3,1), dar la fel de bine puteți introduce 3, 4, 5, 6 și 7 în celulele A9:H9. Nu există nimic special cu acea selecție de numere, pur și simplu am ales altceva decât 1-5 pentru diferențiere.
În celula E11, introduceți =SUM(D9:H9*SEQUENCE(1,5)) sau =SUM(D9:H9*{1\2\3\4\5}). Formulele returnează 85.
Funcția SEQUENCE construiește echivalentul constantei matrice {1\2\3\4\5}. Deoarece Excel efectuează mai întâi operațiuni cu expresiile dintre paranteze, următoarele două elemente care intră în joc sunt valorile celulelor D9:H9 și operatorul de înmulțire (*). În acest moment, formula înmulțește valorile din matricea stocată cu valorile corespunzătoare din constantă. Este echivalentul formulei:
=SUM(D9*1,E9*2,F9*3,G9*4,H9*5) sau =SUM(3*1,4*2,5*3,6*4,7*5)
În cele din urmă, funcția SUM adună valorile și returnează 85.
Pentru a evita utilizarea matricei stocate și a păstra operațiunea în memorie în întregime, o puteți înlocui cu altă constantă matrice:
=SUM(SEQUENCE(1,5,3,1)*SEQUENCE(1,5)) sau =SUM({3\4\5\6\7}*{1\2\3\4\5})
Elemente care pot fi utilizate în constante matrice
-
Constantele matrice pot conține numere, text, valori logice (cum ar fi TRUE și FALSE) și valori de erori cum ar fi #N/A. Puteți utiliza numere în format întreg, zecimal și științific. Dacă includeți text, trebuie să-l încadrați între ghilimele ("text”).
-
Constantele matrice nu pot conține matrice suplimentare, formule sau funcții. Cu alte cuvinte, pot conține numai text sau numere separate prin bare oblice inverse sau punct și virgulă. Excel afișează un mesaj de avertisment când introduceți o formulă ca {1\2\A1:D4} sau {1\2\SUM(Q2:Z8)}. De asemenea, valorile numerice nu pot conține semnul procent, semnul dolar, bare oblice inverse sau paranteze.
Una dintre cele mai bune modalități de a utiliza constantele matrice este denumirea acestora. Constantele denumite pot fi mai ușor de utilizat și pot face formulele matrice mai ușor de înțeles de către alte persoane. Pentru a denumi o constantă matrice și a o utiliza într-o formulă, procedați astfel:
Accesați Formule > Nume definite > Definire nume. În caseta Nume, tastați Trimestru1. În caseta Se referă la, introduceți următoarea constantă (nu uitați să tastați manual acoladele):
={"Ianuarie"\"Februarie"\"Martie"}
Caseta de dialog trebuie să arate astfel:
Faceți clic pe OK, apoi selectați orice rând cu trei celule necompletate și introduceți =Trimestru1.
Se afișează următorul rezultat:
Dacă doriți ca rezultatele să fie vărsate pe verticală, nu pe orizontală, puteți utiliza =TRANSPOSE(Trimestru1).
Dacă doriți să afișați o listă de 12 luni, cum ați putea utiliza atunci când construiți o declarație financiară, puteți face una pe baza anului curent cu funcția SEQUENCE. Partea cea mai grozavă la această funcție este că, deși se afișează doar luna, există o dată validă în spatele ei, pe care o puteți utiliza în alte calcule. Veți găsi aceste exemple în foile de lucru Constantă matrice denumită și Set de date eșantion rapid din registrul de lucru exemplu.
=TEXT(DATE(YEAR(TODAY()),SEQUENCE(1,12),1),"mmm")
Aceasta utilizează funcția DATE pentru a crea o dată pe baza anului curent, SEQUENCE creează o constantă matrice de la 1 la 12 pentru ianuarie până în decembrie, apoi funcția TEXT convertește formatul de afișare în "mmm" (Ian, Feb, Mar etc.) Dacă preferați să afișați numele complet al lunii, cum ar fi ianuarie, utilizați "mmmm".
Când utilizați o constantă denumită ca formulă matrice, nu uitați să introduceți semnul egal, ca în =Trimestru1, nu doar Trimestru1. Dacă nu faceți acest lucru, Excel interpretează matricea ca șir de text și formula dvs. nu va funcționa așa cum vă așteptați. În cele din urmă, rețineți că puteți utiliza combinații de funcții, text și numere. Totul depinde de cât de creativi sunteți dispuși să fiți.
Următoarele exemple demonstrează câteva dintre modurile în care se pot utiliza constantele matrice în formulele matrice. Unele dintre exemple utilizează funcția TRANSPOSE pentru a converti rânduri în coloane și invers.
-
Înmulțirea fiecărui element dintr-o matrice
Introduceți =SEQUENCE(1,12)*2 sau ={1\2\3\4;5\6\7\8;9\10\11\12}*2
De asemenea, puteți să împărțiți (/), să adunați (+) și să scădeți (-).
-
Ridicarea la pătrat a elementelor dintr-o matrice
Introduceți =SEQUENCE(1,12)^2 sau ={1\2\3\4;5\6\7\8;9\10\11\12}^2
-
Găsirea rădăcinii pătrate a elementelor la pătrat dintr-o matrice
Introduceți =SQRT(SEQUENCE(1,12)^2) sau =SQRT({1\2\3\4;5\6\7\8;9\10\11\12}^2)
-
Transpunerea unui rând unidimensional
Introduceți =TRANSPOSE(SEQUENCE(1,5)) sau =TRANSPOSE({1\2\3\4\5})
Chiar dacă ați introdus o constantă matrice orizontală, funcția TRANSPOSE convertește constanta matrice într-o coloană.
-
Transpunerea unei coloane unidimensionale
Introduceți =TRANSPOSE(SEQUENCE(5,1)) sau =TRANSPOSE({1;2;3;4;5})
Chiar dacă ați introdus o constantă matrice verticală, funcția TRANSPOSE convertește constanta într-un rând.
-
Transpunerea unei constante bidimensionale
Introduceți =TRANSPOSE(SEQUENCE(3,4)) sau =TRANSPOSE({1\2\3\4;5\6\7\8;9\10\11\12})
Funcția TRANSPOSE convertește fiecare rând într-o serie de coloane.
Această secțiune oferă exemple de formule matrice simple.
-
Crearea unei matrice din valori existente
Următorul exemplu arată cum se utilizează formulele matrice pentru a crea o matrice nouă dintr-o matrice existentă.
Introduceți =SEQUENCE(3,6,10,10) sau ={10\20\30\40\50\60;70\80\90\100\110\120;130\140\150\160\170\180}
Asigurați-vă că tastați { (acoladă deschisă) înainte de a tasta 10 și } (acoladă închisă) după ce tastați 180, deoarece creați o matrice de numere.
În continuare, introduceți =D9# sau =D9:I11 într-o celulă necompletată. O matrice de celule 3 x 6 apare cu aceleași valori pe care le vedeți în D9:D11. Semnul # se numește operator de zonă vărsată și este modul Excel de a face referire la întreaga zonă matrice în loc să fie necesar să o tastați.
-
Crearea unei constante matrice din valori existente
Puteți să luați rezultatele unei formule matrice vărsate și să le convertiți în părțile sale componente. Selectați celula D9, apoi apăsați F2 pentru a comuta la modul de editare. Apoi, apăsați F9 pentru a converti referințele de celule în valori, pe care apoi Excel le convertește într-o constantă matrice. Când apăsați Enter, formula, =D9#, ar trebui să fie ={10\20\30;40\50\60;70\80\90}.
-
Contorizarea caracterelor dintr-o zonă de celule
Următorul exemplu vă arată cum să contorizați caracterele, inclusiv spațiile, dintr-o zonă de celule. Acest număr include spațiile.
=SUM(LEN(C9:C13))
În acest caz, funcția LEN returnează lungimea fiecărui șir text din fiecare celulă din zonă. Funcția SUM adună apoi acele valori și afișează rezultatul (66). Dacă doriți să obțineți numărul mediu de caractere, puteți utiliza:
=AVERAGE(LEN(C9:C13))
-
Conținutul celei mai lungi celule din zona C9:C13
=INDEX(C9:C13,MATCH(MAX(LEN(C9:C13)),LEN(C9:C13),0),1)
Această formulă funcționează numai când o zonă de date conține o singură coloană de celule.
Să examinăm formula, începând de la elementele interioare și mergând spre exterior. Funcția LEN returnează lungimea fiecăruia dintre elementele din zona de celule D2:D6. Funcția MAX calculează cea mai mare valoare dintre aceste elemente, care corespunde celui mai lung șir text, care se află în celula D3.
Aici lucrurile devin puțin mai complicate. Funcția MATCH calculează deplasarea ca întreg (poziția relativă) a celulei care conține cel mai lung șir text. Pentru a face aceasta, are nevoie de trei argumente: o valoare de căutare, o matrice de căutare și un tip de potrivire. Funcția MATCH caută în matricea de căutare pentru a găsi valoarea de căutare specificată. În acest caz, valoarea de căutare este cel mai lung șir text:
MAX(LEN(C9:C13)
iar acel șir se află în această matrice:
LEN(C9:C13)
În acest caz, argumentul tipului de potrivire este 0. Tipul de potrivire poate fi valoarea 1, 0 sau -1.
-
1 - returnează cea mai mare valoare care este mai mică sau egală cu valoarea de căutare
-
0 - returnează prima valoare care este exact egală cu valoarea de căutare
-
-1 - returnează cea mai mică valoare care este mai mare sau egală cu valoarea de căutare specificată
-
Dacă omiteți tipul de potrivire, Excel presupune valoarea 1.
În cele din urmă, funcția INDEX preia aceste argumente: o matrice și un număr de rând și coloană din acea matrice. Zona de celule C9:C13 oferă matricea, funcția MATCH oferă adresa celulei, iar argumentul final (1) specifică faptul că valoarea provine din prima coloană a matricei.
Dacă preferați să obțineți conținutul celui mai mic șir text, înlocuiți MAX din exemplul de mai sus cu MIN.
-
-
Găsirea celor mai mici n valori dintr-o zonă
Acest exemplu vă arată cum să găsiți cele mai mici trei valori dintr-o zonă de celule, unde s-a creat o matrice de date eșantion din celulele B9:B18 cu: =INT(RANDARRAY(10,1)*100). Rețineți că RANDARRAY este o funcție volatilă, astfel că veți obține un nou set de numere aleatoare de fiecare dată când calculează Excel.
Introduceți =SMALL(B9#,SEQUENCE(D9), =SMALL(B9:B18,{1;2;3})
Această formulă utilizează o constantă matrice pentru a evalua funcția SMALL de trei ori și returnează cei mai mici 3 membri ai matricei cuprinse în celulele B9:B18, unde 3 este o valoare variabilă în celula D9. Pentru a găsi mai multe valori, puteți să măriți valoarea funcției SEQUENCE sau să adăugați mai multe argumente la constantă. De asemenea, aveți posibilitatea să utilizați funcții suplimentare cu această formulă, cum ar fi SUM sau AVERAGE. De exemplu:
=SUM(SMALL(B9#,SEQUENCE(D9))
=AVERAGE(SMALL(B9#,SEQUENCE(D9))
-
Găsirea celor mai mari n valori dintr-o zonă
Pentru a găsi cele mai mari valori dintr-o zonă, puteți să înlocuiți funcția SMALL cu funcția LARGE. În plus, următorul exemplu utilizează funcțiile ROW și INDIRECT.
Introduceți =LARGE(B9#,ROW(INDIRECT("1:3"))) sau =LARGE(B9:B18,ROW(INDIRECT("1:3")))
Acum, poate fi util să cunoașteți câteva lucruri despre funcțiile ROW și INDIRECT. Puteți utiliza funcția ROW pentru a crea o matrice de numere întregi consecutive. De exemplu, selectați o necompletată și introduceți:
=ROW(1:10)
Formula creează o coloană de 10 numere întregi consecutive. Pentru a vedea o posibilă problemă, introduceți un rând deasupra rândului care conține formula matrice (adică deasupra rândului 1). Excel reglează referințele de rânduri, iar formula generează numere întregi de la 2 la 11. Pentru a remedia problema, adăugați funcția INDIRECT la formulă:
=ROW(INDIRECT("1:10"))
Funcția INDIRECT utilizează șiruri text ca argumente (motiv pentru care zona 1:10 este încadrată de ghilimele). Excel nu ajustează valorile text atunci când introduceți rânduri sau mutați formula matrice. Drept urmare, funcția ROW generează întotdeauna matricea de numere întregi dorită. La fel de bine puteți utiliza SEQUENCE:
=SEQUENCE(10)
Să examinăm formula utilizată anterior - =LARGE(B9#,ROW(INDIRECT("1:3"))) - începând de la parantezele interioare și lucrând spre exterior: funcția INDIRECT returnează un set de valori text, în acest caz valorile de la 1 la 3. Funcția ROW generează, la rândul ei, o matrice de coloane cu trei celule. Funcția LARGE utilizează valorile din zona de celule B9:B18 și este evaluată de trei ori, câte o dată pentru fiecare referință returnată de funcția ROW. Dacă doriți să găsiți mai multe valori, adăugați o zonă de celule mai mare la funcția INDIRECT. În cele din urmă, ca în cazul exemplelor pentru SMALL, puteți utiliza această formulă cu alte funcții, cum ar fi SUM și AVERAGE.
-
Însumarea unei zone care conține valori de eroare
Funcția SUM din Excel nu funcționează când încercați să însumați o zonă care conține o valoare de eroare, cum ar fi #VALUE! sau #N/A. Acest exemplu vă arată cum să însumați valorile dintr-o zonă denumită Date, care conține erori:
-
=SUM(IF(ISERROR(Date);"";Date))
Formula creează o matrice nouă, care conține valorile inițiale minus valorile eroare. Începând de la funcțiile din interior și mergând înspre exterior, funcția ISERROR caută în zona de celule (Date) pentru a găsi erori. Funcția IF returnează o anumită valoare dacă o condiție pe care o specificați este evaluată ca adevărată (TRUE) și altă valoare dacă este evaluată ca fiind falsă (FALSE). În acest caz, returnează șiruri goale ("") pentru toate valorile eroare, deoarece acestea sunt evaluate ca o condiție adevărată, și returnează restul valorilor din zona de celule (Date), deoarece sunt evaluate ca false, adică nu conțin valori eroare. Funcția SUM calculează apoi totalul pentru matricea filtrată.
-
Contorizarea numărului de valori de eroare dintr-o zonă
Acest exemplu este similar cu formula anterioară, dar returnează numărul de valori de eroare dintr-o zonă denumită Date, în loc să le filtreze:
=SUM(IF(ISERROR(Date);1;0))
Această formulă creează o matrice care conține valoare 1 pentru celulele care conțin erori și valoarea 0 pentru celulele care nu conțin erori. Puteți simplifica formula și obțineți același rezultat eliminând al treilea argument pentru funcția IF, astfel:
=SUM(IF(ISERROR(Date),1))
Dacă nu specificați argumentul, funcția IF returnează FALSE dacă o celulă nu conține o valoare de eroare. Aveți posibilitatea să simplificați formula și mai mult:
=SUM(IF(ISERROR(Date)*1))
Această versiune funcționează deoarece TRUE*1=1 și FALSE*1=0.
Poate fi necesar să însumați valorile pe baza unor condiții.
De exemplu, această formulă matrice însumează numai numerele întregi pozitive dintr-o zonă denumită Vânzări, care reprezintă celulele E9:E24 din exemplul de mai sus:
=SUM(IF(Vânzări>0,Vânzări))
Funcția IF creează o matrice de valori pozitive și valori false. Funcția SUM ignoră practic valorile false, deoarece 0+0=0. Zona de celule pe care o utilizați în această formulă poate consta în orice număr de rânduri și coloane.
De asemenea, aveți posibilitatea să însumați valorile care respectă mai multe condiții. De exemplu, această formulă matrice calculează valori mai mari decât 0 ȘI mai mici decât 2500:
=SUM((Vânzări>0)*(Vânzări<2500)*(Vânzări))
Rețineți că această formulă va returna o eroare dacă zona conține una sau mai multe celule non-numerice.
De asemenea, aveți posibilitatea să creați formule matrice care utilizează un tip de condiție OR (SAU). De exemplu, puteți însuma valorile care sunt mai mari decât 0 SAU mai mici decât 2500:
=SUM(IF((Vânzări>0)+(Vânzări<2500),Vânzări))
Nu aveți posibilitatea să utilizați funcțiile AND și OR în formulele matrice în mod direct, deoarece acele funcții returnează un singur rezultat, TRUE sau FALSE, iar funcțiile matrice necesită matrici de rezultate. Puteți rezolva problema utilizând elementele logice din formula anterioară. Cu alte cuvinte, efectuați operațiuni matematice, cum ar fi adunarea sau înmulțirea, pentru valori care respectă condiția OR (SAU) sau AND (ȘI).
Acest exemplu arată cum să eliminați valorile zero dintr-o zonă atunci când trebuie să calculați o medie a valorilor din acea zonă. Formula utilizează o zonă de date denumită Vânzări:
=AVERAGE(IF(Vânzări<>0;Vânzări))
Funcția IF creează o matrice de valori care nu sunt egale cu 0 și transmite apoi acele valori la funcția AVERAGE.
Această formulă matrice compară valorile din două zone de celule denumite DateleMele și DateleTale și returnează numărul de diferențe dintre cele două. Dacă conținutul celor două zone este identic, formula returnează 0. Pentru a utiliza această formulă, zonele de celule trebuie să fie de aceeași mărime și de aceeași dimensiune. De exemplu, dacă DateleMele sunt o zonă de trei rânduri pe cinci coloane, DateleTale trebuie să aibă tot trei rânduri și cinci coloane:
=SUM(IF(DateleMele=DateleTale,0,1))
Formula creează o matrice nouă de aceeași mărime ca zonele pe care le comparați. Funcția IF completează matricea cu valoarea 0 și valoarea 1 (0 pentru nepotriviri și 1 pentru celule identice). Funcția SUM returnează apoi suma valorilor din matrice.
Formula poate fi simplificată astfel:
=SUM(1*(DateleMele<>DateleTale))
La fel ca formula care contorizează valorile de eroare dintr-o zonă de date, această formulă funcționează deoarece TRUE*1=1 și FALSE*1=0.
Această formulă matrice returnează numărul de rând al valorii maxime dintr-o zonă cu o singură coloană denumită Date:
=MIN(IF(Date=MAX(Date);ROW(Date);""))
Funcția IF creează o matrice nouă, care corespunde zonei denumite Date. Dacă o celulă corespondentă conține valoarea maximă din zonă, matricea conține numărul rândului. Altfel, matricea conține un șir gol (""). Funcția MIN utilizează matricea nouă ca al doilea argument și returnează cea mai mică valoare, care corespunde cu numărul de rând al valorii maxime din Date. Dacă zona denumită Date conține valori maxime identice, formula returnează rândul primei valori.
Dacă doriți să returnați adresa efectivă a celulei în care se află valoarea maximă, utilizați această formulă:
=ADDRESS(MIN(IF(Date=MAX(Date);ROW(Date);""));COLUMN(Date))
Veți găsi exemple similare în registrul de lucru eșantion din foaia de lucru Diferențe între seturile de date.
Acest exercițiu vă arată cum să utilizați formulele matrice cu mai multe celule și cu o singură celulă pentru a calcula un set de cifre de vânzări. Primul set de pași utilizează o formulă cu mai multe celule pentru a calcula un set de subtotaluri. Al doilea set utilizează o formulă cu o singură celulă pentru a calcula un total general.
-
Formulele matrice cu celule multiple
Copiați tot tabelul de mai jos și lipiți-l în celula A1 dintr-o foaie de lucru necompletată.
Vânzător |
Tipul mașinii |
Număr vândut |
Preț unitar |
Total vânzări |
---|---|---|---|---|
Preda |
Sedan |
5 |
33000 |
|
Coupe |
4 |
37000 |
||
Dumitriu |
Sedan |
6 |
24000 |
|
Coupe |
8 |
21000 |
||
Lupu |
Sedan |
3 |
29000 |
|
Coupe |
1 |
31000 |
||
Roman |
Sedan |
9 |
24000 |
|
Coupe |
5 |
37000 |
||
Petculescu |
Sedan |
6 |
33000 |
|
Coupe |
8 |
31000 |
||
Formulă (Total general) |
Total general |
|||
'=SUM(C2:C11*D2:D11) |
=SUM(C2:C11*D2:D11) |
-
Pentru a vedea vânzările totale pentru mașinile de tip coupe și sedan pentru fiecare vânzător, selectați celulele E2:E11, introduceți formula =C2:C11*D2:D11, apoi apăsați Ctrl+Shift+Enter.
-
Pentru a vedea totalul general al tuturor vânzărilor, selectați celula F11, introduceți formula =SUM(C2:C11*D2:D11), apoi apăsați Ctrl+Shift+Enter.
Când apăsați Ctrl+Shift+Enter, Excel încadrează formula cu acolade ({ }) și inserează o instanță a formulei în fiecare celulă din zona selectată. Acest lucru se întâmplă foarte rapid, deci ce vedeți în coloana E va fi cantitatea totală de vânzări pentru fiecare tip de mașină pentru fiecare vânzător. Dacă selectați E2, apoi selectați E3, E4 și așa mai departe, veți vedea că se afișează aceeași formulă: {=C2:C11*D2:D11}.
-
Crearea unei formule matrice cu o singură celulă
În celula D13 din registrul de lucru, tastați următoarea formulă, apoi apăsați Ctrl+Shift+Enter:
=SUM(C2:C11*D2:D11)
În acest caz, Excel înmulțește valorile din matrice (zona de celule C2 până la D11) și utilizează funcția SUM pentru a aduna totalurile. Rezultatul este un total general de 1.590.000 în vânzări. Acest exemplu arată cât de puternic este acest tip de formulă. De exemplu, să presupunem că aveți 1.000 de rânduri de date. Aveți posibilitatea să însumați datele parțial sau total creând o formulă matrice într-o singură celulă în loc să glisați formula în jos prin cele 1000 de rânduri.
De asemenea, observați că formula cu o singură celulă din celula D13 este independentă de formula cu mai multe celule (formula din celulele E2 până la E11). Acesta este un alt avantaj al utilizării formulelor matrice: flexibilitatea. Puteți să modificați formulele din coloana E sau să ștergeți acea coloană cu totul, fără a afecta formula din D13.
De asemenea, formulele matrice oferă și următoarele avantaje:
-
Consistență Dacă faceți clic pe oricare dintre celulele de la E2 în jos, vedeți aceeași formulă. Această consistență poate contribui la o mai mare acuratețe.
-
Siguranță Nu se poate suprascrie o componentă a unei formule matrice cu mai multe celule. De exemplu, faceți clic pe celula E3 și apăsați Delete. Trebuie fie să selectați întreaga zonă de celule (E2 până la E11) și să modificați formula pentru întreaga matrice, fie să lăsați matricea neschimbată. Ca măsură de siguranță suplimentară, trebuie să apăsați Ctrl+Shift+Enter pentru a confirma orice modificare a formulei.
-
Dimensiune redusă a fișierelor Deseori, aveți posibilitatea să utilizați o singură formulă matrice în loc de mai multe formule intermediare. De exemplu, registrul de lucru utilizează o formulă matrice pentru a calcula rezultatele în coloana E. Dacă ați fi utilizat formule standard (cum ar fi =C2*D2, C3*D3, C4*D4…), ați fi utilizat 11 formule diferite pentru a calcula aceleași rezultate.
În general, formulele matrice utilizează sintaxa standard de formule. Toate încep cu semnul egal (=) și se pot utiliza majoritatea funcțiilor predefinite Excel. Principala diferență este că, atunci când utilizați o formulă matrice, apăsați Ctrl+Shift+Enter pentru a introduce formula. Când faceți acest lucru, Excel încadrează formula între acolade; dacă tastați acoladele manual, formula se va transforma într-un șir text și nu va funcționa.
Funcțiile matrice pot fi o modalitate eficientă de a construi formule complexe. Formula matrice =SUM(C2:C11*D2:D11) este la fel ca aceasta: =SUM(C2*D2;C3*D3;C4*D4;C5*D5;C6*D6;C7*D7;C8*D8;C9*D9;C10*D10;C11*D11).
Important: Apăsați Ctrl+Shift+Enter oricând trebuie să introduceți o formulă matrice. Aceasta se aplică atât pentru formulele cu o singură celulă, cât și pentru cele cu mai multe celule.
Oricând lucrați cu formule cu mai multe celule, rețineți, de asemenea:
-
Selectați zona de celule care vor conține rezultatele înainte să introduceți formula. Ați făcut acest lucru atunci când ați creat formula cu mai multe celule când ați selectat celulele de la E2 până la E11.
-
Nu aveți posibilitatea să modificați conținutul unei celule individuale dintr-o formulă matrice. Pentru a încerca acest lucru, selectați celula E3 din registrul de lucru și apăsați pe Delete. Excel afișează un mesaj care vă anunță că nu puteți modifica o parte a unei matrice.
-
Aveți posibilitatea să mutați sau să ștergeți o întreagă formulă matrice, dar nu aveți posibilitatea să mutați sau să ștergeți o parte din aceasta. Cu alte cuvinte, pentru a restrânge o formulă matrice, ștergeți mai întâi formula existentă, apoi luați-o de la început.
-
Pentru a șterge o formulă matrice, selectați întreaga zonă de formule (de exemplu, E2:E11), apoi apăsați Delete.
-
Nu puteți insera celule necompletate și nu puteți șterge celule dintr-o formulă matrice cu mai multe celule.
Uneori, poate fi necesar să extindeți o formulă matrice. Selectați prima celulă din zona matrice existentă și continuați până când ați selectat întreaga zonă la care doriți să extindeți formula. Apăsați F2 pentru a edita formula, apoi apăsați CTRL+SHIFT+ENTER pentru a confirma formula după ce ați ajustat zona de formule. Cheia este să selectați întreaga zonă, începând cu celula din stânga sus a matricei. Celula din stânga sus este cea care este editată.
Formulele matrice sunt foarte bune, dar au și câteva dezavantaje:
-
Este posibil să uitați uneori să apăsați Ctrl+Shift+Enter. Acest lucru li se poate întâmpla chiar și utilizatorilor cu o experiență îndelungată ai programului Excel. Nu uitați să apăsați această combinație de taste oricând introduceți sau editați o formulă matrice.
-
Este posibil ca alți utilizatori ai registrului de lucru să nu înțeleagă formulele dvs. De obicei, formulele matrice nu sunt explicate în foile de lucru. Așadar, dacă alte persoane trebuie să vă modifice registrele de lucru, evitați folosirea formulelor matrice sau asigurați-vă că acele persoane știu ce sunt acestea și cum să le modifice, dacă este necesar.
-
În funcție de viteza de procesare și de memoria computerului, formulele matrice de mari dimensiuni pot încetini calculele.
Constantele matrice sunt o componentă a formulelor matrice. Creați constante matrice introducând o listă de elemente, apoi încadrând manual lista cu acolade ({ }), astfel:
={1\2\3\4\5}
Până acum, știți că trebuie să apăsați Ctrl+Shift+Enter atunci când creați formule matrice. Deoarece constantele matrice sunt o componentă a formulelor matrice, încadrați constantele cu acolade, tastându-le manual. Apoi, utilizați Ctrl+Shift+Enter pentru a introduce toată formula.
Dacă separați elementele folosind virgule (pentru setările regionale în engleză) sau bare oblice inverse (\) pentru setările regionale în română, creați o matrice orizontală (un rând). Dacă separați elementele utilizând semnul punct și virgulă, creați o matrice verticală (o coloană). Pentru a crea o matrice bidimensională, delimitați elementele din fiecare rând folosind virgule și delimitați fiecare rând folosind punct și virgulă.
Iată o matrice într-un singur rând: {1\2\3\4}. Iată o matrice într-o singură coloană: {1;2;3;4}. Iar aici se află o matrice cu două rânduri și patru coloane: {1\2\3\4;5\6\7\8}. În matricea cu două rânduri, primul rând este 1, 2, 3 și 4, iar al doilea rând este 5, 6, 7 și 8. Cele două rânduri, între 4 și 5 sunt separate printr-un semn punct și virgulă.
Ca și în cazul formulelor matrice, aveți posibilitatea să utilizați constante matrice cu majoritatea funcțiilor predefinite oferite de Excel. Următoarea secțiune arată cum se creează fiecare tip de constantă și cum se utilizează constantele cu funcțiile din Excel.
În următoarele proceduri veți exersa crearea constantelor orizontale, verticale și bidimensionale.
Crearea unei constante orizontale
-
Într-o foaie de lucru necompletată, selectați celulele de la A1 la E1.
-
În bara de formule, introduceți următoarea formulă, apoi apăsați Ctrl+Shift+Enter:
={1\2\3\4\5}
În acest caz, trebuie să tastați acoladele de deschidere și de închidere ({ }) și Excel va adăuga al doilea set pentru dvs.
Se afișează următorul rezultat.
Crearea unei constante verticale
-
În registrul de lucru, selectați o coloană cu cinci celule.
-
În bara de formule, introduceți următoarea formulă, apoi apăsați Ctrl+Shift+Enter:
={1;2;3;4;5}
Se afișează următorul rezultat.
Crearea unei constante bidimensionale
-
În registrul de lucru, selectați o zonă de celule de patru coloane lățime și trei rânduri lungime.
-
În bara de formule, introduceți următoarea formulă, apoi apăsați Ctrl+Shift+Enter:
={1\2\3\4;5\6\7\8;9\10\11\12}
Veți vedea următorul rezultat:
Utilizarea constantelor în formule
Iată un exemplu simplu care utilizează constante:
-
În registrul de lucru eșantion, creați o foaie de lucru nouă.
-
În celula A1, tastați 3, apoi tastați 4 în B1, 5 în C1, 6 în D1 și 7 în E1.
-
În celula A3, tastați următoarea formulă, apoi apăsați Ctrl+Shift+Enter:
=SUM(A1:E1*{1\2\3\4\5})
Observați că Excel încadrează constanta cu alt set de acolade, deoarece ați introdus-o ca o formulă matrice.
Valoarea 85 apare în celula A3.
Următoarea secțiune explică modul în care funcționează formula.
Formula pe care tocmai ați utilizat-o conține mai multe părți.
1. Funcție
2. Matrice stocată
3. Operator
4. Constantă matrice
Ultimul element dintre paranteze este constanta matrice: {1\2\3\4\5}. Rețineți că Excel nu încadrează constantele matrice cu acolade; trebuie să le tastați. De asemenea, rețineți că, după ce adăugați o constantă la o formulă matrice, apăsați Ctrl+Shift+Enter pentru a introduce formula.
Deoarece Excel efectuează mai întâi operațiuni cu expresiile dintre paranteze, următoarele două elemente care intră în joc sunt valorile stocate în registrul de lucru (A1:E1) și operatorul. În acest moment, formula înmulțește valorile din matricea stocată cu valorile corespunzătoare din constantă. Este echivalentul formulei:
=SUM(A1*1\B1*2\C1*3\D1*4\E1*5)
În fine, funcția SUM adună valorile și suma 85 apare în celula A3.
Pentru a evita utilizarea matricei stocate și a păstra operațiunea în memorie în întregime, înlocuiți matricea stocată cu altă constantă matrice:
=SUM({3\4\5\6\7}*{1\2\3\4\5})
Pentru a încerca acest lucru, copiați funcția, selectați o celulă necompletată din registrul de lucru, lipiți formula în bara de formule și apăsați apoi Ctrl+Shift+Enter. Vedeți același rezultat ca în exercițiul anterior, care a utilizat formula matrice:
=SUM(A1:E1*{1\2\3\4\5})
Constantele matrice pot conține numere, text, valori logice (cum ar fi TRUE și FALSE) și valori eroare ( cum ar fi #N/A). Aveți posibilitatea să utilizați numere în format întreg, zecimal și științific. Dacă adăugați text, trebuie să încadrați textul între ghilimele (").
Constantele matrice nu pot conține matrice suplimentare, formule sau funcții. Cu alte cuvinte, pot conține numai text sau numere separate prin bare oblice inverse sau punct și virgulă. Excel afișează un mesaj de avertisment când introduceți o formulă ca {1\2\A1:D4} sau {1\2\SUM(Q2:Z8)}. De asemenea, valorile numerice nu pot conține semnul procent, semnul dolar, bare oblice inverse sau paranteze.
Una dintre cele mai bune modalități de a utiliza constantele matrice este denumirea acestora. Constantele denumite pot fi mai ușor de utilizat și pot face formulele matrice mai ușor de înțeles de către alte persoane. Pentru a denumi o constantă matrice și a o utiliza într-o formulă, procedați astfel:
-
În fila Formule, în grupul Nume definite, faceți clic pe Definire nume.
Apare caseta de dialog Definire nume. -
În caseta Nume, tastați Trimestru1.
-
În caseta Se referă la:, introduceți următoarea constantă (nu uitați să introduceți acoladele):
={"Ianuarie"\"Februarie"\"Martie"}
Conținutul casetei de dialog arată acum astfel:
-
Faceți clic pe OK, apoi selectați un rând de trei celule necompletate.
-
Tastați următoarea formulă, apoi apăsați Ctrl+Shift+Enter.
=Trimestru1
Se afișează următorul rezultat.
Când utilizați o constantă denumită ca formulă matrice, nu uitați să introduceți semnul egal. Dacă nu faceți acest lucru, Excel interpretează matricea ca șir de text și formula dvs. nu va funcționa așa cum vă așteptați. În cele din urmă, rețineți că puteți utiliza combinații de text și numere.
Când constantele matrice nu funcționează, verificați dacă există următoarele probleme:
-
Este posibil ca unele elemente să nu fie separate cu caracterul corect, conform setărilor regionale. Dacă omiteți o virgulă sau un punct și virgulă sau dacă plasați unul dintre aceste simboluri unde nu trebuie, este posibil să nu se creeze corect constanta matrice sau ați putea vedea un mesaj de avertisment.
-
Este posibil să fi selectat o zonă de celule care nu se potrivește cu numărul de elemente din constantă. De exemplu, dacă selectați o coloană de șase celule pentru a o utiliza cu o constantă de cinci celule, va apărea valoarea de eroare #N/A în celula necompletată. În același mod, dacă selectați prea puține celule, Excel omite valorile care nu au o celulă corespondentă.
Următoarele exemple demonstrează câteva dintre modurile în care se pot utiliza constantele matrice în formulele matrice. Unele dintre exemple utilizează funcția TRANSPOSE pentru a converti rânduri în coloane și invers.
Înmulțirea fiecărui element dintr-o matrice
-
Creați o foaie de lucru nouă și apoi selectați o zonă de celule necompletate de patru coloane lățime și trei rânduri înălțime.
-
Tastați următoarea formulă, apoi apăsați Ctrl+Shift+Enter:
={1\2\3\4;5\6\7\8;9\10\11\12}*2
Ridicați la pătrat elementele dintr-o matrice
-
Selectați o zonă de celule necompletate de patru coloane lățime și trei rânduri înălțime.
-
Tastați următoarea formulă matrice, apoi apăsați Ctrl+Shift+Enter:
={1\2\3\4;5\6\7\8;9\10\11\12}*{1\2\3\4;5\6\7\8;9\10\11\12}
Ca alternativă, introduceți această formulă matrice, care utilizează operatorul caret (^):
={1\2\3\4;5\6\7\8;9\10\11\12}^2
Transpunerea unui rând unidimensional
-
Selectați o coloană de cinci celule necompletate.
-
Tastați următoarea formulă, apoi apăsați Ctrl+Shift+Enter:
=TRANSPOSE({1\2\3\4\5})
Chiar dacă ați introdus o constantă matrice orizontală, funcția TRANSPOSE efectuează conversia constantei matrice într-o coloană.
Transpunerea unei coloane unidimensionale
-
Selectați un rând de cinci celule necompletate.
-
Introduceți următoarea formulă, apoi apăsați Ctrl+Shift+Enter:
=TRANSPOSE({1;2;3;4;5})
Chiar dacă ați introdus o constantă matrice verticală, funcția TRANSPOSE efectuează conversia constantei într-un rând.
Transpunerea unei constante bidimensionale
-
Selectați o zonă de celule de trei coloane lățime și patru rânduri înălțime.
-
Introduceți următoarea constantă, apoi apăsați Ctrl+Shift+Enter:
=TRANSPOSE({1\2\3\4;5\6\7\8;9\10\11\12})
Funcția TRANSPOSE efectuează conversia fiecărui rând într-o serie de coloane.
Această secțiune oferă exemple de formule matrice simple.
Crearea matricelor și a constantelor matrice din valori existente
Următorul exemplu arată cum se utilizează formulele matrice pentru a crea legături între zonele de celule din diferitele foi de lucru. De asemenea, vă arată cum să creați o constantă matrice din același set de valori.
Crearea unei matrice din valori existente
-
Într-o foaie de lucru din Excel, selectați celulele C8:E10 și introduceți această formulă:
={10\20\30;40\50\60;70\80\90}
Asigurați-vă că tastați { (acoladă deschisă) înainte de a tasta 10 și } (acoladă închisă) după ce tastați 90, deoarece creați o matrice de numere.
-
Apăsați Ctrl+Shift+Enter, care introduce această matrice de numere în zona de celule C8:E10, utilizând o formulă matrice. Pe foaia de lucru, C8 până la E10 ar trebui să arate astfel:
10
20
30
40
50
60
70
80
90
-
Selectați zona de celule C1 până la E3.
-
Introduceți următoarea formulă în bara de formule, apoi apăsați Ctrl+Shift+Enter:
=C8:E10
O matrice de celule 3x3 apare în celulele de la C1 la E3, cu aceleași valori pe care le vedeți în celulele de la C8 la E10.
Crearea unei constante matrice din valori existente
-
Cu celulele C1:C3 selectate, apăsați F2 pentru a trece în modul de editare.
-
Apăsați pe F9 pentru a converti referințele de celule în valori. Excel convertește valorile într-o constantă matrice. Acum, formula ar trebui să fie ={10\20\30;40\50\60;70\80\90}.
-
Apăsați Ctrl+Shift+Enter pentru a introduce constanta matrice ca formulă matrice.
Contorizarea caracterelor dintr-o zonă de celule
Următorul exemplu vă arată cum să contorizați numărul de caractere, inclusiv spațiile, dintr-o zonă de celule.
-
Copiați tot tabelul și lipiți-l într-o foaie de lucru în celula A1.
Date
Acesta este
un interval de celule care
luate împreună
formează
o singură propoziție.
Total caractere în A2:A6
=SUM(LEN(A2:A6))
Conținutul celei mai lungi celule (A3)
=INDEX(A2:A6;MATCH(MAX(LEN(A2:A6));LEN(A2:A6);0);1)
-
Selectați celula A8 și apoi apăsați Ctrl+Shift+Enter pentru a vedea numărul total de caractere din celulele A2:A6 (66).
-
Selectați celula A10 și apoi apăsați Ctrl+Shift+Enter pentru a vedea conținutul celei mai lungi dintre celulele A2:A6 (celula A3).
Formula următoare utilizată în celula A8 contorizează totalul caracterelor (66) din celulele A2 până la A6.
=SUM(LEN(A2:A6))
În acest caz, funcția LEN returnează lungimea fiecărui șir text din fiecare celulă din zonă. Funcția SUM adună apoi acele valori și afișează rezultatul (66).
Găsirea celor mai mici n valori dintr-o zonă
Acest exemplu vă arată cum să găsiți cele mai mici trei valori dintr-o zonă de celule.
-
Introduceți câteva numere aleatoare în celulele A1:A11.
-
Selectați celulele de la C1 până la C3. Acest set de celule va conține rezultatele returnate de formula matrice.
-
Introduceți următoarea formulă, apoi apăsați Ctrl+Shift+Enter:
=SMALL(A1:A11,{1;2;3})
Această formulă utilizează o constantă matrice pentru a evalua funcția SMALL de trei ori și a returna cea mai mică valoare (1), a doua cea mai mică valoare (2) și a treia cea mai mică valoare (3) din matricea conținută în celulele A1:A10. Pentru a găsi mai multe valori, adăugați mai multe argumente la constantă. De asemenea, aveți posibilitatea să utilizați funcții suplimentare cu această formulă, cum ar fi SUM sau AVERAGE. De exemplu:
=SUM(SMALL(A1:A10,{1\2\3})
=AVERAGE(SMALL(A1:A10,{1\2\3})
Găsirea celor mai mari n valori dintr-o zonă
Pentru a găsi cele mai mari valori dintr-o zonă, puteți să înlocuiți funcția SMALL cu funcția LARGE. În plus, următorul exemplu utilizează funcțiile ROW și INDIRECT.
-
Selectați celulele de la D1 până la D3.
-
În bara de formule, introduceți această formulă, apoi apăsați Ctrl+Shift+Enter:
=LARGE(A1:A10,ROW(INDIRECT("1:3")))
Acum, poate fi util să cunoașteți câteva lucruri despre funcțiile ROW și INDIRECT. Aveți posibilitatea să utilizați funcția ROW pentru a crea o matrice de numere întregi consecutive. De exemplu, selectați o coloană goală de 10 celule din registrul de lucru de exerciții, introduceți această formulă matrice, apoi apăsați Ctrl+Shift+Enter:
=ROW(1:10)
Formula creează o coloană de 10 numere întregi consecutive. Pentru a vedea o posibilă problemă, introduceți un rând deasupra rândului care conține formula matrice (adică deasupra rândului 1). Excel reglează referința de rând, iar formula generează numere întregi de la 2 la 11. Pentru a remedia problema, adăugați funcția INDIRECT la formulă:
=ROW(INDIRECT("1:10"))
Funcția INDIRECT utilizează șiruri text ca argumente (motiv pentru care zona 1:10 este încadrată de ghilimele duble). Excel nu ajustează valorile text atunci când introduceți rânduri sau mutați formula matrice. Drept urmare, funcția ROW generează întotdeauna matricea de numere întregi dorită.
Să examinăm formula pe care ați utilizat-o anterior - =LARGE(A5:A14,ROW(INDIRECT("1:3"))) - începând de la parantezele interioare și lucrând spre exterior: funcția INDIRECT returnează un set de valori text, în acest caz, valorile de la 1 la 3. Funcția ROW generează, la rândul ei, o matrice de coloane cu trei celule. Funcția LARGE utilizează valorile din zona de celule A5:A14 și este evaluată de trei ori, câte o dată pentru fiecare referință returnată de funcția ROW. Valorile 3200, 2700 și 2000 sunt returnate la matricea de coloane cu trei celule. Dacă doriți să găsiți mai multe valori, adăugați o zonă de celule mai mare la funcția INDIRECT.
Ca în cazul exemplelor anterioare, puteți utiliza această formulă cu alte funcții, cum ar fi SUM și AVERAGE.
Găsirea celui mai lung șir text dintr-o zonă de celule
Reveniți la exemplul mai vechi de șir text, introduceți următoarea formulă într-o celulă necompletată și apăsați Ctrl+Shift+Enter:
=INDEX(A2:A6,MATCH(MAX(LEN(A2:A6)),LEN(A2:A6),0),1)
Apare textul „un interval de celule care”.
Să examinăm formula, începând de la elementele interioare și mergând spre exterior. Funcția LEN returnează lungimea fiecăruia dintre elementele din zona de celule A2:A6. Funcția MAX calculează cea mai mare valoare dintre aceste elemente, care corespunde celui mai lung șir text, care se află în celula A3.
Aici lucrurile devin mai complicate. Funcția MATCH calculează deplasarea (poziția relativă) celulei care conține cel mai lung șir text. Pentru a face aceasta, are nevoie de trei argumente: o valoare de căutare, o matrice de căutare și un tip de matrice. Funcția MATCH caută în matricea de căutare pentru a găsi valoarea de căutare dorită. În acest caz, valoarea de căutare este cel mai lung șir text:
(MAX(LEN(A2:A6))
iar acel șir se află în această matrice:
LEN(A2:A6)
Argumentul tipului de potrivire este 0. Tipul de potrivire poate fi valoarea 1, 0 sau -1. Dacă specificați 1, MATCH returnează cea mai mare valoare care este mai mică sau egală cu valoarea de căutare. Dacă specificați 0, MATCH returnează prima valoare care este exact egală cu valoarea de căutare. Dacă specificați -1, MATCH găsește cea mai mică valoare care este mai mare sau egală cu valoarea de căutare specificată. Dacă omiteți tipul de potrivire, Excel stabilește valoarea 1.
În fine, funcția INDEX preia aceste argumente: o matrice și un număr de rând sau coloană din acea matrice. Zona de celule A2:A6 oferă matricea, funcția MATCH oferă adresa celulei, iar argumentul final (1) specifică faptul că valoarea provine din prima coloană a matricei.
Această secțiune oferă exemple de formule matrice complexe.
Însumarea unei zone care conține valori eroare
Funcția SUM din Excel nu funcționează când încercați să însumați o zonă care conține o valoare de eroare, cum ar fi #N/A. Acest exemplu vă arată cum să însumați valorile dintr-o zonă denumită Date, care conține erori.
=SUM(IF(ISERROR(Date);"";Date))
Formula creează o matrice nouă, care conține valorile inițiale minus valorile eroare. Începând de la funcțiile din interior și mergând înspre exterior, funcția ISERROR caută în zona de celule (Date) pentru a găsi erori. Funcția IF returnează o anumită valoare dacă o condiție pe care o specificați este evaluată ca adevărată și altă valoare dacă este evaluată ca fiind falsă. În acest caz, returnează șiruri goale ("") pentru toate valorile eroare, deoarece acestea sunt evaluate ca o condiție adevărată, și returnează restul valorilor din zona de celule (Date), deoarece sunt evaluate ca false, adică nu conțin valori eroare. Funcția SUM calculează apoi totalul pentru matricea filtrată.
Contorizarea numărului de valori eroare dintr-o zonă
Acest exemplu este similar cu formula anterioară, dar returnează numărul de valori eroare dintr-o zonă denumită Date, în loc să le filtreze:
=SUM(IF(ISERROR(Date);1;0))
Această formulă creează o matrice care conține valoare 1 pentru celulele care conțin erori și valoarea 0 pentru celulele care nu conțin erori. Aveți posibilitatea să simplificați formula și să obțineți același rezultat eliminând al treilea argument pentru funcția IF, astfel:
=SUM(IF(ISERROR(Date);1))
Dacă nu specificați argumentul, funcția IF returnează FALSE dacă o celulă nu conține o valoare de eroare. Aveți posibilitatea să simplificați formula și mai mult:
=SUM(IF(ISERROR(Date)*1))
Această versiune funcționează deoarece TRUE*1=1 și FALSE*1=0.
Însumarea valorilor pe baza condițiilor
Poate fi necesar să însumați valorile pe baza unor condiții. De exemplu, această formulă matrice însumează numai numerele întregi pozitive dintr-o zonă denumită Vânzări:
=SUM(IF(Vânzări>0;Vânzări))
Funcția IF creează o matrice de valori pozitive și valori false. Funcția SUM ignoră practic valorile false, deoarece 0+0=0. Zona de celule pe care o utilizați în această formulă poate consta în orice număr de rânduri și coloane.
De asemenea, aveți posibilitatea să însumați valorile care respectă mai multe condiții. De exemplu, această formulă matrice calculează valorile mai mari decât 0 și mai mici sau egale cu 5:
=SUM((Vânzări>0)*(Vânzări<=5)*(Vânzări))
Rețineți că această formulă va returna o eroare dacă zona conține una sau mai multe celule non-numerice.
De asemenea, aveți posibilitatea să creați formule matrice care utilizează un tip de condiție OR (SAU). De exemplu, aveți posibilitatea să însumați valorile mai mici de 5 și mai mari de 15:
=SUM(IF((Vânzări<5)+(Vânzări>15);Vânzări))
Funcția IF găsește toate valorile mai mici decât 5 și mai mari decât 15, apoi transmite acele valori la funcția SUM.
Nu aveți posibilitatea să utilizați funcțiile AND și OR în formulele matrice în mod direct, deoarece acele funcții returnează un singur rezultat, TRUE sau FALSE, iar funcțiile matrice necesită matrici de rezultate. Aveți posibilitatea să rezolvați problema utilizând elementele logice din formula anterioară. Cu alte cuvinte, efectuați operațiuni matematice, cum ar fi adunarea sau înmulțirea, pentru valori care respectă condiția OR (SAU) sau AND (ȘI).
Calculul unei medii care exclude zerourile
Acest exemplu arată cum să eliminați valorile zero dintr-o zonă atunci când trebuie să calculați o medie a valorilor din acea zonă. Formula utilizează o zonă de date denumită Vânzări:
=AVERAGE(IF(Vânzări<>0;Vânzări))
Funcția IF creează o matrice de valori care nu sunt egale cu 0 și transmite acele valori la funcția AVERAGE.
Contorizarea numărului de diferențe dintre două zone de celule
Această formulă matrice compară valorile din două zone de celule denumite DateleMele și DateleTale și returnează numărul de diferențe dintre cele două. Dacă conținutul celor două zone este identic, formula returnează 0. Pentru a utiliza această formulă, zonele de celule trebuie să fie de aceeași mărime și de aceeași dimensiune (de exemplu, dacă DateleMele reprezintă o zonă de 3 rânduri pe 5 coloane, DateleTale trebuie, de asemenea, să aibă 3 rânduri pe 5 coloane):
=SUM(IF(DateleMele=DateleTale,0,1))
Formula creează o matrice nouă de aceeași dimensiune ca zonele pe care le comparați. Funcția IF completează matricea cu valoarea 0 și valoarea 1 (0 pentru nepotriviri și 1 pentru celule identice). Funcția SUM returnează suma valorilor din matrice.
Formula poate fi simplificată astfel:
=SUM(1*(DateleMele<>DateleTale))
La fel ca formula care contorizează valorile eroare dintr-o zonă de date, această formulă funcționează deoarece TRUE*1=1 și FALSE*1=0.
Găsirea locației valorii maxime dintr-o zonă
Această formulă matrice returnează numărul de rând al valorii maxime dintr-o zonă cu o singură coloană denumită Date:
=MIN(IF(Date=MAX(Date);ROW(Date);""))
Funcția IF creează o matrice nouă, care corespunde cu zona denumită Date. Dacă o celulă corespondentă conține valoarea maximă din zonă, matricea conține numărul de rând. Altfel, matricea conține un șir gol (""). Funcția MIN utilizează matricea nouă ca al doilea argument și returnează cea mai mică valoare, care corespunde cu numărul de rând al valorii maxime din Date. Dacă zona denumită Date conține valori maxime identice, formula returnează rândul primei valori.
Dacă doriți să returnați adresa efectivă a celulei în care se află valoarea maximă, utilizați această formulă:
=ADDRESS(MIN(IF(Date=MAX(Date);ROW(Date);""));COLUMN(Date))
Confirmare
Părți ale acestui articol se bazează pe o serie de articole Excel Power User scrise de Colin Wilcox și adaptate din capitolele 14 și 15 din Excel 2002 Formulas (Formule Excel 2002), o carte scrisă de John Walkenbach, fost MVP Excel.
Aveți nevoie de ajutor suplimentar?
Puteți oricând să întrebați un expert din Comunitatea tehnică Excel sau să obțineți asistență în Comunități.
Consultați și
Matricele dinamice și comportamentul matricelor vărsate
Formule matrice dinamice versus formule matrice CSE moștenite