
Обща формула
=INDIRECT(sheet&"!"&CELL("address",A1))
Обобщение
За да увеличите препратка, създадена като текст във функцията INDIRECT, можете да използвате функцията CELL. В показания пример формулата в D5 е:
=INDIRECT($B$5&"!"&CELL("address",A1))
Кой нараства като формулата се копира надолу.
Обяснение
Помислете за проста динамична препратка към Sheet2, като използвате INDIRECT във формула като тази:
=INDIRECT($B$5&"!"&"A1"))
Ако променим името на листа в B5 на друго (валидно) име, INDIRECT ще върне препратка към A1 в новия лист.
Ако обаче копираме тази формула надолу в колоната, препратката към А1 няма да се промени, тъй като „А1“ е кодирана твърдо като текст.
За да разрешим този проблем, използваме функцията CELL, за да генерираме текстова препратка от обикновена препратка към клетка:
CELL("address",A1)
С "адрес" като първи аргумент и А1 като втори аргумент, функцията CELL връща низ като "$ A $ 1". Тъй като A1 е обикновена препратка към клетка, тя ще нараства нормално, докато формулата се копира надолу в колоната. Резултатът в D5: D9 е поредица от формули като тази:
=INDIRECT("Sheet2!$A$1") =INDIRECT("Sheet2!$A$2") =INDIRECT("Sheet2!$A$3") =INDIRECT("Sheet2!$A$4") =INDIRECT("Sheet2!$A$5")
Във всеки случай INDIRECT разрешава всеки текстов низ в препратка и Excel връща стойността в дадената клетка в Sheet2.
Забележка: И INDIRECT, и CELL са нестабилни функции и се преизчисляват при всяка промяна на работния лист. Това може да доведе до проблеми с производителността в по-сложни работни листове.