Funcția Excel INDIRECT - utilizări de bază și exemple de formule

  • Imparte Asta
Michael Brown

Acest tutorial Excel INDIRECT explică sintaxa funcției, utilizările de bază și oferă o serie de exemple de formule care demonstrează modul de utilizare a funcției INDIRECT în Excel.

În Microsoft Excel există o mulțime de funcții, unele fiind ușor de înțeles, altele necesitând o curbă lungă de învățare, iar primele fiind folosite mai des decât cele din urmă. Și totuși, Excel INDIRECT este una dintre ele. Această funcție Excel nu efectuează niciun calcul și nici nu evaluează vreo condiție sau test logic.

Ei bine, atunci, ce este funcția INDIRECT în Excel și la ce o folosesc? Aceasta este o întrebare foarte bună și sperăm că veți primi un răspuns cuprinzător în câteva minute, după ce veți termina de citit acest tutorial.

    Funcția Excel INDIRECT - sintaxă și utilizări de bază

    După cum sugerează și numele său, Excel INDIRECT este utilizat pentru a face referință indirectă la celule, intervale, alte foi sau registre de lucru. Cu alte cuvinte, funcția INDIRECT vă permite să creați o referință dinamică la celule sau intervale în loc să le codificați în mod dur. Ca urmare, puteți schimba o referință în cadrul unei formule fără a modifica formula în sine. Mai mult, aceste referințe indirecte nu se vor schimba atunci când unele rânduri sau coloane noisunt inserate în foaia de calcul sau când ștergeți cele existente.

    Toate acestea pot fi mai ușor de înțeles dintr-un exemplu. Cu toate acestea, pentru a putea scrie o formulă, chiar și cea mai simplă, trebuie să cunoașteți argumentele funcției, nu-i așa? Așadar, haideți să aruncăm mai întâi o privire rapidă asupra sintaxei Excel INDIRECT.

    Sintaxa funcției INDIRECT

    Funcția INDIRECT din Excel returnează o referință de celulă dintr-un șir de text. Are două argumente, primul este obligatoriu, iar al doilea este opțional:

    INDIRECT(ref_text, [a1])

    ref_text - este o referință la o celulă sau o referință la o celulă sub forma unui șir de text sau a unui interval numit.

    a1 - este o valoare logică care specifică ce tip de referință este conținut în argumentul ref_text:

    • Dacă TRUE sau este omis, ref_text este interpretat ca o referință de celulă de tip A1.
    • Dacă este FALSE, ref_text este tratat ca o referință R1C1.

    În timp ce tipul de referință R1C1 poate fi util în anumite situații, probabil că veți dori să folosiți referințele familiare A1 de cele mai multe ori. În orice caz, aproape toate formulele INDIRECT din acest tutorial vor folosi referințe A1, așa că vom omite al doilea argument.

    Utilizarea de bază a funcției INDIRECT

    Pentru a intra în profunzimea funcției, haideți să scriem o formulă simplă care să demonstreze cum se utilizează INDIRECT în Excel.

    Să presupunem că aveți numărul 3 în celula A1 și textul A1 în celula C1. Acum, puneți formula =INDIRECT(C1) în orice altă celulă și vedeți ce se întâmplă:

    • Funcția INDIRECT se referă la valoarea din celula C1, care este A1.
    • Funcția este direcționată către celula A1, unde alege valoarea de returnat, care este numărul 3.

    Așadar, ceea ce face de fapt funcția INDIRECT în acest exemplu este conversia unui șir de text într-o referință de celulă .

    Dacă credeți că acest lucru are încă foarte puțin sens practic, vă rog să aveți răbdare cu mine și vă voi arăta mai multe formule care dezvăluie adevărata putere a funcției INDIRECT din Excel.

    Cum se utilizează INDIRECT în Excel - exemple de formule

    După cum s-a demonstrat în exemplul de mai sus, puteți utiliza funcția INDIRECT din Excel pentru a introduce adresa unei celule în alta ca un șir de text obișnuit și pentru a obține valoarea primei celule prin referire la cea de-a doua. Cu toate acestea, acest exemplu banal nu este decât o indicație a capacităților INDIRECT.

    Atunci când lucrați cu date reale, funcția INDIRECT poate transforma orice șir de text într-o referință, inclusiv șiruri foarte complexe pe care le construiți folosind valorile altor celule și rezultatele returnate de alte formule Excel. Dar să nu punem căruța înaintea boilor și să trecem în revistă mai multe formule Excel Indirect, una câte una.

    Crearea de referințe indirecte din valorile celulelor

    După cum vă amintiți, funcția INDIRECT din Excel permite stilurile de referință A1 și R1C1. De obicei, nu puteți utiliza ambele stiluri într-o singură foaie deodată, puteți comuta între cele două tipuri de referință doar prin intermediul Fișier> Opțiuni> Formule > Caseta de verificare R1C1 Acesta este motivul pentru care utilizatorii Excel iau rareori în considerare utilizarea R1C1 ca o abordare alternativă de referință.

    Într-o formulă INDIRECT, puteți utiliza ambele tipuri de referință pe aceeași foaie, dacă doriți. Înainte de a merge mai departe, poate doriți să cunoașteți diferența dintre stilurile de referință A1 și R1C1.

    Stil A1 este tipul de referință obișnuit în Excel care se referă la o coloană urmată de un număr de rând. De exemplu, B2 se referă la celula de la intersecția dintre coloana B și rândul 2.

    Stilul R1C1 este tipul opus de referință - rânduri urmate de coloane, cu care este nevoie de ceva timp pentru a se obișnui : ) De exemplu, R4C1 se referă la celula A4 care se află în rândul 4, coloana 1 într-o foaie. Dacă nu vine niciun număr după literă, atunci vă referiți la același rând sau coloană.

    Și acum, să vedem cum gestionează funcția INDIRECT referințele A1 și R1C1:

    După cum vedeți în captura de ecran de mai sus, trei formule Indirect diferite dau același rezultat. V-ați dat seama deja de ce? Pun pariu că da : )

    • Formula din celula D1: =INDIRECT(C1)

    Aceasta este cea mai simplă. Formula se referă la celula C1, îi extrage valoarea - șir de text A2 , o convertește într-o referință de celulă, se îndreaptă spre celula A2 și returnează valoarea acesteia, care este 222.

    • Formula din celula D3: =INDIRECT(C3,FALSE)

    FALSE în cel de-al doilea argument indică faptul că valoarea menționată (C3) trebuie tratată ca o referință la celula R1C1, adică un număr de rând urmat de un număr de coloană. Prin urmare, formula noastră INDIRECT interpretează valoarea din celula C3 (R2C1) ca o referință la celula de la intersecția dintre rândul 2 și coloana 1, care este celula A2.

    Crearea de referințe indirecte din valorile celulelor și text

    În mod similar cu modul în care am creat referințe din valorile celulelor, puteți combina un fișier șir de text și un referința celulei în formula INDIRECT, legate împreună cu operatorul de concatenare (&).

    În exemplul următor, formula: =INDIRECT("B"&C2) returnează o valoare din celula B2 pe baza următorului lanț logic:

    Funcția INDIRECT concatenează elementele din argumentul ref_text - text B și valoarea din celula C2 -> valoarea din celula C2 este numărul 2, care face trimitere la celula B2 -> formula merge la celula B2 și returnează valoarea acesteia, care este numărul 10.

    Utilizarea funcției INDIRECT cu intervale numite

    În afară de a face referințe din valorile celulelor și ale textului, puteți obține funcția Excel INDIRECT pentru a face referire la intervale denumite .

    Să presupunem că aveți următoarele intervale numite în foaia dvs:

    • Mere - B2:B6
    • Banane - C2:C6
    • Lămâi - D2:D6

    Pentru a crea o referință dinamică Excel la oricare dintre intervalele numite mai sus, trebuie doar să introduceți numele său într-o celulă, de exemplu G1, și să faceți referire la acea celulă dintr-o formulă indirectă =INDIRECT(G1) .

    Și acum, puteți face un pas mai departe și puteți încorpora această formulă INDIRECT în alte funcții Excel pentru a calcula suma și media valorilor dintr-un anumit interval numit sau pentru a găsi valoarea maximă / minimă în cadrul intervalului:

    • =SUMA(INDIRECT(G1))
    • =MEDIA(INDIRECT(G1))
    • =MAX(INDIRECT(G1))
    • =MIN(INDIRECT(G1))

    Acum că ați înțeles cum se utilizează funcția INDIRECT în Excel, putem experimenta formule mai puternice.

    Formula INDIRECT pentru a face referire dinamică la o altă foaie de calcul

    Utilitatea funcției Excel INDIRECT nu se limitează la crearea de referințe "dinamice" la celule. De asemenea, o puteți utiliza pentru a face referire la celule din alte foi de calcul "din mers", și iată cum.

    Să presupunem că aveți unele date importante în foaia 1 și doriți să extrageți aceste date în foaia 2. Următoarea captură de ecran demonstrează modul în care o formulă indirectă Excel poate gestiona această sarcină:

    Să despărțim formula pe care o vedeți în captura de ecran și să înțelegem.

    După cum știți, modul obișnuit de a face referire la o altă foaie în Excel este de a scrie numele foii, urmat de semnul exclamării și de o referință de celulă / interval, cum ar fi Numele foii!Interval Deoarece un nume de foaie conține adesea un spațiu (sau mai multe), ar fi bine să îl includeți (numele, nu un spațiu : ) între ghilimele simple pentru a preveni o eroare, de exemplu "Foaia mea!"$A$1 .

    Și acum, tot ce trebuie să faceți este să introduceți numele foii într-o celulă, adresa celulei în alta, să le concatenați într-un șir de text și să introduceți acest șir în funcția INDIRECT. Rețineți că într-un șir de text, trebuie să includeți fiecare element, altul decât o adresă de celulă sau un număr, între ghilimele duble și să legați toate elementele între ele cu ajutorul operatorului de concatenare (&).

    Având în vedere cele de mai sus, obținem următorul model:

    INDIRECT("'" & Numele foii & "'!" & Celula din care se extrag datele )

    Revenind la exemplul nostru, puneți numele foii în celula A1 și introduceți adresele celulelor în coloana B, așa cum se arată în captura de ecran de mai sus. Ca rezultat, veți obține următoarea formulă:

    INDIRECT("'" & $A$1 & "'!" & B1)

    De asemenea, vă rugăm să fiți atenți la faptul că, dacă copiați formula în mai multe celule, trebuie să blocați referința la numele foii folosind referințele absolute ale celulelor, cum ar fi $A$1.

    Note

    • Dacă una dintre celulele care conțin numele și adresa celulei celei de-a doua foi (A1 și B1 în formula de mai sus) este goală, formula Indirect va returna o eroare. Pentru a preveni acest lucru, puteți include funcția INDIRECT în funcția IF:

      IF(OR(OR($A$1="",B1=""), "", INDIRECT("'" & $A$1 & "'!" & B1))

    • Pentru ca formula INDIRECT care se referă la o altă foaie să funcționeze corect, foaia la care se face referire trebuie să fie deschisă, altfel formula va returna o eroare #REF. Pentru a evita eroarea, puteți utiliza funcția IFERROR, care va afișa un șir gol, indiferent de eroarea care apare:

      IFERROR(INDIRECT("'" & $A$1 & "'!" &B1), ""), "")

    Crearea unei referințe dinamice Excel la un alt registru de lucru

    Formula indirectă care se referă la un alt registru de lucru Excel se bazează pe aceeași abordare ca și o referință la o altă foaie de calcul. Trebuie doar să specificați numele registrului de lucru, pe lângă numele foii și adresa celulei.

    Pentru a ușura lucrurile, să începem prin a face o trimitere la o altă carte în mod obișnuit (se adaugă apostrofe în cazul în care numele cărții și/sau al foii conțin spații):

    '[Nume_carte.xlsx]Nume_foaie'!Interval

    Presupunând că numele cărții este în celula A2, numele foii este în B2, iar adresa celulei este în C2, obținem următoarea formulă:

    =INDIRECT("'[" & $A$2 & "]" & $B$2 & "'!" & C2)

    Deoarece nu doriți ca celulele care conțin numele cărții și al foii să se schimbe atunci când copiați formula în alte celule, le blocați folosind referințe absolute de celule, $A$2 și, respectiv, $B$2.

    Și acum, puteți scrie cu ușurință propria referință dinamică la un alt registru de lucru Excel utilizând următorul model:

    =INDIRECT("'[" & Numele cărții & "]" & Numele foii & "'!" & Adresa celulei )

    Notă. Registrul de lucru la care se referă formula dvs. trebuie să fie întotdeauna deschis, altfel funcția INDIRECT va genera o eroare #REF. Ca de obicei, funcția IFERROR vă poate ajuta să evitați acest lucru:

    =IFERROR(INDIRECT("'[" & A2 & "]" & $A$1 & "'!" & B1), "")

    Utilizarea funcției Excel INDIRECT pentru a bloca o referință de celulă

    În mod normal, Microsoft Excel modifică referințele celulelor atunci când introduceți rânduri sau coloane noi sau ștergeți rânduri sau coloane existente într-o foaie. Pentru a preveni acest lucru, puteți utiliza funcția INDIRECT pentru a lucra cu referințe de celule care ar trebui să rămână intacte în orice caz.

    Pentru a ilustra diferența, vă rugăm să faceți următoarele:

    1. Introduceți orice valoare în orice celulă, de exemplu, numărul 20 în celula A1.
    2. Faceți trimitere la A1 din alte două celule în moduri diferite: =A1 și =INDIRECT("A1")
    3. Introduceți un nou rând deasupra rândului 1.

    Vedeți ce se întâmplă? Celula cu egală cu operatorul logic returnează în continuare 20, deoarece formula sa a fost schimbată automat în =A2. Celula cu formula INDIRECT returnează acum 0, deoarece formula nu a fost schimbată atunci când a fost inserat un nou rând și se referă în continuare la celula A1, care este în prezent goală:

    După această demonstrație, s-ar putea să aveți impresia că funcția INDIRECT este mai mult o pacoste decât un ajutor. Bine, să încercăm într-un alt mod.

    Să presupunem că doriți să însumați valorile din celulele A2:A5 și puteți face acest lucru cu ușurință folosind funcția SUM:

    =SUM(A2:A5)

    Cu toate acestea, doriți ca formula să rămână neschimbată, indiferent de câte rânduri sunt șterse sau inserate. Cea mai evidentă soluție - utilizarea referințelor absolute - nu vă va ajuta. Pentru a vă asigura, introduceți formula =SUMA($A$2:$A$5) într-o anumită celulă, introduceți un nou rând, să zicem la rândul 3, și... găsiți formula convertită în =SUMA($A$2:$A$6) .

    Desigur, o astfel de curtoazie a Microsoft Excel va funcționa bine în majoritatea cazurilor. Cu toate acestea, pot exista scenarii în care nu doriți ca formula să fie modificată automat. Soluția este să utilizați funcția INDIRECT, astfel:

    =SUM(INDIRECT("A2:A5"))

    Deoarece Excel percepe "A1:A5" ca pe un simplu șir de text și nu ca pe o referință de interval, nu va face nicio modificare atunci când introduceți sau ștergeți un rând (sau mai multe).

    Utilizarea INDIRECT cu alte funcții Excel

    În afară de SUM, INDIRECT este utilizat frecvent cu alte funcții Excel, cum ar fi ROW, COLUMN, ADDRESS, VLOOKUP, SUMIF, pentru a numi doar câteva.

    Exemplul 1. Funcțiile INDIRECT și ROW

    Destul de des, funcția ROW este utilizată în Excel pentru a returna o matrice de valori. De exemplu, puteți utiliza următoarea formulă de matrice (nu uitați că trebuie să apăsați Ctrl + Shift + Enter ) pentru a returna media celor mai mici 3 numere din intervalul A1:A10:

    =MEDIA(SMALL(A1:A10,ROW(1:3)))

    Cu toate acestea, dacă introduceți un nou rând în foaia de calcul, oriunde între rândurile 1 și 3, intervalul din funcția ROW se va schimba în ROW(1:4) și formula va returna media celor mai mici 4 numere în loc de 3.

    Pentru a preveni acest lucru, aninați INDIRECT în funcția ROW, iar formula matricei dvs. va rămâne întotdeauna corectă, indiferent de numărul de rânduri inserate sau șterse:

    =MEDIA(SMALL(A1:A10,ROW(INDIRECT("1:3"))))

    Iată alte câteva exemple de utilizare a funcțiilor INDIRECT și ROW împreună cu funcția LARGE: Cum se însumează cele mai mari N numere dintr-un interval.

    Exemplul 2. Funcțiile INDIRECT și ADDRESS

    Puteți utiliza Excel INDIRECT împreună cu funcția ADRESA pentru a obține din mers o valoare dintr-o anumită celulă.

    După cum probabil vă amintiți, funcția ADRESA este utilizată în Excel pentru a obține adresa unei celule prin numerele de rând și de coloană. De exemplu, formula =ADDRESS(1,3) returnează șirul $C$1, deoarece C1 este celula de la intersecția dintre primul rând și a treia coloană.

    Pentru a crea o referință indirectă la o celulă, pur și simplu încorporați funcția ADRESA într-o formulă INDIRECT, astfel:

    =INDIRECT(ADDRESS(1,3))

    Desigur, această formulă trivială nu face decât să demonstreze tehnica. Și iată câteva exemple care se pot dovedi foarte utile:

    • Formula ADRESA INDIRECTĂ - cum se schimbă rândurile și coloanele.
    • VLOOKUP și INDIRECT - cum să extrageți în mod dinamic date din foi diferite.
    • INDIRECT cu INDEX / MATCH - cum să aduci la perfecțiune o formulă VLOOKUP care ține cont de majuscule și minuscule.
    • Excel INDIRECT și COUNTIF - cum se utilizează funcția COUNTIF pe un interval necontinuu sau pe o selecție de celule.

    Utilizarea INDIRECT cu validarea datelor în Excel

    Puteți utiliza funcția INDIRECT din Excel cu validarea datelor pentru a crea liste derulante în cascadă care afișează opțiuni diferite în funcție de valoarea selectată de utilizator în prima listă derulantă.

    O listă derulantă dependentă simplă este foarte ușor de realizat. Este nevoie doar de câteva intervale numite pentru a stoca elementele din lista derulantă și de un simplu câmp =INDIRECT(A2) unde A2 este celula în care este afișată prima listă derulantă.

    Pentru a crea meniuri mai complexe cu 3 niveluri sau drop-down-uri cu intrări cu mai multe cuvinte, veți avea nevoie de o formulă INDIRECT ceva mai complexă cu o funcție SUBSTITUTE imbricata.

    Pentru îndrumări detaliate, pas cu pas, despre cum să utilizați INDIRECT cu Excel Data Validation, vă rugăm să consultați acest tutorial: Cum să creați o listă derulantă dependentă în Excel.

    Funcția Excel INDIRECT - posibile erori și probleme

    După cum s-a demonstrat în exemplele de mai sus, funcția INDIRECT este destul de utilă atunci când este vorba de referințe de celule și intervale. Cu toate acestea, nu toți utilizatorii Excel o adoptă cu entuziasm mai ales pentru că utilizarea extensivă a funcției INDIRECT în formulele Excel duce la lipsă de transparență. Funcția INDIRECT este dificil de revizuit deoarece celula la care se referă nu este locația finală a valorii utilizate în formulă,ceea ce este destul de derutant, în special atunci când se lucrează cu formule complexe de mari dimensiuni.

    În plus față de cele menționate mai sus, ca orice altă funcție Excel, INDIRECT poate genera o eroare dacă utilizați greșit argumentele funcției. Iată o listă cu cele mai tipice greșeli:

    Excel INDIRECT #REF! eroare

    Cel mai adesea, funcția INDIRECT returnează o eroare #REF! în trei cazuri:

    1. ref_text nu este o referință de celulă validă Dacă parametrul ref_text din formula Indirect nu este o referință validă la o celulă, formula va avea ca rezultat valoarea de eroare #REF! Pentru a evita posibilele probleme, vă rugăm să verificați argumentele funcției INDIRECT.
    2. Limita intervalului este depășită Dacă argumentul ref_text al formulei Indirect se referă la un interval de celule care depășește limita de rânduri de 1.048.576 sau limita de coloane de 16.384, veți primi, de asemenea, eroarea #REF în Excel 2007, 2010 și Excel 2013. Versiunile anterioare ale Excel ignoră limita depășită și returnează o anumită valoare, deși adesea nu este cea la care vă așteptați.
    3. Foaia sau registrul de lucru menționat este închis. În cazul în care formula Indirect se referă la un alt registru de lucru sau foaie de calcul Excel, acel registru de lucru sau foaie de calcul trebuie să fie deschis, altfel INDIRECT returnează eroarea #REF!

    Eroare Excel INDIRECT #NAME?

    Acesta este cel mai evident caz, ceea ce implică faptul că există o eroare în numele funcției, ceea ce ne conduce la următorul punct : )

    Utilizarea funcției INDIRECT în alte limbi decât engleza

    S-ar putea să fiți curioși să aflați că denumirea engleză a funcției INDIRECT a fost tradusă în 14 limbi, printre care:

    • Daneză - INDIREKTE
    • Finlandeză - EPÄSUORA
    • Germană - INDIREKT
    • Maghiară - INDIREKT
    • Italiană - INDIRETTO
    • Norvegiană - INDIREKTE
    • Poloneză - ADR.POŚR
    • Spaniolă - INDIRECTO
    • Suedeză - INDIREKT
    • Turcă - DOLAYLI

    Dacă sunteți interesat să obțineți lista completă, vă rugăm să consultați această pagină.

    O problemă frecventă în cazul localizărilor în alte limbi decât engleza nu este numele funcției INDIRECT, ci mai degrabă diferitele denumiri ale funcției Setări regionale pentru Separator de liste În configurația standard Windows pentru America de Nord și alte câteva țări, se utilizează în mod implicit Separator de liste este o virgulă. În timp ce în țările europene, virgula este rezervată ca fiind virgulă. Simbol zecimal și Separator de liste este setat la punct și virgulă.

    Ca urmare, atunci când copiați o formulă între două localități Excel diferite, este posibil să primiți mesajul de eroare " Am găsit o problemă cu această formulă... ", deoarece Separator de liste utilizată în formulă este diferită de cea setată pe calculatorul dvs. Dacă vă confruntați cu această eroare atunci când copiați o formulă INDIRECT din acest tutorial în Excel, înlocuiți pur și simplu toate virgulele (,) cu punct și virgulă (;) pentru a o remedia.

    Pentru a verifica ce Separator de listă și Simbol zecimal sunt setate pe mașina dvs. Panoul de control , și mergeți la Regiune și limbă> Setări suplimentare .

    Sperăm că acest tutorial a aruncat puțină lumină asupra utilizării INDIRECT în Excel. Acum că îi cunoașteți punctele forte și limitările, este timpul să încercați și să vedeți cum funcția INDIRECT vă poate simplifica sarcinile Excel. Vă mulțumim pentru lectură!

    Michael Brown este un pasionat de tehnologie dedicat, cu o pasiune pentru simplificarea proceselor complexe folosind instrumente software. Cu mai mult de un deceniu de experiență în industria tehnologiei, el și-a perfecționat abilitățile în Microsoft Excel și Outlook, precum și în Google Sheets și Docs. Blogul lui Michael este dedicat împărtășirii cunoștințelor și experienței sale cu alții, oferind sfaturi și tutoriale ușor de urmat pentru îmbunătățirea productivității și eficienței. Indiferent dacă sunteți un profesionist experimentat sau un începător, blogul lui Michael oferă informații valoroase și sfaturi practice pentru a profita la maximum de aceste instrumente software esențiale.