Страницы: 1
RSS
Кастомная валидация данных
 
Добрый день уважаемые эксперты.  
Помогите разобраться с кастомной валидацией вводимых данных. Перечитал кучу информации, но везде примеры не те.  
 
Задача:  
Имеется столбец.  
 
Необходимо, что бы пользователи вводили в него только положительное число (впереди могут быть нули), длинна которого меньше 13. Понял, что делать это надо с помощью формулы, но составить её не получается.  
 
Буду при много благодарен. Заранее спасибо.  
 
PS  
У меня получилось что-то вроде этого    
И(ЕЧИСЛО(K2:K1000);ДЛСТР(K2:K1000)=13)  
Но как-то криво работает, не игнорируются пустые ячейки, и вообще не уверен, что я был на том пути
 
Выделить нужный диапазон, затем проверка данных.  
=И(ДЛСТР(K2)<=13;K2>0)
 
{quote}{login=rentgen}{date=11.12.2009 02:02}{thema=Кастомная валидация данных}{post}  
 
Необходимо, что бы пользователи вводили в него только положительное число (впереди могут быть нули){/post}{/quote}  
 
понимаете какая петрушка, если "впереди нули" то это с точки зрения экселя и не число уже совсем, а текст. То есть совсем другой коленкор. Если вдруг вариант kim не поможет - выложите примерчик с этими "числами"
 
Так что такое "кастомная валидация"??
 
{quote}{login=явшоке}{date=11.12.2009 02:37}{thema=ничего не понял, но интересно}{post}Так что такое "кастомная валидация"??{/post}{/quote}  
 
В инете гляньте, но не советую :-)
 
решительно утверждаю, в инете на 15 часов 15 минут 11 декабря 2009 года, определения, что такое "кастомная валидация" нету.
 
Да ну! Яндекс нашел 133 страницы.
 
{quote}{login=явшоке}{date=11.12.2009 03:15}{thema=инет может не всё}{post}решительно утверждаю, в инете на 15 часов 15 минут 11 декабря 2009 года, определения, что такое "кастомная валидация" нету.{/post}{/quote}  
Как нехорощо обмынывать...  
Z.
 
Валидация является проверкой соответствия каких то требований каким-то критериям. Уже является частью русского языка, происхождение от validation<-valid.    
Слово "Кастомная" от английского слова custom, которая в виде прилагательного означает частная/пользовательская/"на заказ" и т. п. Употребляется, т к лень вспоминать русский аналог.  
Соответственно, кастомная валидация в данном случае означает "формулу проверки на индивидуальные хотелки", описанные в первом сообщении.  
Нафига было использовать в данном случае этот термин непонятно.  
Вообще, слов довольно много прикольных есть. Созданы для того, чтобы при написании научных работ, содержание оной можно было понять только с энной попытки. В связи с чем реально понимают о чём речь очень мало людей и, соответственно, повышается шанс получить какую-нибудь плюшку: степень там, грант какой.  
 
Чтобы не оффтопить, если есть нули, то нужна такая формула:  
=И(ДЛСТР(A1)<=13;A1*1>0)
 
Ответ Саша порадовал как содержанием, так формой изложения!  
Как всё красиво и закончено!  
СПАСИЮО!
 
Огромное спасибо, всем ответившим. Получил быстро грамотные ответы - очень хороший форум, буду его рекомендовать своим друзьям и знакомым.  
 
Пример Сашки, очень хорошо работает. А главное его пример объяснил мне - что, если выделить столбец, и создать правило для одной ячейки, то - это правило распространится на все, с автоматической подменой активной ячейки.
 
Ну, слышать "Сашка" от постороннего человека, конечно, неприятно, но это хотя бы не "Шурка".  
А вообще, только сейчас заметил, что в исходной формуле диапазон массивом. В этом случае И() работает, грубо говоря, некорректно.    
Можно так:  
=(ДЛСТР(G32:G33)<=13)*(G32:G33*1>0)=1
 
{quote}{login=}{date=11.12.2009 07:56}{thema=}{post}Ну, слышать "Сашка" от постороннего человека, конечно, неприятно, но это хотя бы не "Шурка".  
А вообще, только сейчас заметил, что в исходной формуле диапазон массивом. В этом случае И() работает, грубо говоря, некорректно.    
Можно так:  
=(ДЛСТР(G32:G33)<=13)*(G32:G33*1>0)=1{/post}{/quote}  
Я прошу прощения, мне показалось, что логин был не Саша, а Сашка, поэтому я использовал такую "грубость" в ответе, ссылаясь на логин. При тестировании выявились, некоторые баги формулы, а именно, она пропускает дроби  
 
Пример: 1234567,12312  
 
PS  
Числовой формат использовать не могу, в связи с тем, что у меня впереди могут быть n кол-во нулей (Пример:0012345678912) я использую формат ячейки - текстовый. При использовании числового формата задать нормальный тип не получилось. Более менее подходил тип 0000000000000, но скрывает ошибки при наборе номера, так как если пользователь наберёт 123, то число автоматически преобразуется в 0000000000123, что не есть хорошо. Перечитал кучу мануал ан сайте микрософта, но ответа не нашёл, поэтому остановился на тексте.
 
Дроби тут непричем, длина вашего текста равна 13 символам. Поправьте формулу Саши и все дела.  
=(ДЛСТР(G32:G33)<13)*(G32:G33*1>0)=1
 
1. Выделить ячейку K2  
2. Меню Данные – Проверка -  вкладка Параметры - Тип данных:другой – Формула:  
=ЕЧИСЛО(K2*1)*(ДЛСТР(ПОДСТАВИТЬ(K2;",";""))<=13)
 
{quote}{login=kim}{date=11.12.2009 11:32}{thema=}{post}Дроби тут непричем, длина вашего текста равна 13 символам. Поправьте формулу Саши и все дела.  
=(ДЛСТР(G32:G33)<13)*(G32:G33*1>0)=1{/post}{/quote}  
не помогло
 
ZVI, так вроде пропустит еще длиннее текст?
 
rentgen, скажите, какую максимальную длину текста разрешено будет вводить?
 
{quote}{login=kim}{date=11.12.2009 11:39}{thema=}{post}ZVI, так вроде пропустит еще длиннее текст?{/post}{/quote}  
Не пропустит, если длина строки <=13  
В большинстве примеров здесь приводилось именно это условие.  
Вместо <=13 можно подставить требуемый критерий.  
В моем варианте запятая не учитывается в условии длины строки, но не уверен, что это требовалось, так как окончательный критерий чётко не сформулирован.
 
{quote}{login=kim}{date=11.12.2009 11:43}{thema=}{post}rentgen, скажите, какую максимальную длину текста разрешено будет вводить?{/post}{/quote}  
13
 
{quote}{login=ZVI}{date=11.12.2009 11:35}{thema=}{post}1. Выделить ячейку K2  
2. Меню Данные – Проверка -  вкладка Параметры - Тип данных:другой – Формула:  
=ЕЧИСЛО(K2*1)*(ДЛСТР(ПОДСТАВИТЬ(K2;",";""))<=13){/post}{/quote}  
Огромное спасибо, запятую не пропускает.
 
Может проверку на отрицательность добавить? Что-нибудь наподобие (ПСТР(K2;1;1)<>"-")  
Или уже не надо? Мда, скучаемс, нуна спать идти...
Страницы: 1
Читают тему
Наверх