Список листов в Excel: как создать за 2 минуты (5 проверенных методов)

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

Самый быстрый способ — воспользоваться формулой на основе функции GET.WORKBOOK (доступна только в Excel для Windows через Имя менеджера), но она требует предварительной настройки. Альтернативные методы — Power Query (без макросов), надстройка Kutools, или скрипт на VBA — подходят для разных версий программы, включая Excel Online и MacOS. Ниже разберём каждый вариант с пошаговыми инструкциями и нюансами применения.

1. Ручной метод: копирование имён листов в столбец

Если в книге не больше 10–15 листов, а обновлять их список придётся редко, проще всего вручную перенести имена в отдельный лист. Этот способ не требует знаний формул или макросов, но уязвим к ошибкам при добавлении/удалении листов. Подходит для одноразовых отчётов или небольших файлов.

Алгоритм действий:

  • 📋 Создайте новый лист в книге (назовите его, например, «Оглавление»).
  • 🔍 Перейдите на первый рабочий лист, скопируйте его имя из вкладки внизу экрана (Ctrl+C).
  • 📑 Вставьте имя в ячейку A1 листа «Оглавление» (Ctrl+V).
  • 🔄 Повторите шаги 2–3 для всех остальных листов, заполняя столбец A.
  • 🔗 Преобразуйте список в гиперссылки: выделите ячейки с именами → правая кнопка → Ссылка → укажите адрес листа в формате 'ИмяЛиста'!A1.

Чтобы ускорить процесс, используйте горячие клавиши: Ctrl+PageUp/PageDown для переключения между листами. Для больших книг этот метод займёт слишком много времени — лучше выбрать автоматизированные решения из следующих разделов.

⚠️ Внимание: При ручном копировании легко пропустить лист или допустить опечатку в имени. Всегда проверяйте итоговый список на полноту, сравнивая количество строк с реальным числом листов (посмотреть его можно в правой части панели вкладок).

2. Формула GET.WORKBOOK: скрытая функция Excel для Windows

Функция GET.WORKBOOK — это уникальный инструмент, доступный только в Excel для Windows (не работает в MacOS или Excel Online). Она возвращает массив данных о книге, включая имена листов, но не отображается в мастер-функций. Чтобы ею воспользоваться, придётся вручную добавить имя через Диспетчер имён.

Инструкция по настройке:

  1. Перейдите на вкладку ФормулыДиспетчер имёнСоздать.
  2. В поле Имя введите ListSheets (или любое другое).
  3. В поле Диапазон вставьте формулу:
    =GET.WORKBOOK(1)
  4. Нажмите OK и закройте диспетчер.
  5. На листе «Оглавление» в ячейке A1 введите:
    =IFERROR(INDEX(ListSheets,ROW(A1)),"")

    и растяните формулу вниз до появления пустых ячеек.

Формула вернёт список имён листов в формате [Книга1.xlsx]Лист1. Чтобы оставить только имя листа, оберните её в функцию MID:

=MID(IFERROR(INDEX(ListSheets,ROW(A1)),"");FIND("]",IFERROR(INDEX(ListSheets,ROW(A1)),""))+1;99)
Преимущества метода Ограничения
Автоматическое обновление при добавлении/удалении листов Работает только в Excel для Windows
Не требует макросов или надстроек Сложный синтаксис для новичков
Можно интегрировать с гиперссылками Имена с пробелами или спецсимволами могут отображаться некорректно

3. Power Query: универсальный способ для всех версий Excel

Power Query (в новых версиях — Get & Transform Data) позволяет извлечь имена листов без макросов и работает во всех версиях Excel, включая MacOS и Excel Online. Метод основан на создании запроса к структуре книги и преобразовании данных в таблицу.

Пошаговая инструкция:

  • 📊 Перейдите на вкладку ДанныеПолучить данныеИз других источниковПустой запрос.
  • 🔧 В открывшемся редакторе Power Query введите в строку формул:
    =Excel.CurrentWorkbook()

    и нажмите Enter.

  • 📋 В появившейся таблице выберите столбец Name (имена листов) → удалите остальные столбцы.
  • 🔄 Нажмите Закрыть и загрузить в... → выберите Таблица → укажите лист «Оглавление» и ячейку A1.

Чтобы преобразовать список в кликабельные гиперссылки, добавьте вспомогательный столбец с формулой:

=HYPERLINK("#'" & A1 & "'!A1", A1)
⚠️ Внимание: Power Query не обновляет данные в реальном времени. После добавления/удаления листов необходимо вручную обновить запрос: правая кнопка по таблице → Обновить.
📊 Какой метод создания списка листов вы используете чаще?
Ручной ввод
Формулы (GET.WORKBOOK)
Power Query
VBA-скрипты

4. VBA-скрипт: автоматическое обновление за 1 клик

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

Код для вставки в редактор VBA:

Sub CreateSheetList()

Dim ws As Worksheet, wsList As Worksheet

Dim i As Integer, lastRow As Integer

' Создаём лист для оглавления (или очищаем существующий)

On Error Resume Next

Set wsList = ThisWorkbook.Sheets("Оглавление")

If wsList Is Nothing Then

Set wsList = ThisWorkbook.Sheets.Add(Before:=ThisWorkbook.Sheets(1))

wsList.Name = "Оглавление"

Else

wsList.Cells.Clear

End If

On Error GoTo 0

' Заголовок таблицы

wsList.Range("A1").Value = "Список листов"

wsList.Range("A1").Font.Bold = True

' Перебор всех листов и запись имён

i = 2

For Each ws In ThisWorkbook.Worksheets

If ws.Name <> "Оглавление" Then

wsList.Cells(i, 1).Value = ws.Name

' Создаём гиперссылку

wsList.Hyperlinks.Add Anchor:=wsList.Cells(i, 1), _

Address:="", SubAddress:="'" & ws.Name & "'!A1", _

TextToDisplay:=ws.Name

i = i + 1

End If

Next ws

' Автоподбор ширины столбца

wsList.Columns(1).AutoFit

End Sub

Как запустить скрипт:

  1. Нажмите Alt+F11, чтобы открыть редактор VBA.
  2. Вставьте код в модуль (InsertModule).
  3. Закройте редактор и вернитесь в Excel.
  4. Запустите макрос через ВидМакросы → выберите CreateSheetListВыполнить.

Включите макросы в настройках Excel (Файл → Параметры → Центр управления безопасностью → Параметры центра → Включить все макросы)|Сохраните файл в формате .xlsm (с поддержкой макросов)|Проверьте, нет ли в книге листа с именем "Оглавление" (скрипт его перезапишет)|Закройте все диалоговые окна перед запуском макроса-->

5. Надстройка Kutools: решение для новичков

Если формулы и макросы кажутся сложными, надстройка Kutools for Excel предлагает готовый инструмент Create List of Sheet Names. Она платная (от $39 за лицензию), но предоставляет 60-дневный пробный период. Подходит для пользователей, которым нужно быстрое и визуальное решение без технических навыков.

Как использовать:

  • 📥 Скачайте и установите Kutools с официального сайта.
  • 🔧 Перейдите на вкладку Kutools PlusWorkbookCreate List of Sheet Names.
  • 📋 В диалоговом окне выберите:
    • 📄 Лист для размещения списка (например, «Оглавление»);
    • 🔗 Формат вывода (гиперссылки или обычный текст);
    • 🔢 Порядок сортировки (по алфавиту или как в книге).
  • 🖱️ Нажмите OK — список будет сгенерирован автоматически.

Преимущество Kutools — возможность обновлять список одним кликом (Refresh Sheet Names List), а также дополнительные функции для работы с листами (например, групповой переименование). Однако надстройка увеличивает размер файла и может конфликтовать с другими плагинами.

Альтернативные надстройки для создания списка листов

ASAP Utilities (бесплатная версия с ограничениями) — включает инструмент Sheet → Create a list of all sheets.
Ablebits — плагин с функцией Sheet List, интегрированной в ленту Excel.
ExcelJet Tools — бесплатная надстройка с открытым исходным кодом для генерации оглавления.

6. Динамические массивы (Excel 365 и 2021): современный подход

В последних версиях Excel 365 и Excel 2021 появилась поддержка динамических массивов, которые позволяют создавать автоматически обновляемые списки без VBA или Power Query. Для этого используется комбинация функций LAMBDA, BYROW и TEXTAFTER.

Формула для ячейки A1:

=DROP(

TEXTAFTER(

FORMULATEXT(

LAMBDA(x,

BYROW(

x,

LAMBDA(r, "'" & r & "'!A1")

)

)(GET.WORKBOOK(1))

),

"]",

-1

),

1

)

Как это работает:

  1. GET.WORKBOOK(1) извлекает данные о книге, включая имена листов.
  2. FORMULATEXT и LAMBDA преобразуют их в массив.
  3. TEXTAFTER удаляет техническую часть строки (название книги).
  4. DROP убирает первую строку с заголовком.

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

=HYPERLINK("#" & A1#; A1#)
⚠️ Внимание: Динамические массивы работают только в Excel 365 и Excel 2021. В более ранних версиях формула вернёт ошибку #ИМЯ?. Также избегайте использования спецсимволов в именах листов (например, ' или !), чтобы не сломать синтаксис гиперссылок.

Сравнение методов: какой выбрать?

Метод Сложность Автообновление Поддерживаемые версии Требуемые навыки
Ручной ввод ❌ Нет Все версии Базовые знания Excel
GET.WORKBOOK ⭐⭐ ✅ Да Excel для Windows Знание формул
Power Query ⭐⭐⭐ ✅ (вручную) Excel 2016+ Опыт работы с запросами
VBA ⭐⭐⭐⭐ ✅ Да Все версии Знание основ VBA
Kutools ✅ (по кнопке) Все версии Нет
Динамические массивы ⭐⭐⭐ ✅ Да Excel 365/2021 Знание новых функций

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

  • 🏆 Для одноразовых задач подойдёт ручной ввод или Kutools.
  • 🔄 Для регулярного использования в Excel для Windows оптимален GET.WORKBOOK.
  • 💻 Для кроссплатформенных решений (включая MacOS) выбирайте Power Query.
  • 🛠️ Для полной автоматизации в крупных проектах напишите VBA-скрипт.
  • 🚀 В Excel 365/2021 используйте динамические массивы — это будущее формул.

FAQ: Частые вопросы по работе со списками листов

🔹 Можно ли создать выпадающий список листов для быстрого перехода?

Да, для этого:

  1. Создайте список листов любым из описанных методов.
  2. Выделите ячейку для выпадающего меню → ДанныеПроверка данных.
  3. В поле Тип данных выберите Список.
  4. В Источник укажите диапазон с именами листов (например, =Оглавление!$A$2:$A$100).
  5. Добавьте гиперссылку через функцию =HYPERLINK("#'" & B1 & "'!A1"; B1), где B1 — ячейка с выпадающим списком.
🔹 Почему функция GET.WORKBOOK не работает в моём Excel?

Вероятные причины:

  • Вы используете Excel для Mac или Excel Online — функция доступна только в Windows-версии.
  • Неправильно создано имя в Диспетчере имён (проверьте синтаксис: =GET.WORKBOOK(1)).
  • Книга сохранена в формате .xlsx — пересохраните как .xlsm (хотя макросы здесь не нужны, иногда помогает).
  • Отключены динамические массивы (для Excel 365): ФайлПараметрыФормулы → включите Динамические массивы.
🔹 Как обновить список листов после добавления новых листов?

Способы обновления в зависимости от метода:

Метод Действие для обновления
Ручной ввод Добавьте новые имена вручную.
GET.WORKBOOK Формула обновляется автоматически.
Power Query Правая кнопка по таблице → Обновить.
VBA Запустите макрос повторно (Alt+F8 → выберите CreateSheetList).
Kutools На вкладке KutoolsRefresh Sheet Names List.
🔹 Можно ли создать список листов в Google Таблицах?

В Google Sheets нет прямого аналога GET.WORKBOOK, но список листов можно получить с помощью Google Apps Script:

  1. Откройте РасширенияApps Script.
  2. Вставьте код:
    function listSheets() {
    

    var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();

    var output = [];

    sheets.forEach(function(sheet) {

    output.push([sheet.getName()]);

    });

    SpreadsheetApp.getActiveSheet().getRange("A1").setValues(output);

    }

  3. Сохраните скрипт и запустите его из меню Выполнить.

Для гиперссылок используйте формулу:

=HYPERLINK("#gid=" & MATCH(A1; INDEX(GET.SHEETNAMES()); 0); A1)
🔹 Как скрыть технические листы (например, «Оглавление») из списка?

Исключите ненужные листы с помощью условий:

  • В формуле добавьте проверку:
    =IF(OR(A1="Оглавление"; A1="Служебный"); ""; A1)
  • В VBA-скрипте добавьте условие:
    If ws.Name <> "Оглавление" And ws.Name <> "Служебный" Then
  • В Power Query отфильтруйте строки после загрузки данных.