Формула на Excel: Увеличаване на препратка към клетка с INDIRECT -

Обща формула

=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 са нестабилни функции и се преизчисляват при всяка промяна на работния лист. Това може да доведе до проблеми с производителността в по-сложни работни листове.

Интересни статии...