Excel ссылка на лист в формуле excel

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

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

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

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

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

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

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

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

Рис. 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. Аргументы функции АДРЕС

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

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

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

Читать еще:  Excel постоянная ячейка в формуле

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

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

Ссылки на другие листы в Excel

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

Excel позволяет ссылаться на ячейки любого рабочего листа текущей книги, что особенно полезно, когда необходимо использовать конкретное значение с другого листа. Чтобы сделать это, в начале ссылки должно стоять имя листа с восклицательным знаком (!). Например, если необходимо сослаться на ячейку A1 на листе Лист1, ссылка будет выглядеть так: Лист1!A1.

Обратите внимание, если в названии листа содержатся пробелы, то его необходимо заключить в одинарные кавычки (‘ ‘). Например, если вы хотите создать ссылку на ячейку A1, которая находится на листе с названием Бюджет июля. Ссылка будет выглядеть следующим образом: ‘Бюджет июля’!А1.

Создаем ссылку в Excel на другой лист

В следующем примере мы будем ссылаться с одного листа Excel на значение, которое относится к другому рабочему листу. Это позволит нам использовать одно и тоже значение на двух разных листах.

  1. Найдите ячейку, на которую хотите сослаться, и запомните, где она находится. В нашем примере это ячейка E14 на листе Заказ меню.
  2. Перейдите к нужному листу. В нашем примере, мы выберем лист Счет за услуги по питанию.
  3. Выбранный лист откроется.
  4. Найдите и выделите ячейку, в которой должно появиться значение. В нашем примере мы выделим ячейку B2.
  5. Введите знак равенства (=), название листа с восклицательным знаком(!) и адрес ячейки. В нашем примере мы введем =’Заказ меню’!E14.
  6. Нажмите Enter на клавиатуре. Появится значение, на которое идет ссылка. Если значение ячейки E14 на листе Заказ меню изменить, то и значение на листе Счет за услуги по питанию автоматически обновится.

Если Вы в дальнейшем переименуете лист, то ссылка автоматически обновится и появится новое название листа.

Если Вы введете название листа неправильно, в ячейке появится ошибка #ССЫЛКА! В следующем примере мы допустили опечатку в названии. Рядом с ячейкой, которая содержит ошибку, появился смарт-тег с восклицательным знаком. Нажмите на него и выберите из раскрывающегося списка нужный вам вариант: редактировать или игнорировать ошибку.

Как создать ссылку на другую книгу Excel

Помимо создания ссылок на другие листы, Excel также позволяет создавать ссылки на другие книги. Для этого перед ссылкой на рабочий лист необходимо подставить имя книги в квадратных скобках. Например, если имя книги – Книга1, листа – Лист1, то ссылка на ячейку А1 будет выглядеть следующим образом: =[Книга1.xlsx]Лист1!А1

Чтобы использовать приведенную выше конструкцию, необходимо, чтобы рабочая книга Excel, на которую мы ссылаемся, была открыта.

Функция ГИПЕРССЫЛКА() в MS EXCEL

Функция ГИПЕРССЫЛКА() , английский вариант HYPERLINK(), создает ярлык или гиперссылку, которая позволяет открыть страницу в сети интернет, файл на диске (документ MS EXCEL, MS WORD или программу, например, Notepad.exe) или перейти к указанному листу (диапазону ячеек) в текущей книге .

Функция ГИПЕРССЫЛКА () имеет следующий синтаксис.

Синтаксис функции

ГИПЕРССЫЛКА(адрес, [имя])

Адрес — адрес страницы в сети интернет или путь к файлу на диске. Адрес может указывать на определенное место в Книге, например на ячейку или именованный диапазон. Путь может представлять собой путь к файлу на жестком диске, либо URL-адрес в Интернете или интрасети. Аргумент Адрес записывается в виде текстовой строки, заключенной в кавычки, или представляет собой ссылку на ячейку, содержащую гиперссылку или путь в виде текстовой строки (без кавычек).

Имя — необязательный аргумент, необходимый для отображения текста гиперссылки (т.е. просто текстовая строка для отображения в гиперссылке). Текст ссылки отображается синим цветом с подчеркиванием. Если этот аргумент опущен, в ячейке в качестве текста ссылки отображается аргумент Адрес. Также как и Адрес, аргумент Имя может быть представлен текстовой строкой, именем или ссылкой на ячейку, содержащей текст. Если аргумент Имя возвращает значение ошибки (например, #ЗНАЧ!), вместо текста ссылки в ячейке отображается значение ошибки.

Читать еще:  Ввод формул в excel

Примечание: Чтобы выделить ячейку с гиперссылкой без перехода по этой гиперссылке, щелкните эту ячейку и удерживайте нажатой кнопку мыши, пока указатель не примет крестообразную форму , а затем отпустите кнопку мыши — ячейка будет выделена без перехода по гиперссылке.

Переход на страницу Интернет

Для перехода на страницу интернет, например excel2.ru необходимо ввести в ячейку следующую формулу и нажать клавишу ENTER.

=ГИПЕРССЫЛКА(» http://www.excel2.ru «;»Перейти на сайт excel2.ru»)

Если опустить второй аргумент, то в ячейке вместо слов Перейти на сайт excel2.ru будет просто отображен адрес http://www.excel2.ru

Перейти на конкретную страницу можно с помощью вот такой формулы

=ГИПЕРССЫЛКА(«http://excel2.ru/articles/imena»;»Перейти к статье Имена на сайте excel2.ru»)

Если Вы знаете адрес документа на внешнем сайте, то можно указать в гиперссылке адрес этого файла, чтобы его скачать и открыть:

= ГИПЕРССЫЛКА(» http://example.microsoft.com/report/budget report.xlsx»; «Щелкните, чтобы просмотреть отчет»)

Открываем файл на диске

С помощью функции ГИПЕРССЫЛКА () можно открыть файл, сохраненный на диске компьютера или сервера. Откроем стандартный файл Windows для редактирования текста Notepad.exe

Если на компьютере имеется диск D: на котором в папке Finance имеется файл БазаДанных.xlsx, то открыть его поможет формула

= ГИПЕРССЫЛКА(«[D:FinanceБазаДанных.xlsx]лист1!A5″;»Открыть Книгу MS EXCEL и перейти на Листе1 в ячейку А5»)

После этого, в окне файла БазаДанных.xlsx, станет активной ячейка A5.

Примечание: После ввода формулы с функцией ГИПЕРССЫЛКА() , указывающей на место в другом листе или книге, сохраните книгу перед тестированием гиперссылки, чтобы избежать сообщения об ошибке.

Переходим на другой лист в текущей книге

Предположим, что требуется сделать ссылку с Листа1 на Лист2 в книге БазаДанных.xlsx.

Поместим формулу с функцией ГИПЕРССЫЛКА() в ячейке А18 на Листе1 (см. файл примера ).

=ГИПЕРССЫЛКА(«[БазаДанных.xlsx]Лист2!A1″;»Нажмите ссылку, чтобы перейти на Лист2 этой книги, в ячейку А1»)

Указывать имя файла при ссылке даже внутри одной книги — обязательно. При переименовании книги или листа ссылка перестанет работать. Но, с помощью функции ЯЧЕЙКА() можно узнать имя текущей книги и листа (см. здесь и здесь).

Плохой новостью является то, что если у Вас открыто 2 или более файлов EXCEL (в одном экземпляре программы, см. примечание ниже), то функция ЯЧЕЙКА() может вернуть имя другого открытого файла (если Вы его изменяли). Так что будьте осторожнее с функцией ЯЧЕЙКА() . Поэтому иногда удобнее ссылки внутри книги создавать с помощью стандартного механизма гиперссылок, нажав CTRL+K или через меню Вставка/ Связи/ Гиперссылка (после вызова окна Вставка гиперссылки выберите Связать с: местом в документе).

Примечание: Открыть несколько книг EXCEL можно в одном окне MS EXCEL (в одном экземпляре MS EXCEL) или в нескольких. Обычно книги открываются в одном экземпляре MS EXCEL (когда Вы просто открываете их подряд из Проводника Windows или через Кнопку Офис в окне MS EXCEL). Второй экземпляр MS EXCEL можно открыть запустив файл EXCEL.EXE, например через меню Пуск. Чтобы убедиться, что файлы открыты в одном экземпляре MS EXCEL нажимайте последовательно сочетание клавиш CTRL+TAB — будут отображаться все окна Книг, которые открыты в данном окне MS EXCEL. Для книг, открытых в разных окнах MS EXCEL (экземплярах MS EXCEL) это сочетание клавиш не работает. Удобно открывать в разных экземплярах Книги, вычисления в которых занимают продолжительное время. При изменении формул MS EXCEL пересчитывает только книги открытые в текущем экземпляре.

Составляем оглавление книги

В статье Оглавление книги на основе гиперссылок описан подход к созданию оглавлению.

Формула номера листа и страницы в Excel

Разберем формулы номеров листов и страниц в Excel (как стандартные, так и пользовательские функции) для создания оглавления и удобной навигации по документу.

При создании оглавления отчета, книги или статьи нам важно знать не только название глав и проставить гиперссылки на них, но и их расположение в документе для того, чтобы при чтении нам было удобнее ориентироваться в содержимом документа и проще находить нужную информацию.
Добавить номера листов в оглавление можно вручную, однако в этом случае сам процесс проставления номеров может отнять достаточно большое количество времени. К тому же при изменении номера страницы одной главы поменяются номера и для всех последующих глав, поэтому такой способ нельзя назвать удобным и эффективным.

Рассмотрим варианты, которые позволят нам узнать номера листов и страниц в автоматическом режиме.
Однако прежде всего поймем в чем именно разница между листом и страницей в Excel.
Лист Excel — это таблица, состоящая из ячеек структурированная в виде данных в строках и столбцах, а страница — это представление листа при печати. Другими словами, в зависимости от настроек печати, один лист может содержать несколько страниц, поэтому задачу поиска номеров листов и страниц будем решать по отдельности.

Формула номера листа в Excel

Начиная с версии Excel 2013 добавлена стандартная функция ЛИСТ, которая возвращает номер листа по имеющейся ссылке.
Однако в более ранних версиях Excel стандартных функций, к сожалению, нет, поэтому для этого случая мы воспользуемся возможностями VBA и напишем пользовательскую функцию, которая по имени листа будет возвращать его порядковый номер.

Функция ЛИСТ (начиная с Excel 2013)

Синтаксис и описание функции:

Читать еще:  Как в excel пользоваться формулами в

ЛИСТ(значение)
Возвращает номер указанного листа.

  • Значение(необязательный аргумент) — название листа или ссылка, для которой нужно узнать номер листа.

В случае если аргумент не указан, то функция по умолчанию возвращает номер листа, где задана функция.
Рассмотрим принципы использования функции на примерах:


При работе с функцией обратите внимание, что формулы =ЛИСТ(«Лист2») и =ЛИСТ(A1) (при этом ячейка A1, например, содержит текст «Лист2») могут вернуть разные результаты, так как в первом случае аргумент представлен в виде текста (поиск листа по текстовому названию), а во втором — в виде ссылки (поиск листа по ссылающейся ячейке).

Номер листа на VBA

Для создания пользовательской функции перейдем в редактор Visual Basic (комбинация клавиш Alt + F11), далее создаем новый модуль и добавляем в него следующий код:

Excel At Excel вып.3: Собираем данные с разных листов

Дано: 22 таблицы унифицированного формата с перечнем помещений от 22 дочерних предприятий.

Задача: сделать сводную таблицу с данными всех 22 таблиц

Итак, решение. Есть три варианта решения данной задачи. Первый — использовать встроенную (начиная с excel 2013) надстройку PowerPivot (об этом методе мы поговорим позднее). Второй — посредством сводной таблицы через несколько диапазонов консолидации. Не люблю этот метод, т.к. такая сводная таблица имеет существенно более ограниченный функционал по сравнению с простой сводной таблицей. Наконец, третий вариант — это создать общую таблицу с использованием функции INDIRECT (ДВССЫЛ). Этому методу и посвятим сегодня наш пост.

Что мы имеем? 22 одинаковых по формату таблицы на отдельных листах и с разным количеством строк в каждой. Соответственно, для построения общей таблицы нам надо решить следующие «проблемы»:

1) как заставить общую таблицу «переключаться» с одного листа данных на другой?;

2) как заставить ее делать это в нужный момент (когда закончились строки на одном листе)?

Начнем со второго вопроса, т.к. ответ на него мы уже знаем. Это циклы, о которых мы подробно говорили в выпуске 2 «Циклы в Excel без VBA». Для решения проблемы достаточно в наш файл добавить лист с перечнем всех обществ, соответствующими названиями листов и количеством подсчетом количества строк на каждом таком листе.

Обратите внимание на формулу в столбце Кол-во записей. Мы могли бы использовать просто COUNTA (СЧЁТА) со ссылкой на каждый лист. Но это потребует времени для «линковки» каждого листа. Плюс мы с вами готовим универсальные решения, которые будут работать в независимости от количества листов.

Именно для этого в функцию COUNTA (СЧЁТА) и внедряется эта чуднАя функция INDIRECT (ДВССЫЛ). Остановимся на ней подробнее.

Функция имеет, по сути, единственный параметр — ref_text (ссылка_на_текст). Что делает эта функция? Всего-навсего преобразует текст в ссылку на ячейку. То есть она преобразует текст, например, «А1» в ссылку и возвращает значение ячейки А1.

Соответственно, зная несложные правила работы с текстом в Excel, мы можем легко сделать текст внутри изменяемым, а значит можем сделать и изменяемыми ссылки, которые будет возвращать функция INDIRECT (ДВССЫЛ).

Разберем пример выше. Функция INDIRECT (ДВССЫЛ) имеет следующий вид:

Чтобы понять, что означает текст внутри нее, давайте вспомним, как выглядит в Excel ссылка на ячейку на другом листе. Вот так:

Соответственно, в нашем случае у нас неизменен столбец B:B, а вот название листа меняется. Для «автоматизации» формулы заменяем Название листа на ссылку на название листа с данными по соответствующему обществу (столбец Название листа). Получаем следующее:

где все, что подчеркнуто — текст, а выделено жирным — ссылки.

ВАЖНО! Обратите внимание на кавычки и конкатенацию («склеивание») при помощи амперсента. Не забудьте, что текст вносится в кавычках и соединяется со ссылками при помощи символа &.

Получается, что INDIRECT (ДВССЫЛ) получает название листа из ячеек в столбце А:А (Название листа), а диапазон у нас прописан фиксированно текстом (В:В). COUNTA (СЧЁТА) же просто считает количество строк в столбце В:В на соответствующем листа за вычетом заголовка.

Перейдем к формированию общей таблицы. Как вы уже наверное прикинули, у нас будет два вложенных цикла: один — количество обществ, второй — количество записей на листе данных по соответствующему обществу. Соответственно, нам потребуются два вспомогательных столбца (определим их в столбцы А и В). Ровно так же, как мы делали на примере в выпуске 2 «Циклы в Excel без VBA», пишем формулу первого цикла:

=IF(A2=»»;»»;IF(COUNTIF($A$2:A2;A2)=OFFSET(‘Список обществ’!$E$2;A2-1;0);IF(A2+1>COUNTA(‘Список обществ’!A:A)-1;»»;A2+1);A2))

Затем пишем формулу второго цикла:

Далее при помощи уже знакомой нам функции OFFSET (СМЕЩ) заполняем столбцы из таблицы на листе Список обществ.

Осталось подтянуть данные с 22 листов по обществам. Тут нам опять поможет OFFSET (СМЕЩ), но уже в паре с INDIRECT (ДВССЫЛ).

OFFSET (СМЕЩ) передает в формулу название листа, а конструкция B2+1 — номер строки в столбце Е на том листе.

ВАЖНО! Обратите внимание, что OFFSET (СМЕЩ) вкладывается внутрь INDIRECT (ДВССЫЛ), а не наоборот.

Похожие статьи

Ссылка на основную публикацию
Похожие публикации
Adblock
detector