Привет. В этой статье научу вас формировать динамические ссылки на другие открытые рабочие книги. Хотя, такой способ подойдет и для работы в пределах одного документа. Это может понадобиться, когда вы создаете приложение, способное реагировать на действия пользователей и оперативно изменять источники отображаемых показателей.

Пусть нам известно название рабочей книги с необходимыми данными, имена листов и адреса ячеек в них:

В статье о ссылках я рассказывал, что ссылки на ячейки в другом файле имеют вид: ‘[Имя_рабочей_книги]Имя_листа’!Адрес_ячейки. Поэтому, первая наша задача – получить подобную строку. Для этого воспользуемся оператором конкатенации (объединения) строк – «&».

Я комбинировал постоянные текстовые части (квадратные скобки, одинарные кавычки, восклицательный знак), и ссылки на названия книги, листа, адрес ячейки, склеивая их знаком &. Постоянные строки нужно заключать в двойные кавычки, чтобы программа считала их текстом.

Мы получили адрес в текстовом виде, передаем его функции ДВССЫЛ, которая преобразует строку в адрес и вернет значение, располагающееся там:

Видите, Excel нашёл открытый документ «продажи.xlsx» и вернул значения из указанных ячеек нужных листов.

Вместо оператора конкатенации можно использовать функцию СЦЕПИТЬ.

Если нужный файл закрыт, или не найдены листы, формула вернет ошибку #ССЫДКА!. Вместо текста ошибки можно вывести информативное сообщение, используя, например, функцию перехвата ЕСЛИОШИБКА:

Теперь вы можете организовать выбор листов и файлов, например, с помощью обычных выпадающих списков или зависимых. Так будет удобно манипулировать исходными данными. А у меня на этом всё, спасибо за прочтение!