
Bendroji formulė
=INDIRECT(sheet&"!"&CELL("address",A1))
Santrauka
Norėdami padidinti nuorodą, sukurtą kaip tekstą INDIRECT funkcijoje, galite naudoti CELL funkciją. Parodytame pavyzdyje formulė D5 yra:
=INDIRECT($B$5&"!"&CELL("address",A1))
Kuris didėja kaip formulė, nukopijuojama žemyn.
Paaiškinimas
Apsvarstykite paprastą dinaminę nuorodą į „Sheet2“, naudodami INDIRECT tokioje formulėje:
=INDIRECT($B$5&"!"&"A1"))
Jei pakeisime lapo pavadinimą B5 į kitą (galiojantį) pavadinimą, INDIRECT naujame lape grąžins nuorodą į A1.
Tačiau jei nukopijuosime šią formulę stulpelyje, nuoroda į A1 nepasikeis, nes „A1“ yra užkoduotas kaip tekstas.
Norėdami išspręsti šią problemą, mes naudojame funkciją CELL, kad generuotume teksto nuorodą iš įprastos langelio nuorodos:
CELL("address",A1)
Kai „adresas“ yra pirmasis argumentas, o A1 yra antrasis argumentas, funkcija „CELL“ pateikia eilutę, pvz., „$ A $ 1“. Kadangi A1 yra įprasta langelio nuoroda, formulė nukopijuojama stulpelyje žemyn. Rezultatas D5: D9 yra tokia formulių serija:
=INDIRECT("Sheet2!$A$1") =INDIRECT("Sheet2!$A$2") =INDIRECT("Sheet2!$A$3") =INDIRECT("Sheet2!$A$4") =INDIRECT("Sheet2!$A$5")
Kiekvienu atveju netiesioginis kiekvieną teksto eilutę išsprendžia į nuorodą, o „Excel“ grąžina reikšmę nurodytame „Sheet2“ langelyje.
Pastaba: tiek „INDIRECT“, tiek „CELL“ yra nepastovios funkcijos ir perskaičiuojamos kiekvieną kartą pakeitus darbalapį. Tai gali sukelti našumo problemų sudėtingesniuose darbalapiuose.