Постановка задачи

Имеем две таблицы на разных листах одной книги: таблицу с заказами от клиентов (на листе Заказы) и таблицу с клиентской базой (лист Клиенты). Работая с таблицей заказов, хочется иметь возможность быстро переходить на таблицу с клиентами, чтобы просмотреть подробные данные по клиенту (адрес, ФИО директора и т.д.). То есть, другими словами, хочется в таблице заказов иметь гиперссылку в каждой строке, при щелчке мышью по которой будет происходить переход на лист Клиенты, причем именно на ту строчку где упоминается данный клиент:

Что-то типа типа функции ВПР (VLOOKUP), но не ради подстановки данных, а для быстрой ссылки из одной таблицы в другую.

Шаг 1. Создаем переменную с именем листа

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

В Excel 2007/2010 для этого можно воспользоваться вкладкой Формулы (Formulas) и кнопкой Диспетчер имен (Name Manager) . В более старых версиях выбрать в меню Вставка — Имя — Присвоить (Insert — Name — Define) . В открывшемся окне нажмите кнопку Создать (New) и введите туда имя переменной (я назвал ее для примера Мой_Лист) и формулу в строку Диапазон (Reference) :

=ПСТР(ЯЧЕЙКА("имяфайла";Клиенты!$A$1); ПОИСК("[";ЯЧЕЙКА("имяфайла";Клиенты!$A$1)) ;256) &"!"

Разберем эту конструкцию на составляющие для понятности:

  1. ЯЧЕЙКА("имяфайла";Клиенты!$A$1) — функция, которая по адресу заданной ячейки (А1 с листа Клиенты) выдает любые нужные данные по листу и файлу. В данном случае — полный путь к текущему файлу до листа в виде D:Рабочие документыДоговоры[Бюджет.xls]Клиенты
  2. Из этой строки нам нужна только часть с именем файла и листа (без диска и папок), поэтому мы ищем первое вхождение квадратной открывающей скобки в строку с помощью функции ПОИСК (FIND) и затем вырезаем из строки все, начиная с этого символа и до конца (256 символов) с помощью функции ПСТР (MID) .
  3. В конце, к вырезанному фрагменту с именем файла и листа приклеиваем восклицательный знак — стандартный разделитель имен листов и адресов ячеек в формулах, т.к. дальше должны будут идти адреса ячеек.

Таким образом эта формула выдает на выходе имя текущего файла в квадратных скобках с расширением с приклееным к нему именем листа и восклицательным знаком. Работу формулы легко проверить — просто введите в любую пустую ячейку =Мой_Лист и нажмите клавишу Enter.

Шаг 2. Создаем гиперссылки

Выделите пустую ячейку в строке напротив первого заказа и введите туда вот такую формулу:

Разберем ее на составляющие аналогичным образом:

  1. Функция ПОИСКПОЗ(B2;Клиенты!$A$1:$A$7;0) — ищет порядковый номер ячейки в диапазоне А1:А7 на листе Клиенты, где встречается название текущего клиента из B2 (последний аргумент =0 означает поиск точного совпадения, аналогично функции ВПР)
  2. Функция АДРЕС формирует адрес ячейки (в виде текстовой строки) по номеру строки и столбца, т.е. адрес ячейки с нужным клиентом, куда должна потом ссылаться гиперссылка
  3. Затем мы приклеиваем к адресу ссылку на файл и лист (переменную Мой_Лист) и используем это в качестве аргумента для функции ГИПЕРССЫЛКА (HYPERLINK) , которая, собственно, и создает нужную нам ссылку.

При желании, можно заменить внешнее представление гиперссылки с банальных символов ">>" на что-нибудь поинтереснее с помощью функции СИМВОЛ (CHAR) , которая умеет выводить нестандартные символы по их кодам:

Так, например, если использовать шрифт Wingdings 3 и символ с кодом 117, то можно получить вот такие симпатичные значки гиперссылок:

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

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

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

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

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

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

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

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

Для перехода на страницу интернет, например 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 (ячейки, листы книги), так и частями другим программных продуктов (файл notepad, Word) или страницами в сети интернет. Данная функция имеет следующую синтаксическую запись:

Описание 2-х параметров аргументов функции:

  1. Адрес – текстовое значение, соответствующее имени открываемого объекта и полному пути для доступа к нему. Этот параметр является обязательным для заполнения. Адрес может указывать на конкретную часть документа, к примеру, ячейку или диапазон ячеек, закладку в текстовом редакторе Word. Путь может содержать данные о пути к файлу в файловой системе ПК (например, «C:UserssoulpDocuments») или адресе URL на страницу в сети интернет.
  2. [имя] – текстовое значение, которое будет отображено в качестве текста гиперссылки. Отображается синим цветом с нижним подчеркиванием текста.
  1. Параметры адрес и [имя] принимают значения в виде текстовой строки в кавычках (“адрес_гиперссылки”, “имя_гиперссылки”) либо ссылки на ячейки, в которых содержатся адрес и название объекта соответственно.
  2. В приложении Excel Online (онлайн версия программы Excel для работы через веб-интерфейс) функцию ГИПЕРССЫЛКА можно использовать только для создания гиперссылок на веб-объекты, поскольку приложения-браузеры не имеют доступа к файловым системам устройств.
  3. Если в ячейке, на которую ссылается параметр [имя], установилось значение кода ошибки #ЗНАЧ!, в качестве текста созданной гиперсылки будет также отображено «#ЗНАЧ!».
  4. Для выделения ячейки, содержащей гиперссылку, без перехода по ней необходимо навести курсор мыши на требуемую ячейку, нажать и не отпускать левую кнопку мыши до момента, пока курсор не изменит свою форму на «+». Затем можно отпустить кнопку мыши, требуемая ячейка будет выделена.
  5. В онлайн версии программы Excel для выделения ячейки, содержащей гиперссылку, необходимо навести курсор так, чтобы он выглядел в виде обычной стрелки. Для перехода по гиперссылке необходимо навести курсор непосредственно на ее текст. В этом случае курсор примет вид руки.
  6. Для создания гиперссылки на интернет-ресурс можно использовать следующую запись: =ГИПЕРССЫЛКА(“http://www.yandex.ru/”;”Поисковая система Яндекс”).
  7. Гиперссылка на документ, хранящийся в файловой системе ПК, может быть создана следующим образом: =ГИПЕРССЫЛКА(“C:UserssoulpDownloadsдокумент_2”;”Ссылка на документ_2”). При переходе по данной гиперссылке появится диалоговое окно с предупреждением о возможном наличии вредоносного ПО в файле. Для открытия файла необходимо нажать кнопку «ОК» в этом диалоговом окне. Если по указанному пути файл отсутствует, появится соответствующее уведомление.
  8. Для создания гиперссылки на другой лист в книге Excel можно использовать подобную запись: =ГИПЕРССЫЛКА(“[Книга1.xlsx]Лист2!A1”;”Лист2”). При переходе по данной гиперссылке будет открыт Лист2, а фокус будет установлен на ячейку A1.
  9. Гиперссылку можно вставить используя визуальный пользовательский интерфейс (соответствующий пункт контекстного меню, кнопка на панели задач).



Примеры использования функции ГИПЕРССЫЛКА в Excel

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

На новом листе создадим следующую таблицу:

Для создания гиперссылки используем формулу:

Описание аргументов функции:

  • "[Пример_1.xlsx]Прибыль!A1" – полный адрес ячейки A1 листа «Прибыль» книги «Пример_1.xlsx».
  • "Прибыль" – текст, который будет отображать гиперссылка.

Аналогично создадим гиперссылки для остальных страниц. В результате получим:

Динамическая гиперссылка в Excel

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

Для создания ссылки на ресурс http://valuta.pw/ в ячейке D7 введем следующую формулу:

  • http://valuta.pw/ — URL адрес требуемого сайта;
  • "Курсы валют" – текст, отображаемый в гиперссылке.

В результате получим:

Примечание: указанная веб-страница будет открыта в браузере, используемом в системе по умолчанию.

Отправка писем через Excel по гиперссылке

Пример 3. Работник предприятия испытывает трудности с использованием функции ЕСЛИ в Excel. Для решения проблемы в одном из документов он имеет готовую форму для отправки письма по email. Отправка письма происходит по нажатию на гиперссылку. Рассмотрим, как устроена данная форма отправки писем.

Форма выглядит следующим образом:

Значения ячеек B3 и B4 могут быть изменены на усмотрение пользователя (в зависимости от причины обращения в службу поддержки). В ячейке B5 записана функция:

Данная функция выполняет конкатенацию (сцепление текстовых строк, принимаемых в качестве параметров).

  • mailto: — команда отправки письма;
  • B2 – ячейка, содержащая email службы поддержки;
  • "?subject=" – команда для записи темы письма;
  • КОДИР.URL(B3) – функция, которая выполняет преобразование текста темы письма в кодировку URL;
  • "&body=" – команда для записи текста письма;
  • КОДИР.URL(B4) – текст письма в кодировке URL.

В ячейке B6 записана следующая функция:

  • B5 – URL-команда на отправку письма, содержащая тему и текст письма;
  • "Отправить письмо" – имя гиперссылки.

В результате нажатия на гиперссылку будет открыт используемый по умолчанию почтовый клиент, например, Outlook (но в данном случае, стандартный клиент Windows).