
Yleinen kaava
=INDIRECT(sheet&"!"&CELL("address",A1))
Yhteenveto
Voit lisätä tekstinä luotua viittausta INDIRECT-funktiossa käyttämällä CELL-toimintoa. Esitetyssä esimerkissä kaava kohdassa D5 on:
=INDIRECT($B$5&"!"&CELL("address",A1))
Mitkä kaavan lisäykset kopioidaan alaspäin.
Selitys
Harkitse yksinkertaista dynaamista viittausta Sheet2: een käyttämällä INDIRECTia seuraavassa kaavassa:
=INDIRECT($B$5&"!"&"A1"))
Jos muutamme B5-taulukon nimen toiseksi (kelvolliseksi) nimeksi, INDIRECT palauttaa viitteen A1: een uudessa taulukossa.
Jos kopioimme tämän kaavan sarakkeesta alaspäin, viittaus A1: een ei muutu, koska "A1" on kovakoodattu tekstinä.
Tämän ongelman ratkaisemiseksi käytämme CELL-toimintoa tekstiviitteen luomiseen tavallisesta soluviitteestä:
CELL("address",A1)
Kun "osoite" on ensimmäinen argumentti ja A1 on toinen argumentti, CELL-funktio palauttaa merkkijonon "$ A $ 1". Koska A1 on säännöllinen soluviite, se kasvaa normaalisti, kun kaava kopioidaan alas saraketta. Tulos sarjassa D5: D9 on sarja tällaisia kaavoja:
=INDIRECT("Sheet2!$A$1") =INDIRECT("Sheet2!$A$2") =INDIRECT("Sheet2!$A$3") =INDIRECT("Sheet2!$A$4") =INDIRECT("Sheet2!$A$5")
Kummassakin tapauksessa INDIRECT ratkaisee jokaisen tekstimerkkijonon viitteeksi ja Excel palauttaa arvon Sheet2: n annetussa solussa.
Huomaa: Sekä INDIRECT että CELL ovat epävakaat toiminnot ja laskevat uudelleen jokaisen laskentataulukon muutoksen yhteydessä. Tämä voi aiheuttaa suorituskykyongelmia monimutkaisemmissa laskentataulukoissa.