
Generisk formel
=INDIRECT(sheet&"!"&CELL("address",A1))
Sammanfattning
För att öka en referens som skapats som text i funktionen INDIRECT kan du använda CELL-funktionen. I exemplet som visas är formeln i D5:
=INDIRECT($B$5&"!"&CELL("address",A1))
Vilka steg som formeln kopieras ner.
Förklaring
Tänk på en enkel dynamisk hänvisning till Sheet2 med INDIRECT i en sådan formel:
=INDIRECT($B$5&"!"&"A1"))
Om vi ändrar bladnamnet i B5 till ett annat (giltigt) namn kommer INDIRECT att returnera en referens till A1 i det nya arket.
Men om vi kopierar den här formeln ner i kolumnen ändras inte hänvisningen till A1 eftersom "A1" är hårdkodad som text.
För att lösa detta problem använder vi CELL-funktionen för att generera en textreferens från en vanlig cellreferens:
CELL("address",A1)
Med "adress" som det första argumentet och A1 som det andra argumentet returnerar CELL-funktionen en sträng som "$ A $ 1". Eftersom A1 är en vanlig cellreferens ökar den normalt när formeln kopieras ner i kolumnen. Resultatet i D5: D9 är en serie formler så här:
=INDIRECT("Sheet2!$A$1") =INDIRECT("Sheet2!$A$2") =INDIRECT("Sheet2!$A$3") =INDIRECT("Sheet2!$A$4") =INDIRECT("Sheet2!$A$5")
I båda fallen löser INDIRECT varje textsträng till en referens och Excel returnerar värdet vid den angivna cellen i Sheet2.
Obs! Både INDIRECT och CELL är flyktiga funktioner och beräknar på nytt med varje kalkylbyte. Detta kan orsaka prestandaproblem i mer komplexa kalkylblad.