← Все курсы · Курс Excel · Все руководства

Раскрывающиеся списки Excel и проверка данных, а также вставка, которая их удаляет

Четыре щелчка мыши вызывают раскрывающийся список и одно нажатие клавиши отменяет его · Часть Analyst Prep Kit

К , аналитик данных · Опубликовано

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

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

Краткая версия: проверка проверяет значение в тот момент, когда кто-то вводит его в ячейку. Это не свойство данных, это ворота на одном входном маршруте, и в нем имеется более одного маршрута.

Этот пробел — это идея, на которой основана страница, поэтому она отражает картину.

The gate is on one route only A spreadsheet cell with a small dropdown arrow sits at the right of the picture. A tall vertical barrier stands in front of it, running most of the height of the image. Two routes approach the cell from the left. The upper route is labelled typed; its arrow reaches the barrier, meets a solid section of it, and turns back on itself, so nothing gets through. The lower route is labelled pasted; the section of barrier in its path is drawn as a broken dashed outline with a clear gap in it, and the arrow passes straight through the gap and continues into the cell. Beyond the gap, the fragments of the broken barrier are drawn drifting apart, showing that the pasted value did not merely get past the gate, it took the gate with it. typed pasted
Печатание встречает ворота. Вставка обходит ее и забирает с собой гейт: после обычной вставки в ячейке вообще не остается правила проверки.
Что вы узнаете
  1. Создайте раскрывающийся список
  2. Где должен жить список и ловушка таблицы
  3. Три стиля оповещений и два, которые не являются правилами
  4. Какая проверка не останавливается
  5. Зависимые раскрывающиеся списки
  6. Пользовательские правила: формула вместо списка
  7. Все равно найдем, что попало
  8. Два флажка, которые удивляют людей
  9. Полное до и после
  10. Пограничные случаи, которые незаметно нарушают проверку
  11. Почему это работает
  12. Использование этого в вашем собственном проекте
  13. Все на одном экране
Претензии по поведению здесь были проверены. Правила были созданы в Excel, а затем проверены, поэтому информация о вставке, о столбцах таблицы как источниках и о том, какие ячейки все еще содержат правило, поступает в результате чтения книги, а не из памяти.

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

Четыре шага, и люди ошибаются на первом.

  1. Поместите разрешенные значения где-нибудь в реальном месте. Столбец на отдельном листе, по одному значению в строке, с заголовком. Не вводится в диалог.
  2. Выделите ячейки, которые необходимо контролировать. Ячейки данных, а не заголовок.
  3. Данные, Проверка данных, Разрешить: Список.
  4. Нажмите «Источник», затем выберите список значений. Оставлять Раскрывающийся список внутри ячейки поставил галочку. ХОРОШО.

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

2. Где должен жить список и таблица-ловушка

Перед объяснением: ваши варианты хранятся в соответствующей таблице Excel под названием Products. Скажите, можете ли вы указать Источник на =Products[Product].

Вы не можете. Я попробовал это в Excel, и источник был полностью отклонен. Та же ссылка, завернутая в INDIRECT было принято:

Source:  =Products[Product]                    rejected
Source:  =INDIRECT("Products[Product]")        accepted

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

Есть еще два маршрута в то же место. Вы можете определить имя для столбца таблицы: «Формулы», «Определить имя», установить значение =Products[Product], а затем используйте =ThatName как Источник, который некоторым людям легче читать. Или, если вы не используете таблицу, определите имя в обычном диапазоне и помните, что фиксированный диапазон не увеличивается, поэтому новые параметры не появятся, пока кто-нибудь не отредактирует имя.

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

3. Три стиля оповещений и два, которые не являются правилами

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

стильЧто он делаетИспользуйте его, когда
ОстанавливатьсяОтказывается от значения. Единственный, который действительно что-то обеспечивает.Значение должно быть из списка. Это вариант по умолчанию и обычно правильный ответ.
ПредупреждениеСпрашивает, продолжать ли, и принимает значение, если человек говорит «да».Список является сильным предложением, и исключения являются законными.
ИнформацияПоказывает сообщение и принимает значение в любом случае.Вы информируете, а не ограничиваете. Редко то, что люди имеют в виду.

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

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

4. Какая валидация не останавливается

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

Значение приземляется, сообщение не появляется, и правило проверки исчезло из этой ячейки. Не обойден ни на одну запись; ушел. Я создал три проверенные ячейки, вставил их в две разными способами, а затем спросил Excel, в каких ячейках все еще сохраняется правило:

before                                all three validated
after an ordinary paste (Ctrl+V)      that cell no longer has a rule
after Paste Special, Values only      that cell still has its rule
cells still carrying a rule           2 of 3

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

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

Три практических следствия.

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

Попросите людей вставить значения. Ctrl+Альт+В, затем V. В общей книге это стоит писать на самом листе, рядом с областью ввода, потому что все вставляют, и никто не читает инструкции в другом месте.

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

5. Зависимые раскрывающиеся списки

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

Механизм представляет собой одну функцию. Создайте именованный диапазон для каждой группы, названный точно так же, как значение, которое его выбирает, затем укажите второй раскрывающийся список на INDIRECT первой ячейки.

Named range  Furniture   ->  Desk, Chair
Named range  Lighting    ->  Lamp

A2 validation:  List, Source =Categories
B2 validation:  List, Source =INDIRECT($A2)

INDIRECT превращает текст в ссылку, поэтому, когда A2 содержит «Мебель», источником второго раскрывающегося списка становится диапазон с именем «Мебель». Это читается как по волшебству, и это просто поиск имени.

Две вещи, которые нужно знать, прежде чем создавать его. Имена не могут содержать пробелы, поэтому название категории «Офисная мебель» должно быть Office_Furniture, и формула принимает вид =INDIRECT(SUBSTITUTE($A2," ","_")). И ничто не очищает B2 при изменении A2, поэтому строка может содержать категорию и продукт из другой категории. Если это имеет значение, добавьте условный формат, который отмечает несоответствие, используя тот же трюк с заблокированными столбцами, что и выделение всей строки.

6. Пользовательские правила: формула вместо списка

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

Четверо, которые зарабатывают себе на жизнь.

=COUNTIF($A$2:$A$500, A2)=1        no duplicates in this column
=AND(A2>=TODAY(), A2<=TODAY()+90)  a date within the next quarter
=ISNUMBER(A2)                       a number, not text that looks like one
=LEN(A2)=8                          exactly eight characters, for a code

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

Одно ограничение, которое следует учитывать: пользовательское правило проверяется при редактировании ячейки, поэтому значение, которое позже становится недействительным из-за изменения другой ячейки, не проверяется повторно и не помечается. Валидация — это ворота, а не монитор.

7. Все равно найти то, что попало

Учитывая все вышеизложенное, проверенный столбец по-прежнему будет содержать значения, нарушающие его правило: записи, сделанные до существования правила, вставленные значения и все, что поступило в результате импорта.

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

Два предостережения, которые стоит иметь. Круги представляют собой нарисованные объекты, а не сохраненное свойство, поэтому они исчезают при сохранении и повторном открытии файла. А в ячейке, правило которой было удалено вставкой, не осталось правил, которые можно было бы нарушить, поэтому она не будет обведена кружком, а это именно тот случай, который вам больше всего нужен.

Вот почему проверка ремней и подтяжек — это формула, а не кнопка. Один столбец, одна формула, а ответ — это число, которое можно записать на листе:

=SUMPRODUCT(--(COUNTIF(AllowedList, A2:A500)=0))    entries not in the list
=COUNTA(UNIQUE(A2:A500))                            distinct values, expected 4

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

8. Два флажка, которые удивляют людей

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

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

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

Полное до и после

Тот же входной лист, та же работа: столбец «Регион», который всегда содержит только четыре значения.

До

Source:  North,South,East,West     typed into the dialog
Style:   Warning
Nothing else

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

после

# the list lives in a table on a Lists sheet
Source:  =INDIRECT("RegionList[Region]")
Style:   Stop
Input message: "Pick one of the four regions. Paste values only, Ctrl+Alt+V then V."

# the check block, on the sheet, always visible
distinct values   =COUNTA(UNIQUE(Region))                        4
off-list entries  =SUMPRODUCT(--(COUNTIF(RegionList[Region], Region)=0))   0
blanks            =COUNTBLANK(Region)                            0

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

Заявление ниже и причина существования контрольного блока: одно обычное сочетание клавиш Ctrl+V покидает ячейку, содержащую запрещенное значение и не содержащую правила, и нигде в книге нет записей о том, что шлюз исчез.

Пограничные случаи, которые незаметно нарушают проверку

Шесть, прошедшие первую сборку.

Список источников имеет конечные пробелы. «Север» в списке означает, что раскрывающийся список предлагает значение, которое никогда не будет соответствовать чему-либо еще в вашей книге. Очистите столбец списка, прежде чем указывать на него что-либо; процедуры TRIM и LEN применяется как к спискам опций, так и к данным.

Перетаскивание маркера заполнения. Заполнение из проверенной ячейки приводит к проверке, и это нормально, а заполнение из непроверенной ячейки стирает ее, что является проблемой вставки в другой шляпе.

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

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

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

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

Почему это работает

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

Это также правильный уровень для решения проблемы. Исследования человеческих ошибок неизменно показывают, что продуктивным ответом на повторяющуюся ошибку является изменение условий, в которых люди работают, а не просить их быть более осторожными, поскольку внимание не является ресурсом, который можно запланировать, и обвинение человека делает ситуацию такой же склонной к ошибкам, какой она была (Причина, 2000, BMJ, 320(7237), 768–770). Выпадающий список — это небольшое системное изменение такого рода. То же самое относится и к размещению списка опций там, где его может видеть кто-то, и к написанию инструкций по вставке на листе, а не в обучающем электронном письме.

Причина для последующей проверки также заключается в том, что ввод данных в электронные таблицы не является надежно точным даже в хороших условиях, а проверки рабочих журналов обнаруживают, что ошибки являются нормальным случаем, а не исключением (Панко, 1998, Журнал вычислений для конечных пользователей, 10(2), 15–21). Ворота, охватывающие один входной маршрут, заслуживают внимания, и это не то же самое, что знать, что находится в столбце, для чего и нужны формулы подсчета.

Одно примечание к вопросам, заданным перед каждым ответом на этой странице. Принятие прогноза до того, как результат будет показан, заметно улучшает то, что вы от него сохраняете, поэтому о результате вставки стоит гадать, а не читать прошлое (Бисра, Лю, Несбит, Салими и Винн, 2018, Обзор педагогической психологии, 30(3), 703–725).

Использование этого в вашем собственном проекте

Добавлять проверку в каждый столбец унаследованной книги — это ужасно, и вы остановитесь на третьем. Вместо этого сделайте это по порядку.

  1. Сначала подсчитайте различные значения столбца. =COUNTA(UNIQUE(range)). Если это уже ожидаемое число, столбец не нуждается в воротах; что-то еще делает.
  2. Переместите список параметров в таблицу на отдельном листе. и укажите правило на =INDIRECT("Table[Column]") так оно и растёт.
  3. Установите стиль «Стоп». если у вас нет конкретной причины для предупреждения и вы не знаете, что предупреждение — это уведомление, а не правило.
  4. Напишите инструкцию вставки во входное сообщение и на листе. Это единственный сбой, который эта функция не может предотвратить сама по себе.
  5. Запустите круг неверных данных один раз в существующем столбце, поскольку только что добавленное правило ничего не говорит об уже имеющихся данных.
  6. Оставьте флажок на листе: количество отличных, количество исключенных из списка, количество пустых номеров. Три формулы, и они продолжают работать даже после удаления правила.

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

Подробнее об этом и еще что-нибудь подобное. Все инструкции находятся в одном месте на индекс направляющих: Excel, SQL, Python и связанные с ними методы работы.

Все на одном экране

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

вещьЧто он делает
Где он живетДанные, Проверка данных, Разрешить: Список.
Лучший источникСтолбец таблицы на отдельном листе.
Таблица как источник=Products[Product] отклонено. Оберните это: =INDIRECT("Products[Product]").
Список набранных запятыхРаботы, невидимые, нередактируемые оптом. Избегать.
Стоп стильЕдинственный стиль, который отказывается от значения.
Предупреждение и информацияУведомления, а не правила. Значение попадает.
Обычная пастаЗначение земли и правило удаляется из ячейки.
Специальная вставка, значенияПравило выживает. Значение еще не проверено.
Существующие данныеНикогда не проверял. Правило регулирует только будущий ввод текста.
Зависимый списокНазовите диапазон для каждой группы, затем =INDIRECT($A2).
Имена и пробелыНе разрешено. =INDIRECT(SUBSTITUTE($A2," ","_")).
Пользовательское правилоФормула, возвращающая ИСТИНА. Написано для верхней левой ячейки.
Нет дубликатов=COUNTIF($A$2:$A$500, A2)=1
Игнорировать пустоеВключено по умолчанию. Валидация никогда не может сделать поле обязательным.
Применить ко всем ячейкамОтметьте его при редактировании или создайте второе правило для одной ячейки.
Обведите неверные данныеЗвонит в каждую ячейку, нарушая свои правила. Круги не сохраняются.
Проверка формулы=SUMPRODUCT(--(COUNTIF(list, range)=0)). Выдерживает все.
Единственная привычка, которую следует сохранить. Поместите количество значений, не входящих в список, на листе рядом с данными. Выпадающий список определяет один из способов входа; счетчик сообщает вам правду о том, что на самом деле находится в колонке, каким бы способом она ни прибыла. Если проверка ведет себя не так, как описано на этой странице, существует общая шлейф диагностики на предмет застревания.

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

Ссылки

Раскрывающийся список работает до тех пор, пока кто-нибудь не вставит его прямо поверх него.

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

Excel для аналитиков, 19 долларов США →
Практикуйтесь на входном листе, который люди могут сломать.

тот Курс Excel дает вам повторения: раскрывающиеся списки, связанные с растущими списками, зависимыми парами, пользовательскими правилами, блокирующими дубликаты, и карточками, указывающими, какие именно маршруты в ячейку перекрывают ворота. Теперь вы владеете методом; комплект - это практика. Ничего устанавливать, учетная запись не требуется.

Откройте набор Excel →