Перейти к содержимому

Kutools для Office — один пакет. Пять инструментов. Выполняйте больше.

Как скрыть ранее использованные элементы в раскрывающемся списке?

Author Xiaoyang Last modified

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

Скрытие ранее использованных элементов в раскрывающемся списке с помощью вспомогательных столбцов


arrow blue right bubble Скрытие ранее использованных элементов в раскрывающемся списке с помощью вспомогательных столбцов

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

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

sample data

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

=IF(COUNTIF($F$1:$F$11,A1)>=1,"",ROW())

Эта формула сравнивает каждое имя с выборками, сделанными в раскрывающемся списке (диапазон F1:F11). Если имя уже выбрано, она возвращает пустую ячейку, в противном случае возвращает номер строки как вспомогательное значение. Обязательно скорректируйте диапазон F1:F11 в соответствии с местоположением, где вы планируете разместить свои раскрывающиеся списки, а ссылку A1 — на местоположение вашего списка имен.

apply a formula to list series

Примечание: Дважды проверьте, чтобы диапазон 'F1:F11' охватывал все ячейки раскрывающегося списка. 'A1' должно указывать на текущую строку в вашем списке имен.

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

fill the formula to other cells

3. В столбце C установите другую вспомогательную формулу в ячейке C1 для динамического создания чистого списка только неиспользованных имен:

=IF(ROW(A1)-ROW(A$1)+1>COUNT(B$1:B$11),"",INDEX(A:A,SMALL(B$1:B$11,1+ROW(A1)-ROW(A$1))))

Эта формула собирает все неиспользованные имена вместе, извлекая соответствующие элементы из столбца A на основе вспомогательных значений в столбце B. Когда имена выбираются и удаляются из B, этот список в столбце C обновляется автоматически. Если ваш список длиннее 11 имен, обязательно скорректируйте все диапазоны соответствующим образом.

apply another formula to list cell values

4. Скопируйте эту формулу вниз, чтобы соответствовать длине вашего исходного списка имен. Диапазон, который вы заполняете, должен быть такой же длины, как ваш список в столбце A.

fill the formula to other cells

5. Чтобы сделать этот динамически обновляемый список пригодным для вашего раскрывающегося меню, определите именованный диапазон. Выберите недавно созданный список в столбце C (например, C1:C11), затем нажмите Формулы > Определить имя.

define a range name for the new data

6. В диалоговом окне Новое имя введите имя (например, namecheck) и используйте эту динамическую ссылочную формулу, чтобы размер именованного диапазона корректно изменялся по мере выбора имен:

=OFFSET(Sheet2!$C$1,0,0,COUNTA(Sheet2!$C$1:$C$11)-COUNTBLANK(Sheet2!$C$1:$C$11),1)

Это гарантирует, что только непустые значения в столбце C будут использоваться для опций раскрывающегося списка. Тщательно проверьте имя вашего листа и ссылки на ячейки — используя точные форматы адресов — чтобы они соответствовали вашему собственному листу.

set options in new name dialog box

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

7. Теперь, чтобы создать фактический раскрывающийся список, выберите ячейки, где пользователи должны делать свои выборы (например, F1:F11). Перейдите к Данные > Проверка данных > Проверка данных.

click Data Validation

8. В диалоговом окне Проверка данных на вкладке Параметры выберите Список и введите =namecheck в поле Источник, ссылаясь на динамический именованный диапазон, который вы определили.

set options in Data Validation dialog box

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

result of hiding previously used items in dropdown list

Совет: Не удаляйте и не перезаписывайте какие-либо вспомогательные столбцы (столбцы B и C), поскольку они необходимы для правильного обновления раскрывающегося списка. Рассмотрите возможность скрытия этих столбцов, если вы хотите сохранить свой лист аккуратным без нарушения функциональности. Если возникнут проблемы с обновлением списка, проверьте формулы на соответствие диапазонов или убедитесь, что все ссылки проверки данных верны и относятся к предполагаемому именованному диапазону.

Ограничением этого подхода является то, что если много пользователей будут одновременно делать выбор (например, на общем листе), конфликты все равно могут возникнуть. Для более продвинутых масштабируемых решений или автоматизации этой задачи с меньшим количеством видимого беспорядка на листе, рассмотрите использование VBA — следующий раздел демонстрирует эту альтернативу.



Связанные статьи:

Как вставить выпадающий список в Excel?

Как создать выпадающий список с картинками в Excel?

Лучшие инструменты для повышения продуктивности в Office

🤖 Kutools AI Aide: Совершенно новый подход к анализу данных благодаря: Интеллектуальное выполнение |  Генерация кода  |  Создание пользовательских формул |  Анализ данных и построение диаграмм  |  Вызов Kutools Functions
Популярные функции: Поиск, выделение или отметка дубликатов | Удалить пустые строки | Объединить столбцы или адреса без потери данных | Округлить ...
Супер ПОИСК: VLOOKUP по нескольким критериям | VLOOKUP по нескольким значениям | Многолистовой поиск | Распознавание нечетких соответствий ...
Расширенный раскрывающийся список: Быстро создать раскрывающийся список | Зависимый раскрывающийся список | Множественный выбор в раскрывающемся списке ...
Менеджер столбцов: Добавить определённое количество столбцов | Переместить столбцы | Переключить видимость скрытых столбцов | Сравнить диапазоны и столбцы ...
Рекомендуемые функции: Сетка фокусировки | Дизайн листа | Улучшенная строка формулы | Управление книгой и листами | Библиотека автотекста | Выбор даты | Объединить данные | Зашифровать/расшифровать ячейки | Отправить письмо по списку | Супер фильтр | Специальный фильтр (фильтр жирный/курсив/зачеркнутый...) ...
Топ15 наборов инструментов:12 текстовых инструментов (Добавить текст, Удалить определенные символы, ...) |50+ типов диаграмм (Диаграмма Ганта, ...) |40+ полезных формул (Расчет возраста на основе даты рождения, ...) |19 инструментов для вставки (Вставить QR-код, Вставить изображение по пути, ...) |12 инструментов преобразования (Преобразовать в слова, Конвертация валюты, ...) |7 инструментов объединения и разделения (Расширенное объединение строк, Разделить ячейки, ...) | ... и многое другое
Используйте Kutools на предпочитаемом вами языке — поддерживает Английский, Испанский, Немецкий, Французский, Китайский и более40 других языков!

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


Office Tab добавляет вкладки в Office и делает вашу работу намного проще

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

Все надстройки Kutools. Один установщик

Пакет Kutools for Office включает надстройки для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro — идеально для команд, работающих в разных приложениях Office.

Excel Word Outlook Tabs PowerPoint
  • Комплексный набор — надстройки для Excel, Word, Outlook и PowerPoint плюс Office Tab Pro
  • Один установщик, одна лицензия — настройка занимает считанные минуты (MSI-совместимо)
  • Совместная работа — максимальная эффективность между приложениями Office
  • 30-дневная полнофункциональная пробная версия — без регистрации и кредитной карты
  • Лучшее соотношение цены и качества — экономия по сравнению с покупкой отдельных надстроек