Запрет ввода повторяющихся значений
Простая задача: есть диапазон ячеек (допустим А1:А10), куда пользователь вводит данные с клавиатуры. Необходимо обеспечить уникальность всех введенных значений, т.е. запретить пользователю вводить значение, если оно уже присутствует в диапазоне, т.е. было введено ранее.
Выделяем диапазон ячеек и жмем кнопку Проверка данных (Data Validation) на вкладке Данные (Data). В старых версиях - Excel 2003 и ранее - открываем меню Данные - Проверка (Data - Validation). На вкладке Параметры (Settings) из выпадающего списка Тип данных (Allow) выбираем вариант Другой (Custom) и вводим следующую формулу в строку Формула (Formula):
=СЧЁТЕСЛИ($A$1:$A$10;A1)<=1
или в английской версии =COUNTIF($A$1:$A$10;A1)<=1
Смысл этой формулы прост - она подсчитывает количество ячеек в диапазоне A1:A10 равных содержимому ячейки А1. Ввод будет разрешен только в те ячейки, где полученное число меньше или равно 1. Причем диапазон задан жестко (абсолютными ссылками со знаками $), а ссылка на текущую ячейку А1 - относительно. Таким образом подобная проверка будет производиться для каждой выделенной ячейки. Для полноты картины можно в этом окне перейти еще на вкладку Сообщение об ошибке (Error Alert) и ввести текст, который будет появляться при попытке ввести дубликаты:
Вот и все - жмем ОК и наслаждаемся реакцией окружающих :)
Плюс этого способа - в простоте реализации, а минус - в том, что подобную защиту легко отключить в том же диалоговом окне или скопировав и вставив в наш диапазон ячейки с дубликатами. Против лома нет приема. Для предотвращения таких террористических действий пользователя придется включать уже серьезную защиту листа с паролем и писать специальный макрос перехвата копирования.
Но от случайного ввода дубликатов подобный способ вполне предохранит.
У меня уже стоит проверка по кол-ву знаков при вводе и надо в том же столбце исключить повторы.
=И(СЧЁТЕСЛИ($A$1:$A$10;A1)<=1;ДЛСТР(A1)<20)
Например задача. Необходимо создать список сотрудников и ввести их табельные номера. Понятно что табельные номера должны быть уникальны.
Мы создаем программку не дающую возможность вбить дублированный ТабНум и сажаем девочку за эту работу, Через некоторое время выясняется, что работа встала, потому, что девочка подошла к очередной фамилии, завела ее, а табельный номер, ей программы вбить не дает. она тупо смотрит в список и говорит, ну вот же, здесь написано, Иванов, номер 7534, а Ваша программа не дает его занести. И оказывается, что этот номер действительно правильный для Иванова, но ошибка была совершена ранее 50-ю десятью строчками, при вводе Сидорова, и вместо его номера 7543 он ввела 7534. Приходится искать а где же это раньше она совершила ошибку? В результате работа по вводу (срочная между прочим) останавливается и начинаются судорожные поиски. Поэтому общий принцип такой: Если вы посадили человека (часто малоопытного) за вбивание данных - разрешите ему вбивать все. Ошибки найдете позднее и его данные "причешете". Вывод: Если Вы профессионально занимаетесь созданием больших списков - время дороже контроля ошибок.
Помогите разобраться.
Есть таблица с колонками Дата; Время; Показание. Ввод времени и показаний осуществляется через форму. Временной диапазон занесения (0:00, 0:30, 1:00 и т.д. до 23:30). Это повторяется каждые сутки. Меняется только Дата и показания, временной диапазон остается неизменным.
Так вот, как сделать проверку на случайное повторение временного диапазона привязываясь к дате на текущий день, занесения данных?