Один список на все листы в excel

Сборка данных со всех листов книги в одну таблицу

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

Допустим, что у нас есть книга с большим количеством листов, где на каждом листе находится таблица с данными по сделкам в этом городе:

Исходный файл

Давайте будем исходить из следующих соображений:

  • Структура и столбцов на всех листах одинаковая.
  • Количество строк на всех листах разное.
  • Листы могут в будущем добавляться или удаляться.

Наша задача — собрать все данные со всех листов в одну таблицу, чтобы потом с ней работать (фильтровать, сортировать, построить сводную и т.д.) Сделать это можно разными способами, но самыми удобными будут, пожалуй, Power Query и макросы.

Способ 1. Сборка данных с листов с помощью Power Query

Если вы ещё не сталкивались в своей работе с Power Query, то очень советую копнуть в этом направлении. Использование этой бесплатной и уже встроенной по умолчанию в Excel надстройки, способно полностью перевернуть весь ваш процесс сбора и анализа данных, упростив всё в разы. С задачей сбора данных с листов Power Query справляется весьма успешно.

Шаг 1. Подключаемся к файлу

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

Если у вас Excel 2010-2013 и вы установили Power Query как отдельную надстройку, то откройте вкладку Power Query, если у вас Excel 2016 или новее, то вкладку Данные (Data). Нажмите кнопку Получить данные / Создать запрос — Из файла — Книга Excel (Get Data / New Query — From file — From Excel) и укажите наш файл с исходными листами:

Указываем файл

В появившемся окне Навигатора (Navigator) выберите слева любой лист и нажмите в правом нижнем углу кнопку Преобразовать данные (Transform Data) или Изменить (Edit):

Выбираем любой лист

Должно появиться окно редактора запросов Power Query, где отобразятся данные с выбранного листа. Поскольку нам нужен, на самом деле, не один лист, а все, то удалим в правой панели все шаги, кроме первого шага Источник (Source) используя крестик слева от названия шага:

Удаляем лишние шаги

То, что останется после удаления шагов — это список всех объектов, которые Power Query «видит» во внешних файлах, а это:

  • листы (Sheet)
  • «умные таблицы» (Table)
  • именованные диапазоны (Defined Name)
  • области печати (Print Area), которые, по сути, являются одним из видов именованного диапазона

Шаг 2. Отбираем нужные листы

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

Во-первых, легко можно отфильтровать нужные объекты по типу по столбцу Kind. Например, если вам нужны только листы:

Фильтруем листы

Во-вторых, если нам нужны только видимые листы, то дополнительно можно отфильтровать ещё по столбцу Hidden.

В-третьих, если вы точно знаете размер таблиц, которые вам нужны, то можно легко добавить к нашему списку вычисляемый столбец с формулой, выводящей количество столбцов или строк и использовать потом эти числа для отбора. Для этого выберем на вкладке Добавление столбца — Настраиваемый столбец (Add Column — Custom Column) и введём в открывшееся окно следующую формулу (с учётом регистра):

Подсчет числа столбцов

Для подсчёта количества строк можно использовать аналогичную функцию Table.RowCount. Получившийся столбец затем можно использовать для фильтрации «мусорных» таблиц.

В-четвёртых, можно извлечь с каждого листа содержимое любой ячейки (например, А1) и использовать его для отбора. Например, если там нет слова «Товар«, то это не наш лист. Для извлечения нужно будет также добавить вычисляемый столбец с такой конструкцией:

=[Data][Column1]{0}

Здесь:

  • [Data] — имя столбца, где в каждой ячейке лежат таблицы с содержимым каждого листа (убийственная формулировка для рядового пользователя Excel, да, я знаю)
  • [Column1] — имя столбца на листе, из которого мы хотим извлечь данные
  • {0} — номер строки (считая с нуля), откуда мы хотим взять данные

Извлекаем содержимое А1 с каждого листа

После фильтрации «мусора» все добавленные вспомогательные столбцы можно, конечно же, спокойно удалить, оставив только колонки Name и Data.

Шаг 3. Разворачиваем таблицы

Теперь развернём содержимое таблиц в одно целое, используя кнопку с двойными стрелками в заголовке столбца Data, отключив флажок Использовать исходное имя столбца как префикс (Use original column name as prefix):

Разворачиваем вложенные таблицы

После нажатия на ОК Power Query соберёт для нас все данные в одну мегатаблицу со всех отобранных листов нашего файла:

Собранные данные

Останется лишь «навести блеск», а именно:

  1. Поднять первую строку в шапку таблицы кнопкой Использовать первую строку в качестве заголовков (Use first row as headers) на вкладке Главная (Home).
  2. Переименовать первый столбец в Город двойным щелчком на заголовку.
  3. Удалить повторяющиеся шапки таблиц, попавшие в одну кучу вместе с данными, используя фильтр по столбцу Товар.

Всё. Осталось только дать нашему запросу подходящее имя (например, Сборка) в панели справа и выгрузить затем собранные данные обратно в Excel кнопкой Закрыть и загрузить на вкладке Главная (Home — Close & Load):

Собранные данные

В будущем, при любых изменениях в исходном файле достаточно будет лишь обновить наш запрос, щелкнув по собранной таблице правой кнопкой мыши и выбрав команду Обновить (Refresh) или такой же кнопкой на вкладке Данные (Data) или сочетанием клавиш Ctrl+Alt+F5.

Плюсы такого подхода:

  • Не нужно уметь программировать, всё делается быстро и почти без использования клавиатуры.
  • Последовательность столбцов на разных листах может быть различной — это не играет роли, столбцы правильно встанут друг под друга в итоговой сборке.
  • Можно быстро обновлять запрос при изменении исходных данных.

Минусы этого способа:

  • Собираются только значения, т.е. формулы с исходных листов не сохраняются.
  • Названия столбцов должны на всех листах совпадать с точностью до регистра.
  • Нельзя выбрать какой именно диапазон берётся с каждого листа — это определяется автоматически (берётся всё, что есть).
  • Для обновления нужен Excel 2016 или новее или установленная надстройка Power Query.

Способ 2. Сборка данных с листов макросом на VBA

Похожего результата можно добиться и с помощью более «классического» подохода — макросом на VBA. Для этого на вкладке Разработчик (Developer) нажмите кнпоку Visual Basic или воспользуйтесь сочетанием клавиш Alt+F11. В открывшемся окне добавьте новый модуль через меню Insert — Module и скопируйте туда текст вот такого макроса:

Sub CollectDataFromAllSheets()
    Dim ws As Worksheet
    
    Set wbCurrent = ActiveWorkbook
    Workbooks.Add
    Set wbReport = ActiveWorkbook
    
    'копируем на итоговый лист шапку таблицы из первого листа
    wbCurrent.Worksheets(1).Range("A1:D1").Copy Destination:=wbReport.Worksheets(1).Range("A1")
    
    'проходим в цикле по всем листам исходного файла
    For Each ws In wbCurrent.Worksheets
    
        'определяем номер последней строки на текущем листе и на листе сборки
        n = wbReport.Worksheets(1).Range("A1").CurrentRegion.Rows.Count
        
        'задаем исходный диапазон, который надо скопировать с каждого листа - любой вариант на выбор:
        Set rngData = ws.Range("A1:D5")            'фиксированный диапазон или
        Set rngData = ws.UsedRange                 'всё, что есть на листе или
        Set rngData = ws.Range("F5").CurrentRegion    'область, начиная от ячейки F5 или
        Set rngData = ws.Range("A2", ws.Range("A2").SpecialCells(xlCellTypeLastCell))    'от А2 и до конца листа
        
        'копируем исходный диапазон и вставляем в итоговую книгу со следующей строки
        rngData.Copy Destination:=wbReport.Worksheets(1).Cells(n + 1, 1)
        
    Next ws
End Sub

Запустить созданный макрос можно на вкладке Разработчик кнопкой Макросы (Developer — Macros) или с помощью сочетания клавиш Alt+F8. Макрос автоматически создаст новую книгу и скопирует туда нужные вам данные.

Плюсы такого подхода:

  • Формулы с исходных листов сохраняются в сборке.
  • Имена столбцов не играют роли.
  • Макрос будет работать в любой версии Excel.
  • Можно выбирать, что именно брать с каждого листа (конкретный фиксированный диапазон или весь лист).

Минусы этого способа:

  • Последовательность столбцов на всех листах должна быть одинаковой, т.к. происходит, по сути, тупое копирование таблиц друг-под-друга.
  • Защита от макросов должна быть отключена.
  • Быстрого обновления, как это было с Power Query, здесь, к сожалению, не будет. При изменении исходных данных придётся запустить макрос повторно.

Способ 3. Готовый макрос из надстройки PLEX

Если лень возиться с макросами или Power Query, то можно пойти по пути наименьшего сопротивления — использовать готовый макрос (кнопка Собрать) из моей надстройки PLEX для Excel. Это, может, и не спортивно, но зато эффективно:

Сборка данных с листов через PLEX

В общем, выбирайте любой удобный вам вариант и действуйте. Выбор — это всегда хорошо.

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

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

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

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

Создание раскрывающегося списка

Путь: меню «Данные» — инструмент «Проверка данных» — вкладка «Параметры». Тип данных – «Список».

Создание выпадающего списка.

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

  1. Вручную через «точку-с-запятой» в поле «Источник».
  2. Ввод значений.

  3. Ввести значения заранее. А в качестве источника указать диапазон ячеек со списком.
  4. Проверка вводимых значений.

  5. Назначить имя для диапазона значений и в поле источник вписать это имя.

Имя диапазона.
Раскрывающийся список.

Любой из вариантов даст такой результат.



Выпадающий список в Excel с подстановкой данных

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

  1. Выделяем диапазон для выпадающего списка. В главном меню находим инструмент «Форматировать как таблицу».
  2. Форматировать как таблицу.

  3. Откроются стили. Выбираем любой. Для решения нашей задачи дизайн не имеет значения. Наличие заголовка (шапки) важно. В нашем примере это ячейка А1 со словом «Деревья». То есть нужно выбрать стиль таблицы со строкой заголовка. Получаем следующий вид диапазона:
  4. Выпадающий список.

  5. Ставим курсор в ячейку, где будет находиться выпадающий список. Открываем параметры инструмента «Проверка данных» (выше описан путь). В поле «Источник» прописываем такую функцию:

Ввод значения в источник.

Протестируем. Вот наша таблица со списком на одном листе:

Список и таблица.

Добавим в таблицу новое значение «елка».

Добавлено значение елка.

Теперь удалим значение «береза».

Удалено значение береза.

Осуществить задуманное нам помогла «умная таблица», которая легка «расширяется», меняется.

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

Ввод данных из списка.

  1. Сформируем именованный диапазон. Путь: «Формулы» — «Диспетчер имен» — «Создать». Вводим уникальное название диапазона – ОК.
  2. Создание имени.

  3. Создаем раскрывающийся список в любой ячейке. Как это сделать, уже известно. Источник – имя диапазона: =деревья.
  4. Снимаем галочки на вкладках «Сообщение для ввода», «Сообщение об ошибке». Если этого не сделать, Excel не позволит нам вводить новые значения.
  5. Сообщение об ошибке.

  6. Вызываем редактор Visual Basic. Для этого щелкаем правой кнопкой мыши по названию листа и переходим по вкладке «Исходный текст». Либо одновременно нажимаем клавиши Alt + F11. Копируем код (только вставьте свои параметры).
  7. Private Sub Worksheet_Change(ByVal Target As Range)
     
    Dim lReply As Long
     
        If Target.Cells.Count > 1 Then Exit Sub
        If Target.Address = "$C$2" Then
         If IsEmpty(Target) Then Exit Sub
           If WorksheetFunction.CountIf(Range("Деревья"), Target) = 0 Then
              lReply = MsgBox("Добавить введенное имя " & _
                             Target & " в выпадающий список?", vbYesNo + vbQuestion)
              If lReply = vbYes Then
                  Range("Деревья").Cells(Range("Деревья").Rows.Count + 1, 1) = Target
              End If
           End If
         End If
    End Sub
     
  8. Сохраняем, установив тип файла «с поддержкой макросов».
  9. Сообщение об ошибке.

  10. Переходим на лист со списком. Вкладка «Разработчик» — «Код» — «Макросы». Сочетание клавиш для быстрого вызова – Alt + F8. Выбираем нужное имя. Нажимаем «Выполнить».

Макрос.

Когда мы введем в пустую ячейку выпадающего списка новое наименование, появится сообщение: «Добавить введенное имя баобаб в выпадающий список?».

Нажмем «Да» и добавиться еще одна строка со значением «баобаб».

Выпадающий список в Excel с данными с другого листа/файла

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

  1. Делаем активной ячейку, куда хотим поместить раскрывающийся список.
  2. Открываем параметры проверки данных. В поле «Источник» вводим формулу: =ДВССЫЛ(“[Список1.xlsx]Лист1!$A$1:$A$9”).

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

Как сделать зависимые выпадающие списки

Возьмем три именованных диапазона:

Три именованных диапазона.

Это обязательное условие. Выше описано, как сделать обычный список именованным диапазоном (с помощью «Диспетчера имен»). Помним, что имя не может содержать пробелов и знаков препинания.

  1. Создадим первый выпадающий список, куда войдут названия диапазонов.
  2. Список диапазонов.

  3. Когда поставили курсор в поле «Источник», переходим на лист и выделяем попеременно нужные ячейки.
  4. Таблица со списком.

  5. Теперь создадим второй раскрывающийся список. В нем должны отражаться те слова, которые соответствуют выбранному в первом списке названию. Если «Деревья», то «граб», «дуб» и т.д. Вводим в поле «Источник» функцию вида =ДВССЫЛ(E3). E3 – ячейка с именем первого диапазона.
  6. Второй раскрывающийся список.

    Выбор нескольких значений из выпадающего списка Excel

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

    1. Создаем стандартный список с помощью инструмента «Проверка данных». Добавляем в исходный код листа готовый макрос. Как это делать, описано выше. С его помощью справа от выпадающего списка будут добавляться выбранные значения.
    2. Private Sub Worksheet_Change(ByVal Target As Range)
          On Error Resume Next
          If Not Intersect(Target, Range("Е2:Е9")) Is Nothing And Target.Cells.Count = 1 Then
              Application.EnableEvents = False
              If Len(Target.Offset(0, 1)) = 0 Then
                  Target.Offset(0, 1) = Target
              Else
                  Target.End(xlToRight).Offset(0, 1) = Target
              End If
              Target.ClearContents
              Application.EnableEvents = True
          End If
      End Sub
       
    3. Чтобы выбранные значения показывались снизу, вставляем другой код обработчика.
    4. Private Sub Worksheet_Change(ByVal Target As Range)
          On Error Resume Next
          If Not Intersect(Target, Range("Н2:К2")) Is Nothing And Target.Cells.Count = 1 Then
              Application.EnableEvents = False
              If Len(Target.Offset(1, 0)) = 0 Then
                  Target.Offset(1, 0) = Target
              Else
                  Target.End(xlDown).Offset(1, 0) = Target
              End If
              Target.ClearContents
              Application.EnableEvents = True
          End If
      End Sub
       
    5. Чтобы выбираемые значения отображались в одной ячейке, разделенные любым знаком препинания, применим такой модуль.

    6. Private Sub Worksheet_Change(ByVal Target As Range)
          On Error Resume Next
          If Not Intersect(Target, Range("C2:C5")) Is Nothing And Target.Cells.Count = 1 Then
              Application.EnableEvents = False
              newVal = Target
              Application.Undo
              oldval = Target
              If Len(oldval) <> 0 And oldval <> newVal Then
                  Target = Target & "," & newVal
              Else
                  Target = newVal
              End If
              If Len(newVal) = 0 Then Target.ClearContents
              Application.EnableEvents = True
          End If
      End Sub

    Не забываем менять диапазоны на «свои». Списки создаем классическим способом. А всю остальную работу будут делать макросы.

    Выпадающий список с поиском

    1. На вкладке «Разработчик» находим инструмент «Вставить» – «ActiveX». Здесь нам нужна кнопка «Поле со списком» (ориентируемся на всплывающие подсказки).
    2. Вставить ActiveX.

    3. Щелкаем по значку – становится активным «Режим конструктора». Рисуем курсором (он становится «крестиком») небольшой прямоугольник – место будущего списка.
    4. Элемент ActiveX.

    5. Жмем «Свойства» – открывается перечень настроек.
    6. Свойства ActiveX.

    7. Вписываем диапазон в строку ListFillRange (руками). Ячейку, куда будет выводиться выбранное значение – в строку LinkedCell. Для изменения шрифта и размера – Font.

    Скачать пример выпадающего списка

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

Создание раскрывающегося списка

Создание раскрывающегося списка

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

Ваш браузер не поддерживает видео. Установите Microsoft Silverlight, Adobe Flash Player или Internet Explorer 9.

  1. На новом листе введите данные, которые должны отображаться в раскрывающемся списке. Желательно, чтобы элементы списка содержались в
    таблице Excel
    . Если это не так, список можно быстро преобразовать в таблицу, выделив любую ячейку диапазона и нажав

    Ctrl+T

    .

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

    Примечания: 

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

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

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

  3. Перейдите на вкладку
    данных

    на ленте, затем


    в проверку данных

    .

    Примечание: 
    Если вы не можете щелкнуть

    проверку данных

    , возможно, рабочий лист защищен или общедоступен.
    Разблокируйте определенные области защищенной книги
    или прекратите совместное использование листа, а затем повторите шаг 3.

  4. На вкладке

    Параметры

    в поле

    Разрешить

    щелкните

    Список

    .

  5. Щелкните поле

    Источник

    и выделите диапазон списка. В примере данные находятся на листе «Города» в диапазоне A2:A9. Обратите внимание на то, что строка заголовков отсутствует в диапазоне, так как она не является одним из вариантов, доступных для выбора.

    Параметры списка проверки данных

  6. Если можно оставить ячейку пустой, установите флажок

    Игнорировать пустые

    ячейки.

  7. Установите флажок

    Список допустимых значений

  8. Откройте вкладку

    Сообщение для ввода.

    • Если вы хотите, чтобы при выборе ячейки появлялось всплывающее сообщение, установите флажок

      Отображать подсказку, если ячейка является текущей

      и введите заголовок и сообщение в соответствующие поля (до 225 символов). Если вы не хотите, чтобы сообщение отображалось, снимите этот флажок.

      Вкладка "Сообщение для ввода" в диалоговом окне "Проверка данных"

  9. Откройте вкладку

    Сообщение об ошибке.

    • Если вы хотите, чтобы при вводе значения, которого нет в списке, появлялось всплывающее сообщение, установите флажок

      Выводить сообщение об ошибке,

      выберите параметр в поле

      Вид

      и введите заголовок и сообщение. Если вы не хотите, чтобы сообщение отображалось, снимите этот флажок.

      Параметры сообщения об ошибке для раскрывающегося списка проверки данных

  10. Не знаете, какой параметр выбрать в поле

    Вид

    ?

    • Чтобы отобразить сообщение, не препятствующее вводу данных, которые не содержатся в раскрывающемся списке, выберите вариант

      Сведения

      или Предупреждение. Если выбрать вариант «Сообщение», сообщение будет отображаться со значком
      В сообщении отображается значок информации, но это не мешает людям выбирать элементы из раскрывающегося списка
      , а если «Предупреждение» — со значком
      В сообщении отображается значок предупреждения, но это не мешает людям выбирать элементы из раскрывающегося списка
      .

    • Чтобы заблокировать пользователям ввод данных, которые не содержатся в раскрывающемся списке, выберите вариант

      Остановка

      .

      Примечание: 
      Если вы не добавили заголовок и текст, по умолчанию выводится заголовок «Microsoft Excel» и сообщение «Введенное значение неверно. Набор значений, которые могут быть введены в ячейку, ограничен».

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

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

Раскрывающийся список со значениями "Высокий", "Средний" и "Низкий"

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

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

  2. Выделите ячейки, для которых нужно ограничить ввод данных.

  3. На вкладке

    Данные

    в группе

    Инструменты

    щелкните

    Проверка данных

    или

    Проверить

    .

    Меню "Данные" на панели инструментов Excel с выбранной кнопкой "Проверка данных"

    Примечание: 
    Если команда проверки недоступна, возможно, лист защищен или книга является общей. Если книга является общей или лист защищен, изменить параметры проверки данных невозможно. Дополнительные сведения о защите книги см. в статье
    Защита книги
    .

  4. Откройте вкладку

    Параметры

    и во всплывающем меню

    Разрешить

    щелкните

    пункт Список

    .

  5. Щелкните поле

    Источник

    и выделите на листе список допустимых элементов.

    Диалоговое окно свернется, чтобы было видно весь лист.

  6. Нажмите клавишу ВВОД или кнопку

    Развернуть
    Кнопка "Развернуть" в диалоговом окне "Проверка данных"
    , чтобы развернуть диалоговое окно, а затем щелкните

    ОК

    .

    Советы: 

    • Значения также можно ввести непосредственно в поле

      Источник

      через запятую.

    • Чтобы изменить список допустимых элементов, просто измените значения в списке-источнике или диапазон в поле

      Источник

    • Можно указать собственное сообщение об ошибке, которое будет отображаться при вводе недопустимых данных. На вкладке

      Данные

      щелкните

      Проверка данных

      или

      Проверить

      , а затем щелкните

      Сообщение об ошибке

      .

См. также

Применение проверки данных к ячейкам

  1. На новом листе введите данные, которые должны отображаться в раскрывающемся списке. Желательно, чтобы элементы списка содержались в
    таблице Excel
    .

    Примечания: 

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

    • Теперь следует
      отсортировать данные в том порядке, в котором они должны отображаться
      в раскрывающемся списке.

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

  3. Откройте вкладку

    Данные

    на ленте и щелкните кнопку

    Проверка данных

    .

  4. На вкладке

    Параметры

    в поле

    Разрешить

    щелкните

    Список

    .

  5. Если вы уже создали таблицу с элементами раскрывающегося списка, щелкните поле

    Источник

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

    Источник

    через запятую. Например:


    Фрукты;Овощи;Зерновые культуры;Молочные продукты;Перекусы

  6. Если можно оставить ячейку пустой, установите флажок

    Игнорировать пустые

    ячейки.

  7. Установите флажок

    Список допустимых значений

  8. Откройте вкладку

    Сообщение для ввода.

    • Если вы хотите, чтобы при выборе ячейки появлялось всплывающее сообщение, установите флажок

      Показывать сообщения

      и введите заголовок и сообщение в соответствующие поля (до 225 символов). Если вы не хотите, чтобы сообщение отображалось, снимите этот флажок.

  9. Откройте вкладку

    Сообщение об ошибке.

    • Если вы хотите, чтобы при вводе значения, которого нет в списке, появлялось всплывающее сообщение, установите флажок

      Показывать оповещения

      , выберите параметр в поле

      Тип

      , и введите заголовок и сообщение. Если вы не хотите, чтобы сообщение отображалось, снимите этот флажок.

  10. Щелкните

    ОК

    .

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

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

См. также

Добавление и удаление элементов раскрывающегося списка

Видео: создание раскрывающихся списков и управление ими

Общие сведения о таблицах Excel

Применение проверки данных к ячейкам

Блокировка и разблокировка определенных областей защищенного листа

Нужна дополнительная помощь?

Предположим, мы развертываем каждую ежемесячную таблицу продаж на отдельном листе, как показано на снимке экрана ниже, и все таблицы продаж имеют одинаковый макет. Теперь мы хотим создать список из всех значений суммы (ячейка E6) на нескольких листах. Как это сделать? А что, если создать динамический список из сумм значений каждого листа? У вас есть два пути:

документ создать список из нескольких листов 1

Создайте список из одних и тех же ячеек на нескольких листах с VBA

Создайте динамический список из одних и тех же ячеек на нескольких листах с помощью Kutools for Excel

Легко объединяйте несколько листов / книг в один лист / книгу


С помощью следующего кода VBA вы можете легко создать список из указанных ячеек на нескольких листах. Вы можете сделать следующее:

Шаг 1: Выберите указанную ячейку, из которой вы будете создавать свой список. В нашем случае мы выбираем ячейку E6.

Шаг 2: нажмите другой + F11 одновременно с клавишами, чтобы открыть окно Microsoft Visual Basic для приложений, щелкните Вставить > Модули, а затем вставьте следующий код в окно модуля.

VBA: создание списка из одних и тех же ячеек на нескольких листах

Sub CreateList()
Dim xAddWs As Worksheet
Dim xWs As Worksheet
Dim RngAddress As String
xTitleId = "KutoolsforExcel"
RngAddress = Application.ActiveCell.Address
Set xAddWs = Application.ActiveWorkbook.Sheets.Add
xAddWs.Name = xTitleId
i = 1
For Each xWs In Application.ActiveWorkbook.Worksheets
If xWs.Name <> xTitleId Then
xAddWs.Cells(i, 1).Value = xWs.Range(RngAddress).Value
i = i + 1
End If
Next
End Sub

Шаг 3: нажмите F5 ключ или щелкните Run кнопку для запуска этого VBA.

Затем все значения из указанной ячейки на всех листах копируются на новый лист с именем KutoolsforExcel. Смотрите снимок экрана :

документ создать список из нескольких листов 2

Этот VBA заполнит список на новом листе, а значения в списке статичны и не изменятся с исходными значениями.

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


Этот метод представит Kutools for ExcelАвтора Динамически обращаться к рабочим листам утилита для создания динамического списка из одних и тех же ячеек на нескольких листах.

Шаг 1: выберите диапазон, в котором вы будете заполнять динамический список, и нажмите кнопку Кутулс > Больше > Динамически обращаться к рабочим листам.

doc динамически ссылаются на листы 1

Шаг 2: В открывшемся диалоговом окне «Заполнить листы ссылок»,

документ создать список из нескольких листов 5

(1) Щелкните значок Заполнить заказ поле и выберите тип заливки из раскрывающегося списка. В нашем случае мы выбираем Заполнить вертикально ячейку за ячейкой;

(2) В Формула заполнения поле, укажите адрес ячейки, из которой вы будете создавать динамический список, а затем щелкните значок Замка кнопка  чтобы заблокировать формулу.

(3) Щелкните значок Диапазон заполнения кнопку.

Теперь вы увидите, что значения в указанных ячейках на всех листах заполнены в указанном диапазоне, как показано ниже:

При изменении исходных значений соответствующие значения в указанном списке будут изменены автоматически.

Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Get It Now




Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (2)


Оценок пока нет. Оцените первым!

вывести списком все листы, для удобства работы

Гость

Дата: Пятница, 18.05.2012, 11:25 |
Сообщение № 1

Здравствуйте.
Подскажите пожалуйста.
У меня много листов в екселе, естественно работать, мягко говоря, неудобно. Возможно ли как нибудь создать список с названиями листов сбоку, чтобы легко можно было искать нужный лист и переходить на него???

 

Ответить

Hugo

Дата: Пятница, 18.05.2012, 11:30 |
Сообщение № 2

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3140


Репутация:

670

±

Замечаний:
0% ±


2010, теперь уже с PQ

Не пробовали нажать ПКМ на стрелочках навигации по листам?


excel@nxt.ru
webmoney: R418926282008 Z422237915069

 

Ответить

Гость

Дата: Пятница, 18.05.2012, 11:38 |
Сообщение № 3

Классно… Я даже и не знала про такую функцию…
Спасибо, что просвятили)))

 

Ответить

Alex_ST

Дата: Пятница, 18.05.2012, 14:39 |
Сообщение № 4

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3176


Репутация:

604

±

Замечаний:
0% ±


2003

Quote (Гость)

Спасибо, что просвятили

Игорь, а ты у нас оказывается святой, а не просветитель biggrin



С уважением,
Алексей
MS Excel 2003 — the best!!!

 

Ответить

ivanov1974

Дата: Пятница, 18.05.2012, 19:52 |
Сообщение № 5

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 149


Репутация:

1

±

Замечаний:
0% ±


Меня тоже интересует этот ворос. Но я ничего не понял, что такое ПКМ?

 

Ответить

Serge_007

Дата: Пятница, 18.05.2012, 21:51 |
Сообщение № 6

Группа: Админы

Ранг: Местный житель

Сообщений: 15894


Репутация:

2623

±

Замечаний:
±


Excel 2016

Quote (ivanov1974)

что такое ПКМ?

Правая Кнопка Мыши


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

ivanov1974

Дата: Воскресенье, 20.05.2012, 15:36 |
Сообщение № 7

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 149


Репутация:

1

±

Замечаний:
0% ±


Спасибо!

 

Ответить

nikitan95

Дата: Воскресенье, 20.05.2012, 16:51 |
Сообщение № 8

Группа: Проверенные

Ранг: Обитатель

Сообщений: 410


Репутация:

0

±

Замечаний:
0% ±


2016

ПКМ конечно не плохой вариант, а если листов к примеру больше ста? В смысле что можно ли посредством функций вывести на первом листе список листов и при нажатии на них перейти на соответствующий лист?

Сообщение отредактировал nikitan95Воскресенье, 20.05.2012, 16:52

 

Ответить

Serge_007

Дата: Воскресенье, 20.05.2012, 17:15 |
Сообщение № 9

Группа: Админы

Ранг: Местный житель

Сообщений: 15894


Репутация:

2623

±

Замечаний:
±


Excel 2016

Quote (nikitan95)

…можно ли посредством функций вывести на первом листе список листов?

Нет.

Альтернатива — см. вложение. Макросы должны быть разрешены


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

nikitan95

Дата: Вторник, 22.05.2012, 08:06 |
Сообщение № 10

Группа: Проверенные

Ранг: Обитатель

Сообщений: 410


Репутация:

0

±

Замечаний:
0% ±


2016

спасибо, Сергей! Превосходное решение. Думаю, многим будет полезно. Виват!

 

Ответить

Гость

Дата: Пятница, 01.06.2012, 12:00 |
Сообщение № 11

Сергей, а как поправить формулу на листе «Список»
[vba]

Code

=ЕСЛИ(ПРОВЕРКА;ГИПЕРССЫЛКА(ЛИСТ.СПИСОК&»‘!A1″;ЛИСТ.ИМЯ);»»)

[/vba]
так чтобы в общем списке листок не было самого листа «Список» и пары еще заранее известных, например Март и Сентябрь?

 

Ответить

Serge_007

Дата: Пятница, 01.06.2012, 12:26 |
Сообщение № 12

Группа: Админы

Ранг: Местный житель

Сообщений: 15894


Репутация:

2623

±

Замечаний:
±


Excel 2016

Quote (Гость)

как поправить формулу на листе «Список»

Её править не надо. Тут дело не в формуле на листе, а в именованых формулах, на которые она ссылается. Вот их и надо изменять


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

Гость

Дата: Пятница, 01.06.2012, 13:16 |
Сообщение № 13

возможно ошибаюсь, но ведь в принципе возможно написать через условие на совпадение имени в заданным и при выполнении условия задавать пустое значение … в общем попробую, т.к. в корне не представляю как работать с именованными диапазонами для листов и как их вообще задавать =)

 

Ответить

Гость

Дата: Пятница, 01.06.2012, 13:48 |
Сообщение № 14

предложенный мною вариант не есть хорошо,
[vba]

Code

=ЕСЛИ((ИЛИ(ЕСЛИ(ПРОВЕРКА;ЛИСТ.ИМЯ;»»)=»Март»;ЕСЛИ(ПРОВЕРКА;ЛИСТ.ИМЯ;»»)=»Сентябрь»)=ИСТИНА); «»; ЕСЛИ(ПРОВЕРКА;ГИПЕРССЫЛКА(ЛИСТ.СПИСОК&»‘!A1″;ЛИСТ.ИМЯ);»»))

[/vba]
т.к. отработав условие остается пустая ячейка и выглядеть это будет например так (исключаем «Март»):
Список
Январь 2012
Фераль

Апрель
Май
Июнь
Июль
Август

Октябрь
Ноябрь
Декабрь

а по хорошему нужно чтобы было без пустых ячеек … полистаю почитаю, может разберусь как с диапазонами работать =)

 

Ответить

ABC

Дата: Пятница, 01.06.2012, 14:02 |
Сообщение № 15

Группа: Друзья

Ранг: Обитатель

Сообщений: 397


Репутация:

112

±

Замечаний:
0% ±


Excel 2007

Я предложил бы такой вариант:
вводите в диапазон $H$3:$H$10 не нужные, можно расширить диапазон…

Code

=ЕСЛИ(ПРОВЕРКА;ЕСЛИ(ЕНД(ПОИСКПОЗ(ЛИСТ.ИМЯ;$H$3:$H$10;0));ГИПЕРССЫЛКА(ЛИСТ.СПИСОК&»‘!A1″;ЛИСТ.ИМЯ);»»);»»)


MS Excel 2007 and 2010…
——————————-
С Уважением, Даулет

 

Ответить

Гость

Дата: Пятница, 01.06.2012, 14:11 |
Сообщение № 16

Quote (ABC)

Я предложил бы такой вариант:
вводите в диапазон $H$3:$H$10 не нужные, можно расширить диапазон…

кстати да, так более грамотно, но все же результат остается прежним =( а именно список имеет вид:
[vba]

Code

Список
Январь 2012
Фераль

Апрель
Май
Июнь
Июль
Август

Октябрь
Ноябрь
Декабрь

[/vba]
вместо требуемого:
[vba]

Code

Список
Январь 2012
Фераль
Апрель
Май
Июнь
Июль
Август
Октябрь
Ноябрь
Декабрь

[/vba]

 

Ответить

ABC

Дата: Пятница, 01.06.2012, 14:39 |
Сообщение № 17

Группа: Друзья

Ранг: Обитатель

Сообщений: 397


Репутация:

112

±

Замечаний:
0% ±


Excel 2007

смотрите в ИМЕНИ ЛИСТА не должен быть ПРОБЕЛЫ.
массивная
Excel 2007

К сообщению приложен файл:

6540919.xls
(57.0 Kb)


MS Excel 2007 and 2010…
——————————-
С Уважением, Даулет

Сообщение отредактировал ABCПятница, 01.06.2012, 14:49

 

Ответить

Гость

Дата: Пятница, 01.06.2012, 15:04 |
Сообщение № 18

спасибо! воспользуюсь вашим вариантом =)

 

Ответить

ABC

Дата: Пятница, 01.06.2012, 15:11 |
Сообщение № 19

Группа: Друзья

Ранг: Обитатель

Сообщений: 397


Репутация:

112

±

Замечаний:
0% ±


Excel 2007

Quote (Гость)

воспользуюсь вашим вариантом

не мой вариант — вариант Сергея, я добавил кои что по Вашему 2-му хотелку!!! и все… smile


MS Excel 2007 and 2010…
——————————-
С Уважением, Даулет

 

Ответить

Serge_007

Дата: Пятница, 01.06.2012, 16:56 |
Сообщение № 20

Группа: Админы

Ранг: Местный житель

Сообщений: 15894


Репутация:

2623

±

Замечаний:
±


Excel 2016

Quote (ABC)

не мой вариант — вариант Сергея

Не, я сам этот файлик где-то когда-то нашел smile

Подшаманил, сделал свой вариант, с исключаемыми листами. Можно ещё доработать, но сейчас лень smile


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

Like this post? Please share to your friends:
  • Один размер примечания в excel
  • Одинаковый размер столбцов в таблице excel
  • Один раздел документа word могут содержать
  • Одинаковые ячейки один цветом excel
  • Один пункт для размера шрифта в microsoft word равен