Выпадающие списки с удалением

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

Этот приём удобно применять при распределении дежурств (товаров), чтобы не запутаться и не назначить одного человека дважды, а также наглядно видеть тех, кто остался в запасе. В итоге у нас получится вот такая таблица:

Выпадающие списки с удалением Microsoft Excel, Таблица, Список, Полезное, На заметку, Длиннопост

1. Сперва необходимо подсчитать, кто из имеющихся сотрудников уже назначен на дежурство и на сколько смен. Для этого добавим к серой таблице ещё один столбец, в который введём формулу: =СЧЁТЕСЛИ($B$2:$B$8;E2)

=COUNTIF($B$2:$B$8;E2)

Выпадающие списки с удалением Microsoft Excel, Таблица, Список, Полезное, На заметку, Длиннопост

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


2. Далее выявим свободных сотрудников. Добавим ещё один столбец и введём в него формулу, которая будет выводить номера свободных сотрудников:

=ЕСЛИ(F2-G2<=0;"";СТРОКА(E2)-СТРОКА($E$2)+1)

=IF(F2-G2<=0;"";ROW(E2)-ROW($E$2)+1)

Выпадающие списки с удалением Microsoft Excel, Таблица, Список, Полезное, На заметку, Длиннопост

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

=ЕСЛИ(D2>СЧЁТ($H$2:$H$10);"";ИНДЕКС($E$2:$E$10;

НАИМЕНЬШИЙ($H$2:$H$10;СТРОКА(E2)-1)))


=IF(D2>COUNT($H$2:$H$10);"";INDEX($E$2:$E$10;

SMALL($H$2:$H$10;ROW(E2)-1)))

Выпадающие списки с удалением Microsoft Excel, Таблица, Список, Полезное, На заметку, Длиннопост

Эта формула выводит очередное по номеру имя сотрудника (используя функцию НАИМЕНЬШИЙ) из списка или пустую ячейку, если имена свободных сотрудников уже кончились.


4. Далее создаём именованный диапазон сотрудников нажав Ctrl+F3 или на вкладке «Формулы» - «Диспетчер имён», где из столбца списка E2 зададим название «Имена», а в строке «Диапазон» введём формулу:

=СМЕЩ(Лист1!$I$2;0;0;СЧЁТЗ(Лист1!$I$2:$I$10)-СЧИТАТЬПУСТОТЫ(Лист1!I$2:I$10))


=OFFSET(Лист1!$I$2;0;0;COUNTA(Лист1!$I$2:$I$10)-

COUNTBLANK(Лист1!I$2:I$10))

Выпадающие списки с удалением Microsoft Excel, Таблица, Список, Полезное, На заметку, Длиннопост

5. Создадим выпадающий список выделив ячейки B2:B8 и на вкладке «Данные» - «Проверка данных» - «Список» - «Источник» =Имена

Выпадающие списки с удалением Microsoft Excel, Таблица, Список, Полезное, На заметку, Длиннопост

Готово) Теперь при выборе сотрудников их имена будут автоматически удаляться из выпадающего списка, оставляя только тех, кто ещё свободен.

MS, Libreoffice & Google docs

719 постов15K подписчиков

Добавить пост

Правила сообщества

1. Не нарушать правила Пикабу

2. Публиковать посты соответствующие тематике сообщества

3. Проявлять уважение к пользователям

4. Не допускается публикация постов с вопросами, ответы на которые легко найти с помощью любого поискового сайта.

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


Важно - сообщество призвано помочь, а не постебаться над постами авторов! Помните, не все обладают 100 процентными знаниями и навыками работы с Office. Хотя вы и можете написать, что вы знали об описываемом приёме раньше, пост неинтересный и т.п. и т.д., просьба воздержаться от подобных комментариев, вместо этого предложите способ лучше, либо дополните его своей полезной информацией и вам будут благодарны пользователи.

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

Вы смотрите срез комментариев. Показать все
7
Автор поста оценил этот комментарий

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

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

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

Это ж не программирование, это мать его эксель, близкий родич 1С. Читабельность кода никакая.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку