- Створення списку
- Список, що випадає в Excel з підстановкою даних
- Список, що випадає в Excel з даними з іншого листа / файлу
- Як зробити залежні списки, що випадають
- Вибір декількох значень зі списку Excel
- Список, що випадає з пошуком
Під списком, що випадає розуміється зміст в одній комірці кількох значень. Коли користувач клацає по стрілочки праворуч, з'являється певний перелік. Можна вибрати конкретне.
Дуже зручний інструмент Excel для перевірки введених даних. Підвищити комфорт роботи з даними дозволяють можливості випадаючих списків: підстановка даних, відображення даних іншого листа або файлу, наявність функції пошуку і залежності.
Створення списку
Шлях: меню «Дані» - інструмент «Перевірка даних» - вкладка «Параметри». Тип даних - «Список».
Ввести значення, з яких буде складатися список, що випадає, можна різними способами:
- Вручну через «точку-з-коми» в поле «Джерело».
- Ввести значення заздалегідь. А в якості джерела вказати діапазон комірок зі списком.
- Призначити ім'я для діапазону значень і в поле джерело вписати це ім'я.
Будь-який з варіантів дасть такий результат.
Список, що випадає в Excel з підстановкою даних
Необхідно зробити список, що розкривається зі значеннями з динамічного діапазону. Якщо вносяться зміни в наявний діапазон (додаються або видаляються дані), вони автоматично відображаються в списку.
- Виділяємо діапазон для списку. У головному меню знаходимо інструмент «Форматувати як таблицю».
- Відкриються стилі. Вибираємо будь-хто. Для вирішення нашої задачі дизайн не має значення. Наявність заголовка (шапки) важливо. У нашому прикладі це осередок А1 зі словом «Дерева». Тобто потрібно вибрати стиль таблиці з рядком заголовка. Отримуємо наступний вигляд діапазону:
- Ставимо курсор в осередок, де буде знаходитися список, що випадає. Відкриваємо параметри інструменту «Перевірка даних» (вище описаний шлях). В поле «Джерело» прописуємо таку функцію:
Протестуємо. Ось наша таблиця зі списком на одному аркуші:
Додамо в таблицю нове значення «ялинка».
Тепер видалимо значення «береза».
Здійснити задумане нам допомогла «розумна таблиця», яка легка «розширюється», змінюється.
Тепер зробимо так, щоб можна було вводити нові значення прямо в клітинку з цим списком. І дані автоматично додавалися в діапазон.
- Сформуємо іменований діапазон. Шлях: «Формули» - «Диспетчер імен» - «Створити». Вводимо унікальну назву діапазону - ОК.
- Створюємо список, що розкривається в будь-якому осередку. Як це зробити, вже відомо. Джерело - ім'я діапазону: = дерева.
- Знімаємо галочки на вкладках «Повідомлення для введення», «Повідомлення про помилку». Якщо цього не зробити, Excel не дозволить нам вводити нові значення.
- Викликаємо редактор Visual Basic. Для цього клацаємо правою кнопкою миші по назві листа і переходимо по вкладці «Оригінальний текст». Або одночасно натискаємо клавіші Alt + F11. Копіюємо код (тільки вставте свої параметри). 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
- Зберігаємо, встановивши тип файлу «з підтримкою макросів».
- Переходимо на лист зі списком. Вкладка «Розробник» - «Код» - «Макрос». Швидкий доступ для швидкого виклику - Alt + F8. Вибираємо потрібне ім'я. Натискаємо «Виконати».
Коли ми введемо в порожню осередок списку нове найменування, з'явиться повідомлення: «Додати введене ім'я баобаб в список, що випадає?».
Натиснемо «Так» і додатися ще один рядок зі значенням «баобаб».
Список, що випадає в Excel з даними з іншого листа / файлу
Коли значення для списку розташовані на іншому аркуші або в іншій книзі, стандартний спосіб не працює. Вирішити завдання можна за допомогою функції ДВССИЛ: вона сформує правильне посилання на зовнішнє джерело інформації.
- Робимо активної клітинку, куди хочемо помістити список, що розкривається.
- Відкриваємо параметри перевірки даних. В поле «Джерело» вводимо формулу: = ДВССИЛ ( "[Спісок1.xlsx] Лист1! $ A $ 1: $ A $ 9").
Файл, з якого береться інформація для списку, укладено в квадратні дужки. Цей файл повинен бути відкритий. Якщо книга з потрібними значеннями знаходиться в іншій папці, потрібно вказувати шлях повністю.
Як зробити залежні списки, що випадають
Візьмемо три іменованих діапазону:
Це обов'язкова умова. Вище описано, як зробити звичайний список іменованих діапазоном (за допомогою «Диспетчера імен»). Пам'ятаємо, що ім'я не може містити пробілів і розділових знаків.
- Створимо перший список, що випадає, куди увійдуть назви діапазонів.
- Коли поставили курсор в поле «Джерело», переходимо на лист і виділяємо поперемінно потрібні комірки.
- Тепер створимо другий список, що розкривається. У ньому повинні відображатися ті слова, які відповідають обраному в першому списку назвою. Якщо «Дерева», то «граб», «дуб» і т.д. Вводимо в поле «Джерело» функцію виду = ДВССИЛ (E3). E3 - осередок з ім'ям першого діапазону.
- Створюємо стандартний список за допомогою інструмента «Перевірка даних». Додаємо в вихідний код листа готовий макрос. Як це робити, описано вище. З його допомогою праворуч від списку будуть додаватися обрані значення. 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
- Щоб обрані значення показувалися знизу, вставляємо інший код обробника. 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
- Щоб обрані значення відображалися в одній комірці, розділені будь-яким знаком пунктуації, застосуємо такий модуль.
- На вкладці «Розробник» знаходимо інструмент «Вставити» - «ActiveX». Тут нам потрібна кнопка «Поле зі списком» (орієнтуємося на спливаючі підказки).
- Клацаємо по значку - стає активним «Режим конструктора». Малюємо курсором (він стає «хрестиком») невеликий прямокутник - місце майбутнього списку.
- Тиснемо «Властивості» - відкривається перелік налаштувань.
- Вписуємо діапазон в рядок ListFillRange (руками). Осередок, куди буде виводитися вибране значення - в рядок LinkedCell. Для зміни шрифту і розміру - Font.
Вибір декількох значень зі списку Excel
Буває, коли із списку необхідно вибрати відразу кілька елементів. Розглянемо шляхи реалізації завдання.
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
Не забуваємо міняти діапазони на «свої». Списки створюємо класичним способом. А всю іншу роботу будуть робити макроси.
Список, що випадає з пошуком
Завантажити приклад списку
При введенні перших букв з клавіатури висвічуються відповідні елементи. І це далеко не всі приємні моменти даного інструменту. Тут можна налаштовувати візуальне представлення інформації, вказувати в якості джерела відразу два стовпці.
Коли ми введемо в порожню осередок списку нове найменування, з'явиться повідомлення: «Додати введене ім'я баобаб в список, що випадає?