Разберем формулы номеров листов и страниц в Excel
(как стандартные, так и пользовательские функции) для создания оглавления и удобной навигации по документу.
При создании оглавления отчета, книги или статьи нам важно знать не только название глав и проставить гиперссылки на них, но и их расположение в документе для того, чтобы при чтении нам было удобнее ориентироваться в содержимом документа и проще находить нужную информацию.
Добавить номера листов в оглавление можно вручную, однако в этом случае сам процесс проставления номеров может отнять достаточно большое количество времени. К тому же при изменении номера страницы одной главы поменяются номера и для всех последующих глав, поэтому такой способ нельзя назвать удобным и эффективным.
Рассмотрим варианты, которые позволят нам узнать номера листов и страниц в автоматическом режиме.
Однако прежде всего поймем в чем именно разница между листом и страницей в Excel.
Лист Excel — это таблица, состоящая из ячеек структурированная в виде данных в строках и столбцах, а страница — это представление листа при печати. Другими словами, в зависимости от настроек печати, один лист может содержать несколько страниц
, поэтому задачу поиска номеров листов и страниц будем решать по отдельности.
Начиная с версии Excel 2013 добавлена стандартная функция ЛИСТ
, которая возвращает номер листа по имеющейся ссылке.
Однако в более ранних версиях Excel стандартных функций, к сожалению, нет, поэтому для этого случая мы воспользуемся возможностями VBA и напишем пользовательскую функцию, которая по имени листа будет возвращать его порядковый номер.
Синтаксис и описание функции:
ЛИСТ(значение)
Возвращает номер указанного листа.
В случае если аргумент не указан, то функция по умолчанию возвращает номер листа, где задана функция.
Рассмотрим принципы использования функции на примерах:
При работе с функцией обратите внимание, что формулы =ЛИСТ("Лист2") и =ЛИСТ(A1) (при этом ячейка A1, например, содержит текст «Лист2») могут вернуть разные результаты, так как в первом случае аргумент представлен в виде текста (поиск листа по текстовому названию), а во втором — в виде ссылки (поиск листа по ссылающейся ячейке).
Для создания пользовательской функции перейдем в редактор ( Alt + F11), далее создаем новый модуль и добавляем в него следующий код:
Visual Basic
Function SheetNumber(SheetName As String) As Integer "функция SheetNumber (аргумент SheetName в виде текста) возвращающая целые значения SheetNumber = Worksheets(SheetName).Index "приравнивание возвращаемому значению порядкового номера листа End Function
Теперь мы можем использовать данную функцию удобным нам способом — либо непосредственно ввести формулу в любую ячейку, либо же воспользоваться мастером функций (найти функцию можно в категории Определенные пользователем ):
Вставить можно с помощью колонтитулов, но если мы хотим добавить номер страницы в ячейку на листе, то такой способ не подходит. Воспользуемся параметром листа PageSetup.Pages.Count
, который определяет количество страниц заданного листа, отправляемых на печать.
Алгоритм поиска номера страницы следующий — для всех листов, находящихся между двумя заданными листами, суммируем количество находящихся на них страниц.
Возвращаемся в редактор Visual Basic и добавляем в модуль новую функцию:
Visual Basic
Function PageNumber(SheetName1 As String, SheetName2 As String) As Integer "функция PageNumber (аргументы SheetName1 и SheetName2 в виде текста) возвращающая целые значения Dim FirstPage As Integer, LastPage As Integer "инициализация переменных Application.Volatile True "автоматический пересчет PageNumber = 0 "возвращаемое значение = 0 FirstPage = Worksheets(SheetName1).Index "получение номера начального листа LastPage = Worksheets(SheetName2).Index "получение номера конечного листа For i = FirstPage To LastPage - 1 "цикл по листам PageNumber = PageNumber + Sheets(i).PageSetup.Pages.Count "прибавление количества страниц текущего листа к возвращаемому значению Next i End Function
Function PageNumber (SheetName1 As String , SheetName2 As String ) As Integer "функция PageNumber (аргументы SheetName1 и SheetName2 в виде текста) возвращающая целые значения Dim FirstPage As Integer , LastPage As Integer "инициализация переменных Application . Volatile True "автоматический пересчет PageNumber = 0 "возвращаемое значение = 0 FirstPage = Worksheets (SheetName1 ) . Index "получение номера начального листа LastPage = Worksheets (SheetName2 ) . Index "получение номера конечного листа Next iEnd Function |
Таким образом, полученная функция ищет количество страниц между двумя листами, которые задаются в качестве аргументов.
Возвращаемся в Excel и введем новую формулу для подсчета номеров страниц:
При этом на листах «Часть 3» и «Часть 4» (из предыдущего примера) мы дополнительно добавили данные, чтобы лист стал включать в себя несколько страниц.
К сожалению, минусом данного варианта определения номера страницы является скоростью работы функции.
При выполнении операции PageSetup.Pages.Count Excel для каждой страницы обращается к настройкам печати принтера, что на книгах большого размера приводит к долгому времени расчёта функции.
Поскольку функции SheetNumber
и PageNumber
зависят только от текстовых переменных, то при изменении количества листов или страниц в книге они автоматически не пересчитываются.
Чтобы частично избежать проблемы пересчета мы добавили в код функции (3 строка) команду Application.Volatile True
, которая пересчитывает результат функции при изменении содержимого ячеек (аналог полного пересчет формул по нажатию F9).
Если же все равно функция существенно замедляет работу, то можно исключить данную строку из кода, однако в этом случае не забудьте убедиться, что в итоговом варианте документа формулы пересчитаны.
Если в вашей рабочей книге Excel число листов перевалило за второй десяток, то навигация по листам начинает становится проблемой. Одним из красивых способов ее решения является создание листа-оглавления с гиперссылками, ведущими на соответствующие листы книги:
Есть несколько способов реализовать подобное.
Место в документе
ГИПЕРССЫЛКА (HYPERLINK) Shift и/или Ctrl
Оглавление .
Откройте Диспетчер Имен на вкладке Оглавление . В поле Диапазон (Reference) введите вот такую формулу:
ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1)
=GET.WORKBOOK(1)
Теперь в переменной Оглавление ИНДЕКС (INDEX)
Функция СТРОКА (ROW)
ЗАМЕНИТЬ (SUBST) и НАЙТИ (FIND) Диспетчер имен с вкладки Оглавление и изменим его формулу:
Оглавление Ctrl+Alt+F9
ЗАМЕНИТЬ(ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1);1;НАЙТИ(«]»;ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1));»»)&Т(ТДАТА())
Функция ТДАТА (NOW) Т ТДАТА
Для скрытия ошибок #ССЫЛКА (#REF) ИНДЕКС ЕСЛИОШИБКА (IFERROR)
ГИПЕРССЫЛКА (HYPERLINK)
Способа 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 .
Вставьте в книгу пустой лист и добавьте на него гиперссылки на нужные вам листы, используя команду Вставка - Гиперссылка (Insert - Hyperlink) . В открывшемся окне нужно выбрать слева опцию Место в документе и задать внешнее текстовое отображение и адрес ячейки, куда приведет ссылка:
Для удобства можно создать также и обратные ссылки на всех листах вашей книги, которые будут вести назад в оглавление. Чтобы не заниматься ручным созданием гиперссылок и копированием их потом на каждый лист, лучше использовать другой метод - функцию ГИПЕРССЫЛКА (HYPERLINK) . Выделяем все листы в книге, куда хотим добавить обратную ссылку (для массового выделения листов можно использовать клавиши Shift и/или Ctrl ) и в любую подходящую ячейку вводим функцию следующего вида:
Эта функция создаст в текущей ячейке на всех выделенных листах гиперссылку с текстом «Назад в оглавление», щелчок по которой будет возвращать пользователя к листу Оглавление .
Это хоть и слегка экзотический, но весьма красивый и удобный способ создания автоматического листа оглавления вашей книги. Экзотический – потому что в нем используется недокументированная 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) , которая будет формировать адрес для перехода из имени листа:
И, наконец, для создания оглавления можно использовать и несложный макрос. Правда, запускать его придется каждый раз при изменении структуры книги - в отличие от Способа 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 с указанием их общего количества на каждом листе.
Теперь у нас отображается информация не только о текущем номере листа, но и об общем их количестве.
Бывают случаи, что пронумеровать нужно не весь документ, а только начиная с определенного места. Давайте разберемся, как это сделать.
Для того, чтобы выставить нумерацию со второй страницы, а это уместно, например, при написании рефератов, дипломных и научных работ, когда на титульном листе не допускается присутствие номеров, нужно произвести действия, указанные ниже.
Как видим, после этого все листы пронумерованы, кроме первого. Причем первая страница учитывается в процессе нумерации других листов, но, тем не менее, на ней самой номер не отображается.
В то же время, бывают ситуации, когда нужно чтобы документ начинался не с первой страницы, а, например, с третьей или седьмой. Такая необходимость бывает не часто, но, тем не менее, иногда поставленный вопрос тоже требует решения.
Как видим, после этого номер фактически первой страницы в документе изменился на тот, который был указан в параметрах. Соответственно, нумерация последующих листов тоже сместилась.
Урок: Как убрать колонтитулы в Excel
Пронумеровать страницы в табличном процессоре Excel довольно просто. Эта процедура выполняется при включенном режиме колонтитулов. Кроме того, пользователь может настроить нумерацию под себя: отформатировать отображение номера, добавить указание общего числа листов документа, нумеровать с определенного места и т.д.
Мы рады, что смогли помочь Вам в решении проблемы.
Задайте свой вопрос в комментариях, подробно расписав суть проблемы. Наши специалисты постараются ответить максимально быстро.
Если в вашей рабочей книге Excel число листов перевалило за второй десяток, то навигация по листам начинает становится проблемой. Одним из красивых способов ее решения является создание листа-оглавления с гиперссылками, ведущими на соответствующие листы книги:
Есть несколько способов реализовать подобное.
Место в документе
ГИПЕРССЫЛКА (HYPERLINK) Shift и/или Ctrl
Оглавление .
Откройте Диспетчер Имен на вкладке Оглавление . В поле Диапазон (Reference) введите вот такую формулу:
ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1)
=GET.WORKBOOK(1)
Теперь в переменной Оглавление ИНДЕКС (INDEX)
Функция СТРОКА (ROW)
ЗАМЕНИТЬ (SUBST) и НАЙТИ (FIND) Диспетчер имен с вкладки Оглавление и изменим его формулу:
Оглавление Ctrl+Alt+F9
ЗАМЕНИТЬ(ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1);1;НАЙТИ(«]»;ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1));»»)&Т(ТДАТА())
Функция ТДАТА (NOW) Т ТДАТА
Для скрытия ошибок #ССЫЛКА (#REF) ИНДЕКС ЕСЛИОШИБКА (IFERROR)
ГИПЕРССЫЛКА (HYPERLINK)
Способа 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 .
Вставьте в книгу пустой лист и добавьте на него гиперссылки на нужные вам листы, используя команду Вставка - Гиперссылка (Insert - Hyperlink) . В открывшемся окне нужно выбрать слева опцию Место в документе и задать внешнее текстовое отображение и адрес ячейки, куда приведет ссылка:
Для удобства можно создать также и обратные ссылки на всех листах вашей книги, которые будут вести назад в оглавление. Чтобы не заниматься ручным созданием гиперссылок и копированием их потом на каждый лист, лучше использовать другой метод - функцию ГИПЕРССЫЛКА (HYPERLINK) . Выделяем все листы в книге, куда хотим добавить обратную ссылку (для массового выделения листов можно использовать клавиши Shift и/или Ctrl ) и в любую подходящую ячейку вводим функцию следующего вида:
Эта функция создаст в текущей ячейке на всех выделенных листах гиперссылку с текстом «Назад в оглавление», щелчок по которой будет возвращать пользователя к листу Оглавление .
Это хоть и слегка экзотический, но весьма красивый и удобный способ создания автоматического листа оглавления вашей книги. Экзотический – потому что в нем используется недокументированная 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) , которая будет формировать адрес для перехода из имени листа:
И, наконец, для создания оглавления можно использовать и несложный макрос. Правда, запускать его придется каждый раз при изменении структуры книги - в отличие от Способа 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 удобна для составления таблиц и произведения расчетов. Рабочая область – это множество ячеек, которые можно заполнять данными. Впоследствии – форматировать, использовать для построения графиков, диаграмм, сводных отчетов.
Работа в Экселе с таблицами для начинающих пользователей может на первый взгляд показаться сложной. Она существенно отличается от принципов построения таблиц в Word. Но начнем мы с малого: с создания и форматирования таблицы. И в конце статьи вы уже будете понимать, что лучшего инструмента для создания таблиц, чем Excel не придумаешь.
Работа с таблицами в Excel для чайников не терпит спешки. Создать таблицу можно разными способами и для конкретных целей каждый способ обладает своими преимуществами. Поэтому сначала визуально оценим ситуацию.
Посмотрите внимательно на рабочий лист табличного процессора:
Это множество ячеек в столбцах и строках. По сути – таблица. Столбцы обозначены латинскими буквами. Строки – цифрами. Если вывести этот лист на печать, получим чистую страницу. Без всяких границ.
Сначала давайте научимся работать с ячейками, строками и столбцами.
Чтобы выделить весь столбец, щелкаем по его названию (латинской букве) левой кнопкой мыши.
Для выделения строки – по названию строки (по цифре).
Чтобы выделить несколько столбцов или строк, щелкаем левой кнопкой мыши по названию, держим и протаскиваем.
Для выделения столбца с помощью горячих клавиш ставим курсор в любую ячейку нужного столбца – нажимаем Ctrl + пробел. Для выделения строки – Shift + пробел.
Если информация при заполнении таблицы не помещается нужно изменить границы ячеек:
Для изменения ширины столбцов и высоты строк сразу в определенном диапазоне выделяем область, увеличиваем 1 столбец /строку (передвигаем вручную) – автоматически изменится размер всех выделенных столбцов и строк.
Примечание. Чтобы вернуть прежний размер, можно нажать кнопку «Отмена» или комбинацию горячих клавиш CTRL+Z. Но она срабатывает тогда, когда делаешь сразу. Позже – не поможет.
Чтобы вернуть строки в исходные границы, открываем меню инструмента: «Главная»-«Формат» и выбираем «Автоподбор высоты строки»
Для столбцов такой метод не актуален. Нажимаем «Формат» - «Ширина по умолчанию». Запоминаем эту цифру. Выделяем любую ячейку в столбце, границы которого необходимо «вернуть». Снова «Формат» - «Ширина столбца» - вводим заданный программой показатель (как правило это 8,43 - количество символов шрифта Calibri с размером в 11 пунктов). ОК.
Выделяем столбец /строку правее /ниже того места, где нужно вставить новый диапазон. То есть столбец появится слева от выделенной ячейки. А строка – выше.
Нажимаем правой кнопкой мыши – выбираем в выпадающем меню «Вставить» (или жмем комбинацию горячих клавиш CTRL+SHIFT+"=").
Отмечаем «столбец» и жмем ОК.
Совет. Для быстрой вставки столбца нужно выделить столбец в желаемом месте и нажать CTRL+SHIFT+"=".
Все эти навыки пригодятся при составлении таблицы в программе Excel. Нам придется расширять границы, добавлять строки /столбцы в процессе работы.
Теперь при печати границы столбцов и строк будут видны.
С помощью меню «Шрифт» можно форматировать данные таблицы Excel, как в программе Word.
Поменяйте, к примеру, размер шрифта, сделайте шапку «жирным». Можно установить текст по центру, назначить переносы и т.д.
Простейший способ создания таблиц уже известен. Но в Excel есть более удобный вариант (в плане последующего форматирования, работы с данными).
Сделаем «умную» (динамическую) таблицу:
Примечание. Можно пойти по другому пути – сначала выделить диапазон ячеек, а потом нажать кнопку «Таблица».
Теперь вносите необходимые данные в готовый каркас. Если потребуется дополнительный столбец, ставим курсор в предназначенную для названия ячейку. Вписываем наименование и нажимаем ВВОД. Диапазон автоматически расширится.
Если необходимо увеличить количество строк, зацепляем в нижнем правом углу за маркер автозаполнения и протягиваем вниз.
С выходом новых версий программы работа в Эксель с таблицами стала интересней и динамичней. Когда на листе сформирована умная таблица, становится доступным инструмент «Работа с таблицами» - «Конструктор».
Здесь мы можем дать имя таблице, изменить размер.
Доступны различные стили, возможность преобразовать таблицу в обычный диапазон или сводный отчет.
Возможности динамических электронных таблиц MS Excel огромны. Начнем с элементарных навыков ввода данных и автозаполнения:
Если нажать на стрелочку справа каждого подзаголовка шапки, то мы получим доступ к дополнительным инструментам для работы с данными таблицы.
Иногда пользователю приходится работать с огромными таблицами. Чтобы посмотреть итоги, нужно пролистать не одну тысячу строк. Удалить строки – не вариант (данные впоследствии понадобятся). Но можно скрыть. Для этой цели воспользуйтесь числовыми фильтрами (картинка выше). Убираете галочки напротив тех значений, которые должны быть спрятаны.
Когда количество листов в вашей книге растёт и навигация по ней становиться проблематичной, предлагаю создать лист оглавление книги, с ссылками на нужные листы.
вставьте в книгу пустой лист
в окне «Вставка гиперссылки» выбираем с чем связать гиперссылку: «Связать с местом в документе». Адрес ячейки — в какую именно ячейку листа будет перемещён курсор. и выбираем место лист Сингапур. В поле «Текст» — указываем название листа. После выбора параметров нажимаем ОК.
Текст в ячейке изменил свой внешний вид. Это означает, что для него создана гиперссылка. Точно так же настроим гиперссылки на другие листы книги. Обратим внимание, что гиперссылка, по которой осуществлялся переход, меняет свой цвет.
Для удобства можно создать также и обратные ссылки на всех листах вашей книги, которые будут вести назад в оглавление. Чтобы не заниматься ручным созданием гиперссылок и копированием их потом на каждый лист, лучше использовать другой метод — функцию ГИПЕРССЫЛКА.
Выделяем все листы в книге, куда хотим добавить обратную ссылку (для массового выделения листов нужно удерживая клавишу Ctrl выделить с помощью мыши нужные листы), и в любую подходящую ячейку вводим функцию следующего вида:
Эта функция создаст в текущей ячейке на всех выделенных листах гиперссылку с текстом «Назад в оглавление», щелчок по которой будет возвращать пользователя к листу Оглавление.
Как создать кнопку на меню:
Чтобы сделать меню более приятным визуально — добавим кнопки
для начала создадим фигуру будущей кнопки: Вставка → Фигуры → Выбираем любую фигуру:
Напечатаем текст внутри фигуры. Таким образом мы нарисовали кнопку.
Выделим фигуру → переходим на вкладку Вставка → Гиперссылка. Далее назначаем ей параметры как в первом пункте, и нажимаем ОК. Аналогично можно создать другие кнопки-гиперссылки и на различных листах книги. И добавить немного творчества с помощью меню «ФОРМАТ»