Ссылка на другой лист с помощью ДВССЫЛ

Рубрика: 7. Полезняшки Excel

Это глава из книги Билла Джелена Гуру Excel расширяют горизонты: делайте невозможное с Microsoft Excel. Предыдущая глава книги знакомит с функцией ДВССЫЛ: Ссылка на ячейку, чей адрес основан на вычислениях.

Задача: вам нужно получить значение ячейки B4 с одного из многих листов. При этом, определить, с какого именно листа вы можете на основании расчета. Может ли ДВССЫЛ ссылаться на другой лист?

Решение: ДВССЫЛ может ссылаться на другой лист. Но функция требует особого обращения, если имя листа содержит пробелы или дату. Если лист содержит пробел в имени, вы должны составить ссылку на лист, используя апострофы вокруг имени листа, затем восклицательный знак и адрес ячейки (см. также Сумма одной и той же ячейки на нескольких листах). Например, ='Прибыли и убытки'!В2. Если имя листа не содержит пробелы, вы можете обойтись без апострофов: =Доходы!В2. Если у вас смесь имен листов, некоторые из которых содержат пробелы, в формуле вы должны спланировать апострофы (рис. 1).

Рис. 1. ДВССЫЛ ссылается на переменный лист

Рис. 1. ДВССЫЛ ссылается на переменный лист

Скачать заметку в формате Word или pdf, примеры в формате Excel

Формула в ячейке F4: =ДВССЫЛ("'"&F$3&"'!"&"B4"). Первый частокол из апострофов – это открывающие кавычки " + апостроф ' + закрывающие кавычки ". Второй частокол – это открывающие кавычки " + два символа: апостроф и восклицательный знак '! + закрывающие кавычки ".

Проблема с формулами в четвертой строке в том, что они жестко ссылаются на В4, поэтому при копировании в строки с 5 по 7 они становятся не релевантными. Чтобы формулы могли ссылаться на данные из других строк, можно использовать функции ЯЧЕЙКА или АДРЕС. Вы можете приспособить функцию ЯЧЕЙКА в считанные секунды, но функция АДРЕС может, в конечном счете, оказаться более удобной, как только вы поймете нюансы ее использования.

Фрагмент формулы ЯЧЕЙКА("адрес";$B5) возвращает текст $В$5, что удачно подходит для аргумента функции ДВССЫЛ (рис. 2). Знак доллара перед буквой В позаботится о том, чтобы формула на всех листах ссылалась на столбец В. Отсутствие знака доллара перед цифрой 5 позволит при копировании формулы вниз по столбцу ссылаться на строки 5, 6, 7… Формула в ячейке F5: =ДВССЫЛ("'"&F$3&"'!"&ЯЧЕЙКА("адрес";$B5)).

Рис. 2. Добавление функции ЯЧЕЙКА позволяет скопировать формулу на всю таблицу

Рис. 2. Добавление функции ЯЧЕЙКА позволяет скопировать формулу на всю таблицу

Вы можете использовать функцию АДРЕС вместо функции ЯЧЕЙКА. В своей простейшей форме –АДРЕС(номер_строки; номер_столбца) – функция возвращает адрес ячейки. Например, =АДРЕС(5, 2) возвращает текст $В$5. Может показаться странным писать =АДРЕС(СТРОКА(),2) вместо более простого и короткого ЯЧЕЙКА("адрес";$B5), когда вы хотите сослаться на столбец B в текущей строке. Однако, функция АДРЕС имеет три дополнительных необязательных аргумента.

Примечание: третий и четвертый аргументы функции АДРЕС в этой теме вас не интересуют, но вы должны разобраться с ними, чтобы добраться до пятого аргумента.

Третий аргумент определяет, тип ссылки, т.е., какие ссылку будут абсолютными, а какие относительными (подробнее см. Относительные, абсолютные и смешанные ссылки на ячейки в Excel). Вот простой способ запомнить, как работает этот аргумент. Число в аргументе соответствует тому, сколько раз вы нажмите клавишу F4, чтобы добиться комбинации знаков доллара:

  • АДРЕС(5;2;1) – фиксирует, как столбец, так и строку, и возвращает $B$5;
  • АДРЕС(5;2;1) – фиксирует только строку, и возвращает B$5;
  • АДРЕС(5;2;1) – фиксирует только столбец, и возвращает $B5;
  • АДРЕС(5;2;1) – оставляет обе ссылки относительными, и возвращает B5.

Четвертый аргумент определяет стиль ссылки:

  • АДРЕС(5;2;1;1) – возвращает ссылку в стиле А1 – $В$5;
  • АДРЕС(5;2;1;0) – возвращает ссылку в стиле R1C1 – R5C2.

Пятый аргумент определяет имя листа. Excel сам проанализирует синтаксис имени, и определит, нужны ли апострофы:

  • =АДРЕС(5;2;4;1;"Atlanta") вернет Atlanta!B5;
  • =АДРЕС(5;2;4;1;"Eden Prairie") вернет 'Eden Prairie'!B5

Примечание: на самом деле вы не обязаны помнить, какие параметры нужны для третьего и четвертого аргументов функции АДРЕС. Просто пропустите их (рис. 3). Например, формула =АДРЕС(5;2;;;"Eden Prairie") вернет значение 'Eden Prairie'!$B$5.

Рис. 3. Аргументы функции АДРЕС

Рис. 3. Аргументы функции АДРЕС

Функция АДРЕС с использованием пятого аргумента возвращает текст, который может быть использован в функции ДВССЫЛ (рис. 4). Формула в ячейке D6: =ДВССЫЛ(АДРЕС(СТРОКА();2;;;D$3)). Эта формула также может быть скопирована на всю таблицу. Первый аргумент в АДРЕС – СТРОКА() – гарантирует, что Excel извлекает значение из строки с тем же номером, что и формула. Второй аргумент фиксирован – это 2. Т.е., всегда получите столбец B. Третий и четвертый аргументы опущены, что говорит функции АДРЕС вернуть абсолютные ссылки в стиле А1. Пятый аргумент содержит знак доллара только перед строкой, что сохранит релевантность формулы при ее копировании вдоль столбца: при этом будет сохранятся ссылка на имя листа (из третьей строки). При копировании же вдоль строки ссылка будет меняется с переходом от столбца к столбцу (попробуйте в приложенном файле Excel).

Рис. 4. Альтернативный вариант с функцией АДРЕС

Рис. 4. Альтернативный вариант с функцией АДРЕС

Дополнительные сведения: функция ДВССЫЛ может работать и со ссылками в стиле R1C1. Часто это упрощает создание формул. До сих пор мы во всех примерах функция ДВССЫЛ использовала только первый аргумент (второй аргумент был опущен), например, ДВССЫЛ("В4"). Эта формула вернет такое же значение при использовании в качестве второго аргумента значения ИСТИНА: ДВССЫЛ("В4"; ИСТИНА). Последняя формула явно предписывает функции ДВССЫЛ использовать стиль ссылок А1. Значение ЛОЖЬ в качестве второго аргумента – ДВССЫЛ("В4"; ЛОЖЬ) – предписывает интерпретировать ссылки в стиле R1C1.

Ссылка =RC указывает на текущую строку и текущий столбец. Числе после R или C создает абсолютную ссылку на определенную строку или столбец. Так, например, формула =RC2 ссылается на столбец B из того же ряда. Если вы используете ссылки в стиле R1C1, вам не понадобятся функции ЯЧЕЙКА или АДРЕС (рис. 5). Здесь в ячейке С7 формула =ДВССЫЛ("'"&C$3&"'!RC2";ЛОЖЬ). Эта формула также может быть скопирована по всей таблице. Обратите внимание, что вам не придется переключаться на использование на листе ссылок в стиле R1C1 для того, чтобы воспользоваться этой формулой.

Рис. 5. Стиль R1C1 не популярен, но он, безусловно, значительно облегчает написание формул

Рис. 5. Стиль R1C1 не популярен, но он, безусловно, значительно облегчает написание формул