
Вопрос по Excel: У меня есть формулы на листе A, связанные с листом B. Я хотел бы изменить ссылки с листа B на лист C или на лист D, изменив содержимое ячейки на листе A и не прибегая к «поиску и замене» имен рабочих листов. Есть идеи?
решение1
Вы можете сделать это с помощью косвенной функции, которая использует содержимое ячейки для построения адреса. Предполагая, что ваши формулы указывают на ту же ячейку на других листах, например, ячейка B1 на Sheet1 ссылается на ячейки B1 на Sheet2 и Sheet3, и что лист, на который нужно ссылаться, находится в A1 на Sheet1, вы можете ввести это в B1 на Sheet1:
=INDIRECT("'"&A$1&"'!"&ADDRESS(ROW(),COLUMN()))
Затем вы можете перетащить копию и вставить ее в другие ячейки и получить относительные ссылки.
Следует отметить, что Indirect — это изменчивая функция, то есть она постоянно пересчитывается, а это значит, что наличие большого количества данных в рабочей книге значительно замедлит ее работу.
решение2
Вы можете использовать функцию ДВССЫЛ.
Обычно вы обращаетесь к ячейке следующим образом:
=Sheet1!A1
Функция ДВССЫЛ принимает текст и преобразует его в ссылку на ячейку:
=INDIRECT(C1&"!A1")
где C1 содержит имя вашего рабочего листа.