Как сделать оглавление в excel. Формула номера листа и страницы в Excel. Номер страницы на VBA

Если в вашей рабочей книге Excel число листов перевалило за второй десяток, то навигация по листам начинает становится проблемой. Одним из красивых способов ее решения является создание листа-оглавления с гиперссылками, ведущими на соответствующие листы книги:

Есть несколько способов реализовать подобное.

Видео

Место в документе

ГИПЕРССЫЛКА (HYPERLINK) Shift и/или Ctrl

Оглавление .

Откройте Диспетчер Имен на вкладке Оглавление . В поле Диапазон (Reference) введите вот такую формулу:

ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1)
=GET.WORKBOOK(1)

Теперь в переменной Оглавление ИНДЕКС (INDEX)

Функция СТРОКА (ROW)

ЗАМЕНИТЬ (SUBST) и НАЙТИ (FIND) Диспетчер имен с вкладки Оглавление и изменим его формулу:


Оглавление Ctrl+Alt+F9

ЗАМЕНИТЬ(ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1);1;НАЙТИ(«]»;ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1));»»)&Т(ТДАТА())

Функция ТДАТА (NOW) Т ТДАТА

Для скрытия ошибок #ССЫЛКА (#REF) ИНДЕКС ЕСЛИОШИБКА (IFERROR)

ГИПЕРССЫЛКА (HYPERLINK)

Способ 3. Макрос

Способа 2

Alt+F11 Insert - Module

Sub SheetList() Dim sheet As Worksheet Dim cell As Range With ActiveWorkbook For Each sheet In ActiveWorkbook.Worksheets Set cell = Worksheets(1).Cells(sheet.Index, 1) .Worksheets(1).Hyperlinks.Add anchor:=cell, Address:="", SubAddress:=""" & sheet.Name & """ & "!A1" cell.Formula = sheet.Name Next End With End Sub

Закройте редактор Visual Basic и вернитесь в Excel. Добавьте в книгу чистый лист и поместите его на первое место. Затем нажмите Alt+F8 или откройте меню SheetList

Способе 1 .

Ссылки по теме

  • Что такое макрос, как его создать, куда копировать текст макроса, как запустить макрос?
  • Автоматическое создание оглавления книги одной кнопкой (надстройка PLEX)
  • Отправка писем с помощью функции ГИПЕРССЫЛКА
  • Быстрый переход между листами книги Excel

Способ 1. Создаваемые вручную гиперссылки

Вставьте в книгу пустой лист и добавьте на него гиперссылки на нужные вам листы, используя команду Вставка - Гиперссылка (Insert - Hyperlink) . В открывшемся окне нужно выбрать слева опцию Место в документе и задать внешнее текстовое отображение и адрес ячейки, куда приведет ссылка:

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

Эта функция создаст в текущей ячейке на всех выделенных листах гиперссылку с текстом «Назад в оглавление», щелчок по которой будет возвращать пользователя к листу Оглавление .

Способ 2. Динамическое оглавление с помощью формул

Это хоть и слегка экзотический, но весьма красивый и удобный способ создания автоматического листа оглавления вашей книги. Экзотический – потому что в нем используется недокументированная XLM-функция ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ (GET.WORKBOOK) , оставленная разработчиками для совместимости со старыми версиями Excel. Эта функция выгружает список всех листов текущей книги в заданную переменную, из которой мы потом можем их извлечь и использовать в нашем оглавлении.

Откройте Диспетчер Имен на вкладке Формулы (Formulas – Name Manager) и создайте новый именованный диапазон с именем, допустим, Оглавление . В поле Диапазон (Reference) введите вот такую формулу:

ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1)
=GET.WORKBOOK(1)

Теперь в переменной Оглавление содержатся наши искомые имена. Чтобы извлечь их оттуда на лист, можно воспользоваться функцией ИНДЕКС (INDEX) , которая «выдергивает» элементы из массива по их номеру:

Функция СТРОКА (ROW) выдает номер текущей строки и, в данном случае, нужна только для того, чтобы вручную не создавать отдельный столбец с порядковыми номерами извлекаемых элементов (1,2,3…). Таким образом, в ячейке А1 у нас получится имя первого листа, в А2 – имя второго и т.д.

Неплохо. Однако, как можно заметить, функция выдает не только имя листа, но и имя книги, которое нам не нужно. Чтобы его убрать, воспользуемся функциями ЗАМЕНИТЬ (SUBST) и НАЙТИ (FIND) , которые найдут символ закрывающей квадратной скобки (]) и заменят весь текст до этого символа включительно на пустую строку («»). Откроем еще раз Диспетчер имен с вкладки Формулы (Formulas - Name Manager) , двойным щелчком откроем созданный диапазон Оглавление и изменим его формулу:

ЗАМЕНИТЬ(ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1);1;НАЙТИ(«]»;ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1));»»)
=SUBST(GET.WORKBOOK(1);1;FIND(«]»;GET.WORKBOOK(1));»»)

Теперь наш список листов будет выглядеть существенно лучше:

Небольшая побочная трудность заключается в том, что наша формула в именованном диапазоне Оглавление будет пересчитываться только при вводе, либо при принудительном пересчете книги нажатием на сочетание клавиш Ctrl+Alt+F9 . Чтобы обойти этот неприятный момент, добавим к нашей формуле небольшой «хвост»:

ЗАМЕНИТЬ(ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1);1;НАЙТИ(«]»;ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1));»»)&Т(ТДАТА()) =SUBST(GET.WORKBOOK(1);1;FIND(«]»;GET.WORKBOOK(1));»»)&T(NOW())

Функция ТДАТА (NOW) выдает текущую дату (с временем), а функция Т превращает эту дату в пустую текстовую строку, которая затем приклеивается к нашему имени листа с помощью оператора склейки (&). Т.е. имя листа, фактически, не меняется, но поскольку функция ТДАТА пересчитывается и выдает новое время и дату при любом изменении листа, то и остальная часть нашей формулы вынуждена будет заново пересчитаться тоже и – как следствие – имена листов будут обновляться постоянно.

Для скрытия ошибок #ССЫЛКА (#REF) , которые будут появляться, если скопировать нашу формулу с функцией ИНДЕКС на большее количество ячеек, чем у нас есть листов, можно использовать функцию ЕСЛИОШИБКА (IFERROR) , которая перехватывает любые ошибки и заменяет их на пустую строку («»):

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

Способ 3. Макрос

И, наконец, для создания оглавления можно использовать и несложный макрос. Правда, запускать его придется каждый раз при изменении структуры книги - в отличие от Способа 2 , макрос их сам не отслеживает.

Откройте редактор Visual Basic, нажав Alt+F11 или выбрав (в старых версиях Excel) в меню Сервис - Макрос - Редактор Visual Basic (Tools - Macro - Visual Basic Editor) . В открывшемся окне редактора создайте новый пустой модуль (меню Insert - Module ) и скопируйте туда текст этого макроса:

Sub SheetList()
Dim sheet As Worksheet
Dim cell As Range
With ActiveWorkbook
For Each sheet In ActiveWorkbook.Worksheets
Set cell = Worksheets(1).Cells(sheet.Index, 1)
.Worksheets(1).Hyperlinks.Add anchor:=cell, Address:=»», SubAddress:=»‘» & sheet.Name & «‘» & «!A1»
cell.Formula = sheet.Name
Next
End With
End Sub Закройте редактор Visual Basic и вернитесь в Excel. Добавьте в книгу чистый лист и поместите его на первое место. Затем нажмите Alt+F8 или откройте менюСервис - Макрос - Макросы (Tools - Macro - Macros) . Найдите там созданный макрос SheetList и запустите его на выполнение. Макрос создаст на первом листе книги список гиперссылок с названиями листов. Щелчок по любой из них переместит Вас на нужный лист.

Для удобства можно создать также и обратные ссылки на всех листах вашей книги, которые будут вести назад в оглавление, как это было описано в Способе 1 .

Способ мой. Мой вариант

т
Название листа - =ЕСЛИОШИБКА(ЗАМЕНИТЬ(ИНДЕКС(Оглавление;СТРОКА()-3);1;НАЙТИ(«]»;ИНДЕКС(Оглавление;СТРОКА()-3));»»);»»)

Дата - =ЕСЛИОШИБКА(ЕСЛИ(ДВССЫЛ(«‘»&B4&»‘»&»!A1″)=0;»»;ДВССЫЛ(«‘»&B4&»‘»&»!A1″));»»)

Наименование - =ДВССЫЛ(«‘»&B4&»‘»&»!A3″)

ЗП - =ДВССЫЛ(«‘»&B4&»‘»&»!E5″)

налог на ЗП - =ДВССЫЛ(«‘»&B4&»‘»&»!E6″)

амортизация - =ДВССЫЛ(«‘»&B4&»‘»&»!E7″)

материалы - =ДВССЫЛ(«‘»&B4&»‘»&»!E8″)
всп материалы - =ДВССЫЛ(«‘»&B4&»‘»&»!E9″)

ДВССЫЛ(«‘»&B4&»‘»&»!E10″)

ДВССЫЛ(«‘»&B4&»‘»&»!E11″)=ДВССЫЛ(«‘»&B4&»‘»&»!E12″)=ДВССЫЛ(«‘»&B4&»‘»&»!E13″)=ДВССЫЛ(«‘»&B4&»‘»&»!E18″)=ДВССЫЛ(«‘»&B4&»‘»&»!E19″)

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

Нумерация в Excel

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

Способ 1: обычная нумерация

Обычная нумерация предполагает пронумеровать все листы документа.

  1. Прежде всего, нужно включить отображение колонтитулов. Переходим во вкладку «Вставка».
  2. На ленте в блоке инструментов «Текст» жмем на кнопку «Колонтитулы».
  3. После этого Эксель переходит в режим разметки, а на листах отображаются колонтитулы. Они располагаются в верхней и нижней области. Кроме того, каждый из них разделен на три части. Выбираем, в каком колонтитуле, а также в какой его части, будет производиться нумерация. В большинстве случаев выбирают левую часть верхнего колонтитула. Кликаем по той части, где планируется разместить номер.
  4. Во вкладке «Конструктор» блока дополнительных вкладок «Работа с колонтитулами» кликаем по кнопке «Номер страницы», которая размещена на ленте в группе инструментов «Элементы колонтитулов».
  5. Как видим, появляется специальный тег «&». Чтобы он преобразовался в конкретный порядковый номер, кликаем по любой области документа.
  6. Теперь на каждой странице документа Эксель появился порядковый номер. Чтобы он выглядел более презентабельно и выделялся на общем фоне, его можно отформатировать. Для этого выделяем запись в колонтитуле и наводим на неё курсор. Появляется меню форматирования, в котором можно произвести следующие действия:
    • изменить тип шрифта;
    • сделать его курсивом или полужирным;
    • изменить размер;
    • изменить цвет.

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

Способ 2: нумерация с указанием общего количества листов

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

  1. Активируем отображение нумерации, как было указано в предыдущем способе.
  2. Перед тегом пишем слово «Страница», а после него пишем слово «из».
  3. Устанавливаем курсор в поле колонтитула после слова «из». Кликаем по кнопке «Число страниц», которая размещена на ленте во вкладке «Главная».
  4. Кликаем по любому месту документа, чтобы вместо тегов отобразились значения.

Теперь у нас отображается информация не только о текущем номере листа, но и об общем их количестве.

Способ 3: нумерация со второй страницы

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

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

  1. Переходим в режим колонтитулов. Далее перемещаемся во вкладку «Конструктор колонтитулов», расположенную в блоке вкладок «Работа с колонтитулами».
  2. В блоке инструментов «Параметры» на ленте отмечаем галочкой пункт настроек «Особый колонтитул для первой страницы».
  3. Устанавливаем нумерацию при помощи кнопки «Номер страницы», как уже было показано выше, но делаем это на любой странице, кроме первой.

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

Способ 4: нумерация с указанной страницы

В то же время, бывают ситуации, когда нужно чтобы документ начинался не с первой страницы, а, например, с третьей или седьмой. Такая необходимость бывает не часто, но, тем не менее, иногда поставленный вопрос тоже требует решения.

  1. Проводим нумерацию обычным способом, путем использования соответствующей кнопки на ленте, подробное описание чего было дано выше.
  2. Переходим во вкладку «Разметка страницы».
  3. На ленте в левом нижнем углу блока инструментов «Параметры страницы» имеется значок в форме наклонной стрелки. Кликаем по нему.
  4. Открывается окно параметров, переходим во вкладку «Страница», если оно было открыто в другой вкладке. Ставим в поле параметра «Номер первой страницы» то число, нумерацию с которого нужно проводить. Кликаем на кнопку «OK».

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

Урок: Как убрать колонтитулы в Excel

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

Мы рады, что смогли помочь Вам в решении проблемы.

Задайте свой вопрос в комментариях, подробно расписав суть проблемы. Наши специалисты постараются ответить максимально быстро.

Как сделать содержание в Excel , если нет специальной функции? Можно использовать функцию "Гиперссылка" в Excel.

Например, у нас есть огромная таблица на несколько листов. На первой странице мы сделаем оглавление этой книги. Вторая и следующие страницы – это таблицы разных отделов (отдел продаж, отдел закупок, т.д.). Примерно, так (в примере таблицы маленькие).

Принцип составление содержания в том, чтобы сделать гиперссылки.

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

Итак, на каждой странице присваиваем имена ячейкам с названием отделов - «Отдел продаж», «Отдел закупок». Если таблицы длинные, то, можно присвоить имена и подразделениям – «1 отдел», «2 отдел». При присвоении имени, не забываем указать лист, на котором находится это название. Как присвоить имя ячейке, смотрите в статье «Присвоить имя в Excel ячейке, диапазону, формуле ». В диспетчере имен видны все имена.


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

На первой странице составляем оглавление из названия отделов и подразделений.

Теперь остается сделать гиперссылки на эти слова. Как это сделать, смотрите в статье «Как сделать гиперссылку в Excel ». Встаем на ячейку с названием, которое хотим сделать гиперссылкой. Из контекстного меню выбираем функцию «Гиперссылка». В диалоговом окне выбираем из списка нужное имя. Нажимаем «ОК». Всё, ссылка готова.

Всё, оглавление готово. Теперь можно быстро перейти на нужную страницу в нужный подраздел.

Ссылка на лист получается такой, как в ячейке А2. Но в строке формул можно подкорректировать название, например, как в ячейке А3 – убрали восклицательный знак и адрес ячейки. Если листы подписаны по-другому, то в списке будут эти названия листов. Смотрите ячейку А4.

Можно сделать на каждом листе книги обратную гиперссылку к оглавлению книги Excel .

Сначала присвоим имя оглавлению через функцию «Присвоить имя». Например - «Оглавление». Оглавление у нас на первом листе. На втором листе делаем гиперссылку на первый лист «Оглавление».

Теперь копируем эту гиперссылку. Переходим на лист 3, нажимаем клавишу «Ctrl», удерживая её нажатой, нажимаем левой мышкой ярлыки всех листов книги, в которых нужно установить ссылку на оглавление. Так мы выделили все листы сразу.

Теперь вставляем гиперссылку в нужную ячейку листа. Всё, ссылка «Оглавление» появилась на всех выделенных листах. Осталось разгруппировать листы. Для этого, нажимаем правой мышкой на любой выделенный ярлык и выбираем из контекстного меню функцию «Разгруппировать листы».

Вставьте в книгу пустой лист и добавьте на него гиперссылки на нужные вам листы, используя команду Вставка - Гиперссылка (Insert - Hyperlink) . В открывшемся окне нужно выбрать слева опцию Место в документе и задать внешнее текстовое отображение и адрес ячейки, куда приведет ссылка:

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

Эта функция создаст в текущей ячейке на всех выделенных листах гиперссылку с текстом "Назад в оглавление", щелчок по которой будет возвращать пользователя к листу Оглавление .

Способ 2. Динамическое оглавление с помощью формул

Это хоть и слегка экзотический, но весьма красивый и удобный способ создания автоматического листа оглавления вашей книги. Экзотический – потому что в нем используется недокументированная XLM-функция ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ (GET.WORKBOOK) , оставленная разработчиками для совместимости со старыми версиями Excel. Эта функция выгружает список всех листов текущей книги в заданную переменную, из которой мы потом можем их извлечь и использовать в нашем оглавлении.

Откройте Диспетчер Имен на вкладке Формулы (Formulas – Name Manager) и создайте новый именованный диапазон с именем, допустим, Оглавление . В поле Диапазон (Reference) введите вот такую формулу:

ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1)
=GET.WORKBOOK(1)

Теперь в переменной Оглавление содержатся наши искомые имена. Чтобы извлечь их оттуда на лист, можно воспользоваться функцией ИНДЕКС (INDEX) , которая «выдергивает» элементы из массива по их номеру:

Функция СТРОКА (ROW) выдает номер текущей строки и, в данном случае, нужна только для того, чтобы вручную не создавать отдельный столбец с порядковыми номерами извлекаемых элементов (1,2,3…). Таким образом, в ячейке А1 у нас получится имя первого листа, в А2 – имя второго и т.д.

Неплохо. Однако, как можно заметить, функция выдает не только имя листа, но и имя книги, которое нам не нужно. Чтобы его убрать, воспользуемся функциями ЗАМЕНИТЬ (SUBST) и НАЙТИ (FIND) , которые найдут символ закрывающей квадратной скобки (]) и заменят весь текст до этого символа включительно на пустую строку (""). Откроем еще раз Диспетчер имен с вкладки Формулы (Formulas - Name Manager) , двойным щелчком откроем созданный диапазон Оглавление и изменим его формулу:


=SUBST(GET.WORKBOOK(1);1;FIND("]";GET.WORKBOOK(1));"")

Теперь наш список листов будет выглядеть существенно лучше:

Небольшая побочная трудность заключается в том, что наша формула в именованном диапазоне Оглавление будет пересчитываться только при вводе, либо при принудительном пересчете книги нажатием на сочетание клавиш Ctrl+Alt+F9 . Чтобы обойти этот неприятный момент, добавим к нашей формуле небольшой "хвост":

ЗАМЕНИТЬ(ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1);1;НАЙТИ("]";ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1));"")&Т(ТДАТА()) =SUBST(GET.WORKBOOK(1);1;FIND("]";GET.WORKBOOK(1));"")&T(NOW())

Функция ТДАТА (NOW) выдает текущую дату (с временем), а функция Т превращает эту дату в пустую текстовую строку, которая затем приклеивается к нашему имени листа с помощью оператора склейки (&). Т.е. имя листа, фактически, не меняется, но поскольку функция ТДАТА пересчитывается и выдает новое время и дату при любом изменении листа, то и остальная часть нашей формулы вынуждена будет заново пересчитаться тоже и – как следствие – имена листов будут обновляться постоянно.

Для скрытия ошибок #ССЫЛКА (#REF) , которые будут появляться, если скопировать нашу формулу с функцией ИНДЕКС на большее количество ячеек, чем у нас есть листов, можно использовать функцию ЕСЛИОШИБКА (IFERROR) , которая перехватывает любые ошибки и заменяет их на пустую строку (""):

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

Способ 3. Макрос

И, наконец, для создания оглавления можно использовать и несложный макрос. Правда, запускать его придется каждый раз при изменении структуры книги - в отличие от Способа 2 , макрос их сам не отслеживает.

Откройте редактор Visual Basic, нажав Alt+F11 или выбрав (в старых версиях Excel) в меню Сервис - Макрос - Редактор Visual Basic (Tools - Macro - Visual Basic Editor) . В открывшемся окне редактора создайте новый пустой модуль (меню Insert - Module ) и скопируйте туда текст этого макроса:



Sub SheetList()
Dim sheet As Worksheet
Dim cell As Range
With ActiveWorkbook
For Each sheet In ActiveWorkbook.Worksheets
Set cell = Worksheets(1).Cells(sheet.Index, 1)
.Worksheets(1).Hyperlinks.Add anchor:=cell, Address:="", SubAddress:=""" & sheet.Name & """ & "!A1"
cell.Formula = sheet.Name
Next
End With
End Sub

Закройте редактор Visual Basic и вернитесь в Excel. Добавьте в книгу чистый лист и поместите его на первое место. Затем нажмите Alt+F8 или откройте меню Сервис - Макрос - Макросы (Tools - Macro - Macros) . Найдите там созданный макрос SheetList и запустите его на выполнение. Макрос создаст на первом листе книги список гиперссылок с названиями листов. Щелчок по любой из них переместит Вас на нужный лист.

Для удобства можно создать также и обратные ссылки на всех листах вашей книги, которые будут вести назад в оглавление, как это было описано в Способе 1 .

Способ мой. Мой вариант

т

Название листа - =ЕСЛИОШИБКА(ЗАМЕНИТЬ(ИНДЕКС(Оглавление;СТРОКА()-3);1;НАЙТИ("]";ИНДЕКС(Оглавление;СТРОКА()-3));"");"")
Ссылка - =ГИПЕРССЫЛКА("#"&"""&B4&"""&"!A10";">>>")
Дата - =ЕСЛИОШИБКА(ЕСЛИ(ДВССЫЛ("""&B4&"""&"!A1")=0;"";ДВССЫЛ("""&B4&"""&"!A1"));"")
Наименование - =ДВССЫЛ("""&B4&"""&"!A3")
ЗП - =ДВССЫЛ("""&B4&"""&"!E5")
налог на ЗП - =ДВССЫЛ("""&B4&"""&"!E6")
амортизация - =ДВССЫЛ("""&B4&"""&"!E7")

материалы - =ДВССЫЛ("""&B4&"""&"!E8")
всп материалы - =ДВССЫЛ("""&B4&"""&"!E9")
и далее по столбцам
=ДВССЫЛ("""&B4&"""&"!E10")
=ДВССЫЛ("""&B4&"""&"!E11")
=ДВССЫЛ("""&B4&"""&"!E12")
=ДВССЫЛ("""&B4&"""&"!E13")
=ДВССЫЛ("""&B4&"""&"!E18")
=ДВССЫЛ("""&B4&"""&"!E19")

Скачать видео и вырезать мп3 - у нас это просто!

Наш сайт - это отличный инструмент для развлечений и отдыха! Вы всегда можете просмотреть и скачать онлайн-видео, видео приколы, видео скрытой камеры, художественные фильмы, документальные фильмы, любительское и домашнее видео, музыкальные клипы, видео про футбол, спорт, аварии и катастрофы, юмор, музыка, мультфильмы, аниме, сериалы и многие другие видео совершенно бесплатно и без регистрации. Конвертировать это видео в mp3 и другие форматы: mp3, aac, m4a, ogg, wma, mp4, 3gp, avi, flv, mpg и wmv. Онлайн Радио - это радиостанции на выбор по странам, стилям и качеству. Онлайн Анекдоты - это популярные анекдоты на выбор по стилям. Порезка mp3 на рингтоны онлайн. Конвертер видео в мп3 и другие форматы. Онлайн Телевидение - это популярные TV каналы на выбор. Вещание телеканалов производится абсолютно бесплатно в режиме реального времени - эфир онлайн.

Если в вашей рабочей книге Excel число листов перевалило за второй десяток, то навигация по листам начинает становится проблемой. Одним из красивых способов ее решения является создание листа-оглавления с гиперссылками, ведущими на соответствующие листы книги:

Есть несколько способов реализовать подобное.

Видео

Место в документе

ГИПЕРССЫЛКА (HYPERLINK) Shift и/или Ctrl

Оглавление .

Откройте Диспетчер Имен на вкладке Оглавление . В поле Диапазон (Reference) введите вот такую формулу:

ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1)
=GET.WORKBOOK(1)

Теперь в переменной Оглавление ИНДЕКС (INDEX)

Функция СТРОКА (ROW)

ЗАМЕНИТЬ (SUBST) и НАЙТИ (FIND) Диспетчер имен с вкладки Оглавление и изменим его формулу:


Оглавление Ctrl+Alt+F9

ЗАМЕНИТЬ(ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1);1;НАЙТИ(«]»;ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1));»»)&Т(ТДАТА())

Функция ТДАТА (NOW) Т ТДАТА

Для скрытия ошибок #ССЫЛКА (#REF) ИНДЕКС ЕСЛИОШИБКА (IFERROR)

ГИПЕРССЫЛКА (HYPERLINK)

Способ 3. Макрос

Способа 2

Alt+F11 Insert - Module

Sub SheetList() Dim sheet As Worksheet Dim cell As Range With ActiveWorkbook For Each sheet In ActiveWorkbook.Worksheets Set cell = Worksheets(1).Cells(sheet.Index, 1) .Worksheets(1).Hyperlinks.Add anchor:=cell, Address:="", SubAddress:=""" & sheet.Name & """ & "!A1" cell.Formula = sheet.Name Next End With End Sub

Закройте редактор Visual Basic и вернитесь в Excel. Добавьте в книгу чистый лист и поместите его на первое место. Затем нажмите Alt+F8 или откройте меню SheetList

Способе 1 .

Ссылки по теме

  • Что такое макрос, как его создать, куда копировать текст макроса, как запустить макрос?
  • Автоматическое создание оглавления книги одной кнопкой (надстройка PLEX)
  • Отправка писем с помощью функции ГИПЕРССЫЛКА
  • Быстрый переход между листами книги Excel

Способ 1. Создаваемые вручную гиперссылки

Вставьте в книгу пустой лист и добавьте на него гиперссылки на нужные вам листы, используя команду Вставка - Гиперссылка (Insert - Hyperlink) . В открывшемся окне нужно выбрать слева опцию Место в документе и задать внешнее текстовое отображение и адрес ячейки, куда приведет ссылка:

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

Эта функция создаст в текущей ячейке на всех выделенных листах гиперссылку с текстом «Назад в оглавление», щелчок по которой будет возвращать пользователя к листу Оглавление .

Способ 2. Динамическое оглавление с помощью формул

Это хоть и слегка экзотический, но весьма красивый и удобный способ создания автоматического листа оглавления вашей книги. Экзотический – потому что в нем используется недокументированная XLM-функция ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ (GET.WORKBOOK) , оставленная разработчиками для совместимости со старыми версиями Excel. Эта функция выгружает список всех листов текущей книги в заданную переменную, из которой мы потом можем их извлечь и использовать в нашем оглавлении.

Откройте Диспетчер Имен на вкладке Формулы (Formulas – Name Manager) и создайте новый именованный диапазон с именем, допустим, Оглавление . В поле Диапазон (Reference) введите вот такую формулу:

ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1)
=GET.WORKBOOK(1)

Теперь в переменной Оглавление содержатся наши искомые имена. Чтобы извлечь их оттуда на лист, можно воспользоваться функцией ИНДЕКС (INDEX) , которая «выдергивает» элементы из массива по их номеру:

Функция СТРОКА (ROW) выдает номер текущей строки и, в данном случае, нужна только для того, чтобы вручную не создавать отдельный столбец с порядковыми номерами извлекаемых элементов (1,2,3…). Таким образом, в ячейке А1 у нас получится имя первого листа, в А2 – имя второго и т.д.

Неплохо. Однако, как можно заметить, функция выдает не только имя листа, но и имя книги, которое нам не нужно. Чтобы его убрать, воспользуемся функциями ЗАМЕНИТЬ (SUBST) и НАЙТИ (FIND) , которые найдут символ закрывающей квадратной скобки (]) и заменят весь текст до этого символа включительно на пустую строку («»). Откроем еще раз Диспетчер имен с вкладки Формулы (Formulas - Name Manager) , двойным щелчком откроем созданный диапазон Оглавление и изменим его формулу:

ЗАМЕНИТЬ(ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1);1;НАЙТИ(«]»;ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1));»»)
=SUBST(GET.WORKBOOK(1);1;FIND(«]»;GET.WORKBOOK(1));»»)

Теперь наш список листов будет выглядеть существенно лучше:

Небольшая побочная трудность заключается в том, что наша формула в именованном диапазоне Оглавление будет пересчитываться только при вводе, либо при принудительном пересчете книги нажатием на сочетание клавиш Ctrl+Alt+F9 . Чтобы обойти этот неприятный момент, добавим к нашей формуле небольшой «хвост»:

ЗАМЕНИТЬ(ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1);1;НАЙТИ(«]»;ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1));»»)&Т(ТДАТА()) =SUBST(GET.WORKBOOK(1);1;FIND(«]»;GET.WORKBOOK(1));»»)&T(NOW())

Функция ТДАТА (NOW) выдает текущую дату (с временем), а функция Т превращает эту дату в пустую текстовую строку, которая затем приклеивается к нашему имени листа с помощью оператора склейки (&). Т.е. имя листа, фактически, не меняется, но поскольку функция ТДАТА пересчитывается и выдает новое время и дату при любом изменении листа, то и остальная часть нашей формулы вынуждена будет заново пересчитаться тоже и – как следствие – имена листов будут обновляться постоянно.

Для скрытия ошибок #ССЫЛКА (#REF) , которые будут появляться, если скопировать нашу формулу с функцией ИНДЕКС на большее количество ячеек, чем у нас есть листов, можно использовать функцию ЕСЛИОШИБКА (IFERROR) , которая перехватывает любые ошибки и заменяет их на пустую строку («»):

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

Способ 3. Макрос

И, наконец, для создания оглавления можно использовать и несложный макрос. Правда, запускать его придется каждый раз при изменении структуры книги - в отличие от Способа 2 , макрос их сам не отслеживает.

Откройте редактор Visual Basic, нажав Alt+F11 или выбрав (в старых версиях Excel) в меню Сервис - Макрос - Редактор Visual Basic (Tools - Macro - Visual Basic Editor) . В открывшемся окне редактора создайте новый пустой модуль (меню Insert - Module ) и скопируйте туда текст этого макроса:

Sub SheetList()
Dim sheet As Worksheet
Dim cell As Range
With ActiveWorkbook
For Each sheet In ActiveWorkbook.Worksheets
Set cell = Worksheets(1).Cells(sheet.Index, 1)
.Worksheets(1).Hyperlinks.Add anchor:=cell, Address:=»», SubAddress:=»‘» & sheet.Name & «‘» & «!A1»
cell.Formula = sheet.Name
Next
End With
End Sub Закройте редактор Visual Basic и вернитесь в Excel. Добавьте в книгу чистый лист и поместите его на первое место. Затем нажмите Alt+F8 или откройте менюСервис - Макрос - Макросы (Tools - Macro - Macros) . Найдите там созданный макрос SheetList и запустите его на выполнение. Макрос создаст на первом листе книги список гиперссылок с названиями листов. Щелчок по любой из них переместит Вас на нужный лист.

Для удобства можно создать также и обратные ссылки на всех листах вашей книги, которые будут вести назад в оглавление, как это было описано в Способе 1 .

Способ мой. Мой вариант

т
Название листа - =ЕСЛИОШИБКА(ЗАМЕНИТЬ(ИНДЕКС(Оглавление;СТРОКА()-3);1;НАЙТИ(«]»;ИНДЕКС(Оглавление;СТРОКА()-3));»»);»»)

Дата - =ЕСЛИОШИБКА(ЕСЛИ(ДВССЫЛ(«‘»&B4&»‘»&»!A1″)=0;»»;ДВССЫЛ(«‘»&B4&»‘»&»!A1″));»»)

Наименование - =ДВССЫЛ(«‘»&B4&»‘»&»!A3″)

ЗП - =ДВССЫЛ(«‘»&B4&»‘»&»!E5″)

налог на ЗП - =ДВССЫЛ(«‘»&B4&»‘»&»!E6″)

амортизация - =ДВССЫЛ(«‘»&B4&»‘»&»!E7″)

материалы - =ДВССЫЛ(«‘»&B4&»‘»&»!E8″)
всп материалы - =ДВССЫЛ(«‘»&B4&»‘»&»!E9″)

ДВССЫЛ(«‘»&B4&»‘»&»!E10″)

ДВССЫЛ(«‘»&B4&»‘»&»!E11″)=ДВССЫЛ(«‘»&B4&»‘»&»!E12″)=ДВССЫЛ(«‘»&B4&»‘»&»!E13″)=ДВССЫЛ(«‘»&B4&»‘»&»!E18″)=ДВССЫЛ(«‘»&B4&»‘»&»!E19″)