
Генеричка формула
=INDIRECT(sheet&"!"&CELL("address",A1))
Резиме
Да бисте повећали референцу створену као текст унутар функције ИНДИРЕЦТ, можете користити функцију ЦЕЛЛ. У приказаном примеру, формула у Д5 је:
=INDIRECT($B$5&"!"&CELL("address",A1))
Који се кораци повећавају како се формула копира.
Објашњење
Размотрите једноставну динамичку референцу на Схеет2 користећи ИНДИРЕЦТ у формули попут ове:
=INDIRECT($B$5&"!"&"A1"))
Ако променимо име листа у Б5 у друго (важеће) име, ИНДИРЕЦТ ће у новом листу вратити референцу на А1.
Међутим, ако копирамо ову формулу у колону, референца на А1 се неће променити, јер је „А1“ кодиран као текст.
Да бисмо решили овај проблем, користимо функцију ЦЕЛЛ за генерисање текстуалне референце из редовне референце ћелије:
CELL("address",A1)
Са "адресом" као првим аргументом и А1 као другим аргументом, функција ЦЕЛЛ враћа низ попут "$ А $ 1". Будући да је А1 редовна референца ћелије, она ће се нормално увећавати како се формула копира низ колону. Резултат у Д5: Д9 је низ оваквих формула:
=INDIRECT("Sheet2!$A$1") =INDIRECT("Sheet2!$A$2") =INDIRECT("Sheet2!$A$3") =INDIRECT("Sheet2!$A$4") =INDIRECT("Sheet2!$A$5")
У сваком случају, ИНДИРЕЦТ решава сваки текстуални низ као референцу и Екцел враћа вредност у датој ћелији у Схеет2.
Напомена: И ИНДИРЕЦТ и ЦЕЛЛ су испарљиве функције и прерачунавају се са сваком променом радног листа. То може изазвати проблеме са перформансама на сложенијим радним листовима.