
Formula generică
=INDIRECT(sheet&"!"&CELL("address",A1))
rezumat
Pentru a incrementa o referință creată ca text în interiorul funcției INDIRECTE, puteți utiliza funcția CELL. În exemplul prezentat, formula din D5 este:
=INDIRECT($B$5&"!"&CELL("address",A1))
Care crește pe măsură ce formula este copiată.
Explicaţie
Luați în considerare o simplă referință dinamică la Sheet2 utilizând INDIRECT într-o formulă ca aceasta:
=INDIRECT($B$5&"!"&"A1"))
Dacă schimbăm numele foii din B5 cu un alt nume (valid), INDIRECT va returna o referință la A1 în noua foaie.
Cu toate acestea, dacă copiem această formulă în coloană, referința la A1 nu se va modifica, deoarece „A1” este codat ca text.
Pentru a rezolva această problemă, folosim funcția CELL pentru a genera o referință text dintr-o referință de celulă obișnuită:
CELL("address",A1)
Cu „adresa” ca prim argument și A1 ca al doilea argument, funcția CELL returnează un șir ca „$ A $ 1”. Deoarece A1 este o referință obișnuită a celulei, va crește în mod normal pe măsură ce formula este copiată în coloană. Rezultatul din D5: D9 este o serie de formule ca aceasta:
=INDIRECT("Sheet2!$A$1") =INDIRECT("Sheet2!$A$2") =INDIRECT("Sheet2!$A$3") =INDIRECT("Sheet2!$A$4") =INDIRECT("Sheet2!$A$5")
În fiecare caz, INDIRECT rezolvă fiecare șir de text la o referință și Excel returnează valoarea la celula dată în Sheet2.
Notă: atât INDIRECT cât și CELL sunt funcții volatile și recalculează la fiecare modificare a foii de lucru. Acest lucru poate cauza probleme de performanță în foile de lucru mai complexe.