Cuprins
În acest tutorial, veți găsi o serie de exemple de formule care demonstrează cele mai eficiente utilizări ale INDEX în Excel.
Dintre toate funcțiile Excel a căror putere este deseori subestimată și subutilizată, INDEX s-ar clasa cu siguranță undeva în top 10. Între timp, această funcție este inteligentă, suplă și versatilă.
Deci, ce este funcția INDEX în Excel? În esență, o formulă INDEX returnează o referință de celulă dintr-o anumită matrice sau interval. Cu alte cuvinte, utilizați INDEX atunci când cunoașteți (sau puteți calcula) poziția unui element într-un interval și doriți să obțineți valoarea reală a acelui element.
Acest lucru poate părea puțin banal, dar odată ce realizați potențialul real al funcției INDEX, aceasta ar putea aduce schimbări cruciale în modul în care calculați, analizați și prezentați datele din foile de calcul.
Funcția Excel INDEX - sintaxă și utilizări de bază
Există două versiuni ale funcției INDEX în Excel - forma de matrice și forma de referință. Ambele forme pot fi utilizate în toate versiunile Microsoft Excel 365 - 2003.
Forma de matrice INDEX
Formularul de matrice INDEX returnează valoarea unui anumit element dintr-un interval sau dintr-o matrice pe baza numerelor de rând și de coloană pe care le specificați.
INDEX(array, row_num, [column_num])- array - este un interval de celule, un interval numit sau un tabel.
- număr_ rând - este numărul rândului din tablou din care se returnează o valoare. Dacă row_num este omis, este necesar column_num.
- număr_coloană - este numărul coloanei din care se returnează o valoare. În cazul în care column_num este omis, este necesar row_num.
De exemplu, formula =INDEX(A1:D6, 4, 3)
returnează valoarea de la intersecția dintre al patrulea rând și a treia coloană din intervalul A1:D6, care este valoarea din celula C4.
Pentru a vă face o idee despre modul în care funcționează formula INDEX pe date reale, vă rugăm să vă uitați la următorul exemplu:
În loc să introduceți numerele rândurilor și coloanelor în formulă, puteți furniza referințele celulelor pentru a obține o formulă mai universală: =INDEX($B$2:$D$6, G2, G1)
Astfel, această formulă INDEX returnează numărul de articole exact la intersecția dintre numărul de produs specificat în G2 (număr_rând) și numărul săptămânii introdus în celula G1 (număr_coloană).
Sfat. Utilizarea referințelor absolute ($B$2:$D$6) în loc de referințe relative (B2:D6) în argumentul matricei facilitează copierea formulei în alte celule. Alternativ, puteți converti un interval într-un tabel ( Ctrl + T ) și să faceți referire la acesta prin numele tabelului.
Formularul de matrice INDEX - lucruri de reținut
- În cazul în care argumentul matricei este format dintr-un singur rând sau coloană, puteți sau nu să specificați argumentul row_num sau column_num corespunzător.
- Dacă argumentul array include mai mult de un rând, iar row_num este omis sau setat la 0, funcția INDEX returnează un array al întregii coloane. În mod similar, dacă array include mai mult de o coloană, iar argumentul column_num este omis sau setat la 0, formula INDEX returnează întregul rând. Iată un exemplu de formulă care demonstrează acest comportament.
- Argumentele row_num și column_num trebuie să se refere la o celulă din matrice; în caz contrar, formula INDEX va returna eroarea #REF!.
Formular de referință INDEX
Forma de referință a funcției Excel INDEX returnează referința celulei de la intersecția dintre rândul și coloana specificate.
INDEX(referință, număr_rând, [număr_coloană], [număr_zonă] )- referință - este unul sau mai multe intervale.
Dacă introduceți mai multe intervale, separați intervalele prin virgule și includeți argumentul de referință între paranteze, de exemplu (A1:B5, D1:F5).
În cazul în care fiecare interval din referință conține un singur rând sau o singură coloană, argumentul row_num sau column_num corespunzător este opțional.
- număr_ rând - numărul rândului din intervalul din care se returnează o referință de celulă, este similar cu forma de matrice.
- număr_coloană - numărul coloanei din care se returnează o referință de celulă, funcționează, de asemenea, în mod similar cu forma de matrice.
- număr_zonă - un parametru opțional care specifică intervalul din argumentul de referință care trebuie utilizat. Dacă este omis, formula INDEX va returna rezultatul pentru primul interval listat în referință.
De exemplu, formula =INDEX((A2:D3, A5:D7), 3, 4, 2)
returnează valoarea celulei D7, care se află la intersecția dintre al treilea rând și a patra coloană din a doua zonă (A5:D7).
Formularul de referință INDEX - lucruri de reținut
- În cazul în care argumentul row_num sau column_num este setat la zero (0), o formulă INDEX returnează referința pentru întreaga coloană, respectiv pentru întregul rând.
- În cazul în care atât numărul rândului_num și numărul coloanei_num sunt omise, funcția INDEX returnează zona specificată în argumentul numărul zonei_num.
- Toate argumentele _num (row_num, column_num și area_num) trebuie să se refere la o celulă în cadrul referinței; în caz contrar, formula INDEX va returna eroarea #REF!.
Ambele formule INDEX pe care le-am discutat până acum sunt foarte simple și doar ilustrează conceptul. Formulele dvs. reale sunt probabil mult mai complexe decât acestea, așa că haideți să explorăm câteva dintre cele mai eficiente utilizări ale INDEX în Excel.
Cum se utilizează funcția INDEX în Excel - exemple de formule
Poate că nu există multe utilizări practice ale Excel INDEX de unul singur, dar în combinație cu alte funcții, cum ar fi MATCH sau COUNTA, se pot crea formule foarte puternice.
Date sursă
Pentru toate formulele noastre INDEX (cu excepția ultimei), vom folosi datele de mai jos. Pentru comoditate, acestea sunt organizate într-un tabel numit Date sursă .
Utilizarea tabelelor sau a intervalelor denumite poate face ca formulele să fie puțin mai lungi, dar le face, de asemenea, mult mai flexibile și mai ușor de citit. Pentru a ajusta orice formulă INDEX pentru foile de calcul, trebuie doar să modificați un singur nume, iar acest lucru compensează pe deplin lungimea mai mare a formulei.
Desigur, nimic nu vă împiedică să folosiți intervale obișnuite, dacă doriți. În acest caz, pur și simplu înlocuiți numele tabelului Date sursă cu intervalul de referință corespunzător.
1. Obținerea celui de-al N-lea element din listă
Aceasta este utilizarea de bază a funcției INDEX și cea mai simplă formulă de realizat. Pentru a prelua un anumit element din listă, trebuie doar să scrieți =INDEX(interval, n)
unde gama este un interval de celule sau un interval numit, iar n este poziția elementului pe care doriți să îl obțineți.
Atunci când lucrați cu tabele Excel, puteți selecta coloana cu ajutorul mouse-ului, iar Excel va extrage numele coloanei împreună cu numele tabelului în formulă:
Pentru a obține o valoare a celulei de la intersecția dintre un anumit rând și o anumită coloană, utilizați aceeași abordare cu singura diferență că trebuie să specificați ambele - numărul rândului și numărul coloanei. De fapt, ați văzut deja o astfel de formulă în acțiune atunci când am discutat despre forma de matrice INDEX.
Și iată încă un exemplu. În tabelul nostru de exemplu, pentru a găsi a doua cea mai mare planetă din sistemul solar, sortați tabelul după valoarea Diametru și utilizați următoarea formulă INDEX:
=INDEX(SourceData, 2, 3)
Array
este numele tabelului sau o referință de interval, Date sursă în acest exemplu.Număr_ rând
este 2, deoarece căutați al doilea element din listă, care se află în al 2-leaNumărul coloanei
este 3, deoarece Diametru este a treia coloană din tabel.
Dacă doriți să returnați numele planetei și nu diametrul, schimbați column_num la 1. Și, bineînțeles, puteți utiliza o referință de celulă în argumentele row_num și/sau column_num pentru a face formula dvs. mai versatilă, așa cum se demonstrează în captura de ecran de mai jos:
2. Obținerea tuturor valorilor dintr-un rând sau dintr-o coloană
În afară de recuperarea unei singure celule, funcția INDEX este capabilă să returneze un array de valori din întregul rând sau coloana Pentru a obține toate valorile dintr-o anumită coloană, trebuie să omiteți argumentul row_num sau să îl setați la 0. De asemenea, pentru a obține întregul rând, treceți o valoare goală sau 0 în column_num.
Astfel de formule INDEX nu pot fi utilizate de sine stătător, deoarece Excel nu poate încadra matricea de valori returnate de formulă într-o singură celulă și, în schimb, veți primi eroarea #VALUE! Cu toate acestea, dacă utilizați INDEX împreună cu alte funcții, cum ar fi SUM sau AVERAGE, veți obține rezultate extraordinare.
De exemplu, puteți utiliza următoarea formulă pentru a calcula temperatura medie a planetelor din sistemul solar:
=AVERAGE(INDEX(SourceData, , 4))
În formula de mai sus, argumentul column_num este 4, deoarece Temperatura în a patra coloană din tabelul nostru. Parametrul row_num este omis.
În mod similar, puteți găsi temperaturile minime și maxime:
=MAX(INDEX(SourceData, , 4))
=MIN(INDEX(SourceData, , 4))
Și calculați masa totală a planetei (Masa este a doua coloană din tabel):
=SUM(INDEX(SourceData, , 2))
Din punct de vedere practic, funcția INDEX din formula de mai sus este superfluă. Se poate scrie pur și simplu =AVERAGE(range)
sau =SUM(interval)
și obțineți aceleași rezultate.
Atunci când lucrați cu date reale, această caracteristică se poate dovedi utilă ca parte a unor formule mai complexe pe care le utilizați pentru analiza datelor.
3. Utilizarea INDEX cu alte funcții (SUM, AVERAGE, MAX, MIN)
Din exemplele anterioare, s-ar putea să aveți impresia că o formulă INDEX returnează valori, dar realitatea este că ea returnează un referință în celula care conține valoarea. Și acest exemplu demonstrează adevărata natură a funcției Excel INDEX.
Deoarece rezultatul unei formule INDEX este o referință, o putem utiliza în cadrul altor funcții pentru a face o referință. gama dinamică Sună confuz? Următoarea formulă va clarifica totul.
Să presupunem că aveți o formulă =MEDIA(A1:A10)
care returnează o medie a valorilor din celulele A1:A10. În loc să scrieți intervalul direct în formulă, puteți înlocui A1 sau A10, sau ambele, cu funcțiile INDEX, după cum urmează:
=MEDIA(A1 : INDEX(A1:A20,10))
Ambele formule de mai sus vor furniza același rezultat deoarece funcția INDEX returnează, de asemenea, o referință la celula A10 (row_num este setat la 10, col_num omis). Diferența este că intervalul este formula AVERAGE / INDEX este dinamic și, odată ce schimbați argumentul row_num în INDEX, intervalul procesat de funcția AVERAGE se va schimba și formula va returna un rezultat diferit.
Aparent, traseul formulei INDEX pare prea complicat, dar are aplicații practice, așa cum se demonstrează în următoarele exemple.
Exemplul 1. Calculați media primelor N elemente din listă
Să presupunem că doriți să aflați diametrul mediu al celor mai mari N planete din sistemul nostru. Așadar, sortați tabelul în funcție de Diametru coloana de la cel mai mare la cel mai mic și utilizați următoarea formulă Media / Indice:
=AVERAGE(C5 : INDEX(SourceData[Diameter], B1))
Exemplul 2. Suma elementelor dintre cele două elemente specificate
În cazul în care doriți să definiți elementele de limită superioară și de limită inferioară în formula dumneavoastră, trebuie doar să utilizați două funcții INDEX pentru a returna primul și ultimul element dorit.
De exemplu, următoarea formulă returnează suma valorilor din Diametru coloană între cele două elemente specificate în celulele B1 și B2:
=SUM(INDEX(SourceData[Diametru],B1) : INDEX(SourceData[Diametru], B2))
4. Formula INDEX pentru a crea intervale dinamice și liste derulante
Așa cum se întâmplă adesea, atunci când începi să organizezi datele într-o foaie de calcul, s-ar putea să nu știi câte intrări vei avea în cele din urmă. Nu este cazul tabelului nostru cu planete, care pare să fie complet, dar cine știe...
Oricum, dacă aveți un număr variabil de elemente într-o anumită coloană, de exemplu de la A1 la A n , este posibil să doriți să creați un interval numit dinamic care să includă toate celulele cu date. În acest caz, doriți ca intervalul să se ajusteze automat pe măsură ce adăugați elemente noi sau ștergeți unele dintre cele existente. De exemplu, dacă aveți în prezent 10 elemente, intervalul numit este A1:A10. Dacă adăugați o nouă intrare, intervalul numit se extinde automat la A1:A11, iar dacă vă răzgândiți și ștergeți datele nou adăugate,intervalul revine automat la A1:A10.
Principalul avantaj al acestei abordări este că nu trebuie să actualizați în mod constant toate formulele din registrul de lucru pentru a vă asigura că acestea se referă la intervale corecte.
O modalitate de a defini un interval dinamic este utilizarea funcției OFFSET din Excel:
=OFFSET(Nume_foaie!$A$1, 0, 0, 0, COUNTA(Nume_foaie!$A:$A), 1)
O altă soluție posibilă este utilizarea Excel INDEX împreună cu COUNTA:
=Nume_foaie!$A$1:INDEX(Nume_foaie!$A:$A, COUNTA(Nume_foaie!$A:$A))
În ambele formule, A1 este celula care conține primul element din listă, iar intervalul dinamic produs de ambele formule va fi identic.
Diferența constă în abordări. În timp ce funcția OFFSET se deplasează de la punctul de plecare cu un anumit număr de rânduri și/sau coloane, INDEX găsește o celulă la intersecția unui anumit rând și a unei anumite coloane. Funcția COUNTA, utilizată în ambele formule, obține numărul de celule nevide din coloana de interes.
În acest exemplu, există 9 celule care nu sunt goale în coloana A, astfel încât COUNTA returnează 9. În consecință, INDEX returnează $A$9, care este ultima celulă utilizată în coloana A (de obicei, INDEX returnează o valoare, dar în această formulă, operatorul de referință (:) îl obligă să returneze o referință). Și deoarece $A$1 este punctul nostru de plecare, rezultatul final al formulei este intervalul $A$1:$A$9.
Următoarea captură de ecran demonstrează modul în care puteți utiliza o astfel de formulă Index pentru a crea o listă derulantă dinamică.
Sfat: Cel mai simplu mod de a crea o listă derulantă actualizată în mod dinamic este de a crea o listă cu nume bazată pe un tabel. În acest caz, nu veți avea nevoie de formule complexe, deoarece tabelele Excel sunt intervale dinamice în sine.
De asemenea, puteți utiliza funcția INDEX pentru a crea liste derulante dependente, iar următorul tutorial explică pașii: Realizarea unei liste derulante în cascadă în Excel.
5. Vlookup-uri puternice cu INDEX / MATCH
Efectuarea de căutări verticale - aici este locul în care funcția INDEX strălucește cu adevărat. Dacă ați încercat vreodată să utilizați funcția Excel VLOOKUP, cunoașteți foarte bine numeroasele sale limitări, cum ar fi incapacitatea de a extrage valori din coloanele din stânga coloanei de căutare sau limita de 255 de caractere pentru o valoare de căutare.
Legătura INDEX / MATCH este superioară VLOOKUP în multe privințe:
- Nu există probleme cu vlookups stânga.
- Nu există nicio limită pentru dimensiunea valorii de căutare.
- Nu este necesară sortarea (VLOOKUP cu potrivire aproximativă necesită sortarea coloanei de căutare în ordine crescătoare).
- Aveți libertatea de a introduce și elimina coloane într-un tabel fără a actualiza fiecare formulă asociată.
- Și, nu în ultimul rând, INDEX / MATCH nu încetinește Excel-ul, așa cum o fac mai multe Vlookup-uri.
Utilizați INDEX / MATCH în felul următor:
=INDEX ( pentru a returna o valoare din coloana , (MATCH ( valoarea de căutare , coloană pentru a căuta în funcție de , 0))De exemplu, dacă întoarcem tabelul sursă astfel încât Numele planetei devine cea mai din dreapta coloană, formula INDEX / MATCH continuă să obțină fără probleme o valoare corespunzătoare din coloana din stânga.
Pentru mai multe sfaturi și exemple de formule, consultați tutorialul Excel INDEX / MATCH.
6. Formula Excel INDEX pentru a obține 1 interval dintr-o listă de intervale
O altă utilizare inteligentă și puternică a funcției INDEX din Excel este capacitatea de a obține un interval dintr-o listă de intervale.
Să presupunem că aveți mai multe liste cu un număr diferit de elemente în fiecare. Credeți-mă sau nu, puteți calcula media sau suma valorilor din orice interval selectat cu o singură formulă.
În primul rând, creați un interval numit pentru fiecare listă; să fie PlaneteD și LuniD în acest exemplu:
Sper că imaginea de mai sus explică raționamentul din spatele denumirilor intervalelor : ) BTW, intervalul Luni tabelul este departe de a fi complet, există 176 de sateliți naturali cunoscuți în sistemul nostru solar, numai Jupiter are 63 în prezent, și continuă să numere. Pentru acest exemplu, am ales la întâmplare 11, ei bine... poate nu chiar la întâmplare - sateliți cu cele mai frumoase nume : )
Vă rugăm să scuzați divagația, revenind la formula noastră INDEX. Presupunând că PlaneteD este intervalul 1 și LuniD este intervalul 2, iar celula B1 este cea în care ați introdus numărul intervalului, puteți utiliza următoarea formulă Index pentru a calcula media valorilor din intervalul selectat:
=AVERAGE(INDEX((PlanetsD, MoonsD), , , , B1))
Vă rugăm să fiți atenți la faptul că acum folosim forma de referință a funcției INDEX, iar numărul din ultimul argument (area_num) indică formulei ce interval să aleagă.
În captura de ecran de mai jos, area_num (celula B1) este setată la 2, astfel încât formula calculează diametrul mediu al Luni deoarece intervalul LuniD se află pe locul 2 în argumentul de referință.
Dacă lucrați cu mai multe liste și nu doriți să vă deranjați să vă amintiți numerele asociate, puteți utiliza o funcție IF imbricata pentru a face acest lucru în locul dumneavoastră:
=AVERAGE(INDEX((PlanetsD, MoonsD), , , , IF(B1="planete", 1, IF(B1="luni", 2))))
În funcția IF, utilizați câteva nume de liste simple și ușor de reținut pe care doriți ca utilizatorii dvs. să le introducă în celula B1 în loc de numere. Vă rugăm să rețineți că, pentru ca formula să funcționeze corect, textul din B1 trebuie să fie exact același (fără deosebire de majuscule și minuscule) cu cel din parametrii IF, altfel formula Index va genera eroarea #VALUE.
Pentru ca formula să fie și mai ușor de utilizat, puteți utiliza validarea datelor pentru a crea o listă derulantă cu nume predefinite pentru a preveni erorile de ortografie și greșelile de tipar:
În cele din urmă, pentru ca formula INDEX să fie absolut perfectă, o puteți include în funcția IFERROR, care va solicita utilizatorului să aleagă un element din lista derulantă dacă nu a fost făcută încă nicio selecție:
=IFERROROR(AVERAGE(INDEX((PlanetsD, MoonsD), , , , IF(B1="planet", 1, IF(B1="moon", 2)))), "Please select the list!")
Acesta este modul în care se utilizează formulele INDEX în Excel. Sper că aceste exemple v-au arătat o modalitate de a valorifica potențialul funcției INDEX în foile de calcul. Vă mulțumesc pentru lectură!