Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Проверка при вводе данных по маске (госномер РФ) - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Проверка при вводе данных по маске (госномер РФ)
makswer Дата: Четверг, 07.11.2024, 06:50 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Добрый день, коллеги!
Подскажите как можно учесть в формуле при проверке данных следующие параметры ввода:
1. маски ввода следующего вида
БЧЧЧББ ЧЧ
БЧЧЧББ ЧЧЧ
ББЧЧЧЧ ЧЧ
ББЧЧЧЧ ЧЧЧ
где Б- буквы (АВЕКМНОРСТУХ), Ч-Число от 0 до 9
2. Длина строки 9 или 10 символов
3. Пробел на 7 позиции может быть, а может и не быть.
4. регистр не важен
5. реализация формулой (не макросом)
 
Ответить
СообщениеДобрый день, коллеги!
Подскажите как можно учесть в формуле при проверке данных следующие параметры ввода:
1. маски ввода следующего вида
БЧЧЧББ ЧЧ
БЧЧЧББ ЧЧЧ
ББЧЧЧЧ ЧЧ
ББЧЧЧЧ ЧЧЧ
где Б- буквы (АВЕКМНОРСТУХ), Ч-Число от 0 до 9
2. Длина строки 9 или 10 символов
3. Пробел на 7 позиции может быть, а может и не быть.
4. регистр не важен
5. реализация формулой (не макросом)

Автор - makswer
Дата добавления - 07.11.2024 в 06:50
китин Дата: Четверг, 07.11.2024, 07:19 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 7029
Репутация: 1078 ±
Замечаний: 0% ±

Excel 2007;2010;2016
Почитайте ЭТУ ТЕМУ
может пригодится


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
СообщениеПочитайте ЭТУ ТЕМУ
может пригодится

Автор - китин
Дата добавления - 07.11.2024 в 07:19
makswer Дата: Четверг, 07.11.2024, 09:18 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Спасибо, китин.
Навели на такой путь:
Код
=ИЛИ(И(ЕЧИСЛО(НАЙТИ(ПСТР(A1;{1;6;5};1);"АВЕКМНОРСТУХавекмнорстух")*ПСТР(A1&0;{2:3:4:8:9};1));ДЛСТР(A1)<=10);И(ЕЧИСЛО(НАЙТИ(ПСТР(A1;{1;2};1);"АВЕКМНОРСТУХавекмнорстух")*ПСТР(A1&0;{3:4:5:6:8:9};1));ДЛСТР(A1)<=10))
 
Ответить
СообщениеСпасибо, китин.
Навели на такой путь:
Код
=ИЛИ(И(ЕЧИСЛО(НАЙТИ(ПСТР(A1;{1;6;5};1);"АВЕКМНОРСТУХавекмнорстух")*ПСТР(A1&0;{2:3:4:8:9};1));ДЛСТР(A1)<=10);И(ЕЧИСЛО(НАЙТИ(ПСТР(A1;{1;2};1);"АВЕКМНОРСТУХавекмнорстух")*ПСТР(A1&0;{3:4:5:6:8:9};1));ДЛСТР(A1)<=10))

Автор - makswer
Дата добавления - 07.11.2024 в 09:18
elovkov Дата: Четверг, 07.11.2024, 09:54 | Сообщение № 4
Группа: Друзья
Ранг: Обитатель
Сообщений: 406
Репутация: 73 ±
Замечаний: 0% ±

Excel 2013
Навели на такой путь:


Немного усовершенствовал:
Код
=ИЛИ(И(ЕЧИСЛО(НАЙТИ(ПСТР(A1;{1;6;5};1);"АВЕКМНОРСТУХавекмнорстух")*ПСТР(A1&0;{2:3:4:8:9};1));ДЛСТР(ЕСЛИОШИБКА(ЗАМЕНИТЬ(A1;НАЙТИ(" ";A1);1;"");A1))<=9);И(ЕЧИСЛО(НАЙТИ(ПСТР(A1;{1;2};1);"АВЕКМНОРСТУХавекмнорстух")*ПСТР(A1&0;{3:4:5:6:8:9};1));ДЛСТР(ЕСЛИОШИБКА(ЗАМЕНИТЬ(A1;НАЙТИ(" ";A1);1;"");A1))<=9))


А то при отсутствии пробела 4-х значный регион проходил проверку


Умное лицо это еще не признак ума. Все глупости на земле делаются именно с этим выражением лица
 
Ответить
Сообщение
Навели на такой путь:


Немного усовершенствовал:
Код
=ИЛИ(И(ЕЧИСЛО(НАЙТИ(ПСТР(A1;{1;6;5};1);"АВЕКМНОРСТУХавекмнорстух")*ПСТР(A1&0;{2:3:4:8:9};1));ДЛСТР(ЕСЛИОШИБКА(ЗАМЕНИТЬ(A1;НАЙТИ(" ";A1);1;"");A1))<=9);И(ЕЧИСЛО(НАЙТИ(ПСТР(A1;{1;2};1);"АВЕКМНОРСТУХавекмнорстух")*ПСТР(A1&0;{3:4:5:6:8:9};1));ДЛСТР(ЕСЛИОШИБКА(ЗАМЕНИТЬ(A1;НАЙТИ(" ";A1);1;"");A1))<=9))


А то при отсутствии пробела 4-х значный регион проходил проверку

Автор - elovkov
Дата добавления - 07.11.2024 в 09:54
Nic70y Дата: Четверг, 07.11.2024, 10:01 | Сообщение № 5
Группа: Друзья
Ранг: Экселист
Сообщений: 9005
Репутация: 2369 ±
Замечаний: 0% ±

Excel 2010
если
Код
=НАЙТИ()
заменить на
Код
=ПОИСК()
то регистр не важен

апдэйт, для разнообразия
Код
=ЕЧИСЛО(ПОИСК(СУММПРОИЗВ(ЗНАК(ПОИСК(ПСТР(ЛЕВБ(ПОДСТАВИТЬ(A8;" ";)&"0v";10);СТРОКА(A$1:A$9);1);"АВЕКМНОРСТУХ_0123456789")-13)/СТРОКА(A$1:A$9));"0,0956349206349206-0,171031746031746"))
вдруг правильно


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Четверг, 07.11.2024, 11:23
 
Ответить
Сообщениеесли
Код
=НАЙТИ()
заменить на
Код
=ПОИСК()
то регистр не важен

апдэйт, для разнообразия
Код
=ЕЧИСЛО(ПОИСК(СУММПРОИЗВ(ЗНАК(ПОИСК(ПСТР(ЛЕВБ(ПОДСТАВИТЬ(A8;" ";)&"0v";10);СТРОКА(A$1:A$9);1);"АВЕКМНОРСТУХ_0123456789")-13)/СТРОКА(A$1:A$9));"0,0956349206349206-0,171031746031746"))
вдруг правильно

Автор - Nic70y
Дата добавления - 07.11.2024 в 10:01
makswer Дата: Четверг, 07.11.2024, 11:58 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
=ИЛИ(И(ЕЧИСЛО(НАЙТИ(ПСТР(A1;{1;6;5};1);"АВЕКМНОРСТУХавекмнорстух")*ПСТР(A1&0;{2:3:4:8:9};1));ДЛСТР(ЕСЛИОШИБКА(ЗАМЕНИТЬ(A1;НАЙТИ(" ";A1);1;"");A1))<=9);И(ЕЧИСЛО(НАЙТИ(ПСТР(A1;{1;2};1);"АВЕКМНОРСТУХавекмнорстух")*ПСТР(A1&0;{3:4:5:6:8:9};1));ДЛСТР(ЕСЛИОШИБКА(ЗАМЕНИТЬ(A1;НАЙТИ(" ";A1);1;"");A1))<=9))


Наиболее корректный вариант. Проверил по разным заведомо некорректным и корректным значениям.
 
Ответить
Сообщение
=ИЛИ(И(ЕЧИСЛО(НАЙТИ(ПСТР(A1;{1;6;5};1);"АВЕКМНОРСТУХавекмнорстух")*ПСТР(A1&0;{2:3:4:8:9};1));ДЛСТР(ЕСЛИОШИБКА(ЗАМЕНИТЬ(A1;НАЙТИ(" ";A1);1;"");A1))<=9);И(ЕЧИСЛО(НАЙТИ(ПСТР(A1;{1;2};1);"АВЕКМНОРСТУХавекмнорстух")*ПСТР(A1&0;{3:4:5:6:8:9};1));ДЛСТР(ЕСЛИОШИБКА(ЗАМЕНИТЬ(A1;НАЙТИ(" ";A1);1;"");A1))<=9))


Наиболее корректный вариант. Проверил по разным заведомо некорректным и корректным значениям.

Автор - makswer
Дата добавления - 07.11.2024 в 11:58
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!