Екцел формула: Повећавање референце ћелије са ИНДИРЕЦТ -

Генеричка формула

=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.

Напомена: И ИНДИРЕЦТ и ЦЕЛЛ су испарљиве функције и прерачунавају се са сваком променом радног листа. То може изазвати проблеме са перформансама на сложенијим радним листовима.

Занимљиви Чланци...