Formula Excel: creșterea referinței celulei cu INDIRECT -

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.

Articole interesante...