Эксель раскрывающийся список плюсик

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Сформируем именованный диапазон. Путь: «Формулы» — «Диспетчер имен» — «Создать». Вводим уникальное название диапазона – ОК.
  2. Создаем раскрывающийся список в любой ячейке. Как это сделать, уже известно. Источник – имя диапазона: =деревья.
  3. Снимаем галочки на вкладках «Сообщение для ввода», «Сообщение об ошибке». Если этого не сделать, Excel не позволит нам вводить новые значения.
  4. Вызываем редактор Visual Basic. Для этого щелкаем правой кнопкой мыши по названию листа и переходим по вкладке «Исходный текст». Либо одновременно нажимаем клавиши Alt + F11. Копируем код (только вставьте свои параметры).
  5. Сохраняем, установив тип файла «с поддержкой макросов».
  6. Переходим на лист со списком. Вкладка «Разработчик» — «Код» — «Макросы». Сочетание клавиш для быстрого вызова – Alt + F8. Выбираем нужное имя. Нажимаем «Выполнить».

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

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

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

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

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

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

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

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

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

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

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

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

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

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. Щелкаем по значку – становится активным «Режим конструктора». Рисуем курсором (он становится «крестиком») небольшой прямоугольник – место будущего списка.
  3. Жмем «Свойства» – открывается перечень настроек.
  4. Вписываем диапазон в строку ListFillRange (руками). Ячейку, куда будет выводиться выбранное значение – в строку LinkedCell. Для изменения шрифта и размера – Font.

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

Способ 1. Функция ДВССЫЛ (INDIRECT)

Этот фокус основан на применении функции ДВССЫЛ (INDIRECT), которая умеет делать одну простую вещь — преобразовывать содержимое любой указанной ячейки в адрес диапазона, который понимает Excel. То есть, если в ячейке лежит текст "А1", то функция выдаст в результате ссылку на ячейку А1. Если в ячейке лежит слово "Маша", то функция выдаст ссылку на именованный диапазон с именем Маша и т.д. Такой, своего рода, "перевод стрелок" 😉

Возьмем, например, вот такой список моделей автомобилей Toyota, Ford и Nissan:

Выделим весь список моделей Тойоты (с ячейки А2 и вниз до конца списка) и дадим этому диапазону имя Toyota. В Excel 2003 и старше — это можно сделать в меню Вставка — Имя — Присвоить (Insert — Name — Define). В Excel 2007 и новее — на вкладке Формулы (Formulas) с помощью Диспетчера имен (Name Manager). Затем повторим то же самое со списками Форд и Ниссан, задав соответственно имена диапазонам Ford и Nissan.

При задании имен помните о том, что имена диапазонов в Excel не должны содержать пробелов, знаков препинания и начинаться обязательно с буквы. Поэтому если бы в одной из марок автомобилей присутствовал бы пробел (например Ssang Yong), то его пришлось бы заменить в ячейке и в имени диапазона на нижнее подчеркивание (т.е. Ssang_Yong).

Теперь создадим первый выпадающий список для выбора марки автомобиля. Выделите пустую ячейку и откройте меню Данные — Проверка (Data — Validation) или нажмите кнопку Проверка данных (Data Validation) на вкладке Данные (Data) если у вас Excel 2007 или новее. Затем из выпадающего списка Тип данных (Allow) выберите вариант Список (List) и в поле Источник (Source) выделите ячейки с названиями марок (желтые ячейки в нашем примере). После нажатия на ОК первый выпадающий список готов:

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

где F3 — адрес ячейки с первым выпадающим списком (замените на свой).

Все. После нажатия на ОК содержимое второго списка будет выбираться по имени диапазона, выбранного в первом списке.

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

  • В качестве вторичных (зависимых) диапазонов не могут выступать динамические диапазоны задаваемые формулами типа СМЕЩ (OFFSET). Для первичного (независимого) списка их использовать можно, а вот вторичный список должен быть определен жестко, без формул. Однако, это ограничение можно обойти, создав отсортированный список соответствий марка-модель (см. Способ 2).
  • Имена вторичных диапазонов должны совпадать с элементами первичного выпадающего списка. Т.е. если в нем есть текст с пробелами, то придется их заменять на подчеркивания с помощью функции ПОДСТАВИТЬ (SUBSTITUTE), т.е. формула будет выглядеть как =ДВССЫЛ(ПОДСТАВИТЬ(F3;" ";"_"))
  • Надо руками создавать много именованных диапазонов (если у нас много марок автомобилей).
Читайте также:  Как перемещать панель управления

Способ 2. Список соответствий и функции СМЕЩ (OFFSET) и ПОИСКПОЗ (MATCH)

Этот способ требует наличия отсортированного списка соответствий марка-модель вот такого вида:

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

  • дать имя диапазону D1:D3 (например Марки) с помощью Диспетчера имен (Name Manager) с вкладки Формулы (Formulas) или в старых версиях Excel — через меню Вставка — Имя — Присвоить (Insert — Name — Define)
  • выбрать на вкладке Данные (Data) команду Проверка данных (Data val > А вот для зависимого списка моделей придется создать именованный диапазон с функцией СМЕЩ(OFFSET), который будет динамически ссылаться только на ячейки моделей определенной марки. Для этого:
  • Нажмите Ctrl+F3 или воспользуйтесь кнопкой Диспетчер имен (Name manager) на вкладке Формулы (Formulas). В версиях до 2003 это была команда меню Вставка — Имя — Присвоить (Insert — Name — Define)
  • Создайте новый именованный диапазон с любым именем (например Модели) и в поле Ссылка (Reference) в нижней части окна введите руками следующую формулу:

Ссылки должны быть абсолютными (со знаками $). После нажатия Enter к формуле будут автоматически добавлены имена листов — не пугайтесь 🙂

Функция СМЕЩ (OFFSET) умеет выдавать ссылку на диапазон нужного размера, сдвинутый относительно исходной ячейки на заданное количество строк и столбцов. В более понятном варианте синтаксис этой функции таков:

=СМЕЩ(начальная_ячейка; сдвиг_вниз; сдвиг_вправо; размер_диапазона_в_строках; размер_диапазона_в_столбцах)

  • начальная ячейка — берем первую ячейку нашего списка, т.е. А1
  • сдвиг_вниз — нам считает функция ПОИСКПОЗ (MATCH), которая, попросту говоря, выдает порядковый номер ячейки с выбранной маркой (G7) в заданном диапазоне (столбце А)
  • сдвиг_вправо = 1, т.к. мы хотим сослаться на модели в соседнем столбце (В)
  • размер_диапазона_в_строках — вычисляем с помощью функции СЧЕТЕСЛИ (COUNTIF), которая умеет подсчитать количество встретившихся в списке (столбце А) нужных нам значений — марок авто (G7)
  • размер_диапазона_в_столбцах = 1, т.к. нам нужен один столбец с моделями

В итоге должно получиться что-то вроде этого:

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

  • выделяем ячейку G8
  • выбираем на вкладке Данные (Data) команду Проверка данных (Data val > Вуаля!

From the programmer’s worst friend

Группирование данных в Excel

Можно сворачивать/разворачивать строки на листе Excel.

Если строк много, то фича рулит.

Группированные строки в Excel

Как сгруппировать строки

  1. Выделить строки, которые хотим сгруппировать. Можно выделять как строки, так и просто ячейки «в столбце».
  2. Выбрать Данные >Группа и Структура >Группировать.
  3. Или в Office 2007 жмакнуть Shift+Alt+стрелка вправо. Появится диалог с вопросом: Что группировать будем — строки али колонки?

Официальная справка (очень рекомендую ознакомиться):

  1. Для отображения строк уровня щелкните соответствующие символы структуры.
  2. Для отображения или скрытия данных в многоуровневой структуре щелкайте символы структуры и .

Дело очень простое, как настройки маршрутизатора под Gentoo:

  1. После выделения столбца/строки жмем Alt+Shift+ для понижения уровня. Потом, при необходимости повысить уровень обратно — то же со .
  2. Уровней может быть (в Excel 2003) до восьми.
  3. Кроме минусов, можно кликать линии, от них идущие.
  4. Групповое изменение — маленькие кнопочки с цифрами в левом верхнем углу.

Но придумать себе проблему на эту тему все еще можно:

Как, епрст, сделать так, чтобы «плюсики» отображались вверху, а не внизу скрываемо/раскрываемого списка?

Office ХР

Данные > Группа и Структура > Настройка > убрать галку у опции «Итоги в строках под данными»

Office 2007

en

Data > Outline > Show the Outline dialog box > Settings > uncheck «Summary rows below detail»

ru

Данные > Структура > Показать меню (см. на картинке, куда надо нажать) > Настройки > убрать галку у опции «Итоги в строках под данными»

Смотри, куда жмакаешь

Раскрываемость списков неизменно и существенно повышается.

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

‘ Товарищ, это макрос для Office 2007

With ActiveSheet.Outline
.AutomaticStyles = False
.SummaryRow = xlAbove
.SummaryColumn = xlRight
End With
End Sub

А кто не знает, как использовать макросы в офисном пакете, тот просто нам завидует.

Плавная привязка записи к теме тестирования:

Тест-кейсы в Excel забабахать может каждый бабуин, а как именно решить проблему с «поменять плюсики местами» — увы. Чтобы потом не сталкиваться с этой проблемой, сделал себе памятку в блоге. Всё это, конечно, неразрывно связано с тестированием…

Читайте также:  Можно ли иметь два apple id

То есть, не было никаких разрывов с ноября прошлого года.

Прием комментариев к этой записи завершён.

Тут нам не то, и не это. Не надо задавать вопросы о том, как сделать ещё что-то с этими прекрасными свертывающимися списками. Здесь даже не форум по Excel. Это блог о тестировании программного обеспечения.

Вы же любите тестировать, правда?

Ваша оценка:

Поделиться ссылкой:

Понравилось это:

Похожее

комментария 42

Подскажите , а возможно ли группировать с изображением, чтоб картинка не болталась одна , когда группа свернута?

Не знаю, не пробовал.

У нас в компании есть форма, в которой мало того, что плюсик сверху остается, так еще и первая строка сгруппированного диапазона, стоящая напротив этого плюсика — не пропадает.

То есть в первую строку пишется заголовок, он виден и напротив него стоит «+», а потом выпадают составляющие проекта, например:

«+» ВЕНТИЛЯЦИЯ
— воздуховоды
— вентиляторы
— фильтры

И «Вентиляция» видна всегда. Как такое сделать? Знает кто-нибудь?

Первой линией группировки строк выберите линию выше первой составляющей проекта.

Добрый день!
Помогите, пожалуйста!
Как защитить лист и оставить возможность работы со структурой?
Необходимо защитить лист от внесения изменений и на листе имеется сгруппированные в структуру данные.
При установке обычной защиты теряется возможность работы с этой структурой.
Необходимо, чтобы наряду с защитой листа можно было еще пользоваться структурой.Т.е. чтобы пользователь мог просмотреть все в удобной форме, но не смог ничего изменить, что защищено.
Формой будут пользоваться несколько пользователей.Есть ячейки открытые для редактирования и закрытые.
Без группировок форма нечитабельна, но и без защиты она бесполезна((
Подскажите, пожалуйста, есть ли возможность совмещения и защиты листа/книги и сохранения действующей структуры?

красавы!. про плюсики и их место было полезно! два дня потратил!

Спасибо, было очень полезно &#128578;

У меня к Вам 2 вопроса:

1. Можно ли так же «с помощью плюсика» группировать листы. т.е., например у меня склады по одной тематике, а я хочу их объединить как в одну папку, чтоб при нажатии на плюс или что либо другое, раскрывался подробный перечень имеющихся листов?

2. я выставляю защиту листа, оставляя лишь некоторые диапазоны для ввода пользователем. но тут проблема. на листе есть выпадающие списки и в случае защиты их нельзя менять, а пользователь должен это делать. уже снимала галочку защиты в формате объекта «выпадающий список», разрешала изменение диапазона с которым связана форма и ни-че-го! &#128550;

1) не предполагаю, что подобное возможно.

2) создайте новый лист, раз на старом не работает, и сделайте там все с нуля.

Не подскажете, почему у меня кнопки «группировать», «разгруппировать» и многие другие неактивны? даже если я выделяю диапазон? какая-то защита? док старый и непонятно, куда рыть.. макросы есть, но там такого нет… включены фильтры и закрепление областей.. на новом листе то же самое… в новом документе — кнопки активны..

Вполне вероятно, что защита. Точнее на удалении сказать невозможно.

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

Можно ли раскрывать/скрывать группу не только по +/-, но и нажатием, скажем, на заголовок этой группы?

«На заголовок» не скажу — для этого нужно написать/найти функцию, которая меняет значение линка после клика по нему (или по ячейке, в которой он находится), а искать это нет времени, простите.

1) Сделайте список на десять строк с таким вот содержимым:
blu
blo
спрятать
строку
через
макрос
bla
ble
bli
bldjad

2) сгруппируйте, если угодно, строки, но обязательно с третью по шестую.

3) Alt+F11 — добавьте два макроса

Sub HideRows()
Rows(«3:6»).SpecialCells(xlCellTypeConstants, 23).EntireRow.H > End Sub

Sub ShowRows()
Rows(«3:6»).SpecialCells(xlCellTypeConstants, 23).EntireRow.H > End Sub

Смысел ясен? Строки с 3 по 6 будут скрыты полностью. Второй макрос их раскрывает. При выполнении макроса HideRows на листе в нашем примере останутся только строки с латинскими буквами, а те, что содержат кириллицу, будут скрыты.

Кстати, чтобы управлять скрытием колонок, используйте такие команды
Columns(«A:С»).SpecialCells(xlCellTypeConstants, 23).EntireColumn.H >

4) Поставьте на лист две кнопки из меня «Формы», дайте им имена- «Спрятать» и «Показать», и назначьте выполнение этих макросов на эти кнопки. http://www.planetaexcel.ru/tip.php?a >

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

Спасибо! А нельзя ли при этом, чтобы скрывались не целые строки, а диапазон ячеек? Скажем, А3:В6.

Оставьте ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *