Сразу к делу. У нас есть таблица с серийными номерами (абстрактная таблица, конкретную нет смысла прикладывать). Серийные номера вводятся вручную, поэтому появляются следующие дубли: - CR6623OJ4 и CR6623DJ4 (человек путает O и D) - PLN4558K и PLN455BK (человек путает 8 и "B") - 23774301 и 237743O1 (человек путает цифру ноль и букву О)
Подскажите, как найти такие дубли? Я думал создать еще один столбец, заменить в серийниках 8 на B и сравнивать эти два столбца. Но таблица может быть на 50 тысяч строк, поэтому может есть способ проще?
А ещё человек путает цифру 1 и букву I, цифру 1 и букву l, цифру 0 и букву D, не различает русские и латинские А, В, С, Е и т.д. И где гарантия, что на самом деле должна быть 1 а не I. И кто именно должен это различать: человек вводящий, человек читающий (проверяющий) или человек разумный? PS Я просто уточняю задание. PPS Э-хе-хе! Где золотое правило, что при написании программы или подготовке данных для ввода цифра 0 обязательно должна перечеркиваться? Сколько перфокарт на этом было угроблено...
esheg, с русскими и латинскими буквами я уже разобрался С 1 и l пока прецедентов не было. Приведённые примеры в основном сообщение - это реальные случаи.
Если есть серийники, которые различаются на один символ (GAG558E и GAG55BE, например), то это скорее всего дубли. Я нашёл очень простой способ их нахождения - менять во всех серийниках 8 на B, потом с помощью СЧЁТЕСЛИ находить сие дубли.
Попробуйте отсортировать список серийников по алфавиту и в соседнем столбце сравнить следующий с предыдущим. Где в группе похожих выскочит FALSE, там и ищем проблему? Или, может, условное форматирование как-то поможет. Пример нужен внятный.