
Общая формула
=INDIRECT(sheet_name&"!A1")
Резюме
Чтобы создать формулу с именем динамического листа, вы можете использовать функцию ДВССЫЛ. В показанном примере формула C6:
=INDIRECT(B6&"!A1")
Примечание. Смысл использования INDIRECT здесь - построить формулу, в которой имя листа является динамической переменной. Например, вы можете изменить имя листа (возможно, с помощью раскрывающегося меню) и получить информацию из другого листа.
Объяснение
Функция ДВССЫЛ пытается оценить текст как ссылку на лист. Это позволяет создавать формулы, которые собирают ссылку в виде текста с помощью конкатенации и используют полученный текст в качестве действительной ссылки.
В этом примере у нас есть имена листов в столбце B, поэтому мы присоединяем имя листа к ссылке на ячейку A1, используя конкатенацию:
=INDIRECT(B6&"!A1")
После конкатенации имеем:
=INDIRECT("Sheet1!A1")
INDIRECT распознает это как действительную ссылку на ячейку A1 в Sheet1 и возвращает значение в A1, 100. В ячейке C7 формула вычисляется следующим образом:
=INDIRECT(B7&"!A1") =INDIRECT("Sheet2!A1") =Sheet2!A1 =200
И так далее для каждой формулы в столбце C.
Обработка пробелов и знаков препинания в именах листов
Если имена листов содержат пробелы или знаки препинания, вам необходимо настроить формулу, чтобы заключить имя листа в одинарные кавычки (') следующим образом:
=INDIRECT("'"&sheet_name&"'!A1")
где имя_листа - это ссылка, содержащая имя листа. Для примера на этой странице формула будет выглядеть так:
=INDIRECT("'"&B6&"'!A1")
Обратите внимание, что это требование не относится к функции КОСВЕННО. Любая формула, которая ссылается на имя листа с пробелом или пунктуацией, должна заключать имя листа в одинарные кавычки.