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

Вход

Регистрация

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

 

= Мир MS Excel/Запрет на ввод только целых чисел работает не корректно - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Запрет на ввод только целых чисел работает не корректно (Формулы/Formulas)
Запрет на ввод только целых чисел работает не корректно
DrMini Дата: Пятница, 16.11.2018, 05:31 | Сообщение № 1
Группа: Проверенные
Ранг: Старожил
Сообщений: 1609
Репутация: 195 ±
Замечаний: 0% ±

Excel LTSC 2024 RUS
Здравствуйте уважаемые форумчане.
Сегодня случайно обнаружил, что если ввести в ячейку (в которой разрешён ввод только целых чисел в диапазоне от 0 до 99999) число с разделителем в виде точки (в диапазоне от 1.1 до 31.1) то получаются пятизначные числа (от 43101 до 43131). При вводе чисел больше 31.1 или используя разделитель между целыми числами запятую, - ограничивающее правило работает. Формат ячейки 00000. Подскажите пожалуйста, как это "побороть"? И если можно то объясните почему так считает EXCEL?
К сообщению приложен файл: 201811161.xlsx (9.8 Kb)
 
Ответить
СообщениеЗдравствуйте уважаемые форумчане.
Сегодня случайно обнаружил, что если ввести в ячейку (в которой разрешён ввод только целых чисел в диапазоне от 0 до 99999) число с разделителем в виде точки (в диапазоне от 1.1 до 31.1) то получаются пятизначные числа (от 43101 до 43131). При вводе чисел больше 31.1 или используя разделитель между целыми числами запятую, - ограничивающее правило работает. Формат ячейки 00000. Подскажите пожалуйста, как это "побороть"? И если можно то объясните почему так считает EXCEL?

Автор - DrMini
Дата добавления - 16.11.2018 в 05:31
_Boroda_ Дата: Пятница, 16.11.2018, 07:49 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Почему - потому, что число 28.1 интерпретируется Excel-ем как дата текущего года, а дата - это целое число дней, прошедших от нулевого января 1900 года
Можно пожертвовать числами текущего года (для 2018 это от 43101 до 43131 - 1 января 2018 - 31 декабря 2018) и ввести такую проверку
Код
=ЕЧИСЛО(A1)*(ГОД(A1)<>ГОД(СЕГОДНЯ()))

Тут правда возникает вопрос про возможность ввода такого - 1.1.1. Это тоже дата, но уже 2001 года
К сообщению приложен файл: 201811161_1.xlsx (10.3 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеПочему - потому, что число 28.1 интерпретируется Excel-ем как дата текущего года, а дата - это целое число дней, прошедших от нулевого января 1900 года
Можно пожертвовать числами текущего года (для 2018 это от 43101 до 43131 - 1 января 2018 - 31 декабря 2018) и ввести такую проверку
Код
=ЕЧИСЛО(A1)*(ГОД(A1)<>ГОД(СЕГОДНЯ()))

Тут правда возникает вопрос про возможность ввода такого - 1.1.1. Это тоже дата, но уже 2001 года

Автор - _Boroda_
Дата добавления - 16.11.2018 в 07:49
bmv98rus Дата: Пятница, 16.11.2018, 07:49 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4099
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
Считает это по тому так, что при вводе домысливает что это дата текущего года, и это число попадающее под диапазон. А вот как бороть это - надо подумать.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеСчитает это по тому так, что при вводе домысливает что это дата текущего года, и это число попадающее под диапазон. А вот как бороть это - надо подумать.

Автор - bmv98rus
Дата добавления - 16.11.2018 в 07:49
DrMini Дата: Пятница, 16.11.2018, 08:15 | Сообщение № 4
Группа: Проверенные
Ранг: Старожил
Сообщений: 1609
Репутация: 195 ±
Замечаний: 0% ±

Excel LTSC 2024 RUS
потому, что число 28.1 интерпретируется Excel-ем как дата текущего года

Пипец. Вот ведь туплю. Спасибо за разъяснение.
Александр, а можно как-то запретить ввод даже с запятой. Потому, что при вводе например 2,6 выходит 00003, а надо 00002.
 
Ответить
Сообщение
потому, что число 28.1 интерпретируется Excel-ем как дата текущего года

Пипец. Вот ведь туплю. Спасибо за разъяснение.
Александр, а можно как-то запретить ввод даже с запятой. Потому, что при вводе например 2,6 выходит 00003, а надо 00002.

Автор - DrMini
Дата добавления - 16.11.2018 в 08:15
bmv98rus Дата: Пятница, 16.11.2018, 08:31 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4099
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
Так сравните целое со значением и если равно, значит нет запятой.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеТак сравните целое со значением и если равно, значит нет запятой.

Автор - bmv98rus
Дата добавления - 16.11.2018 в 08:31
Sancho Дата: Пятница, 16.11.2018, 08:34 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 279
Репутация: 19 ±
Замечаний: 0% ±

2007, 2010, 2013
можно как-то запретить ввод даже с запятой


Поставьте формат ячеек Число. даты будет сразу в число переводить, запятые вводить не дает
 
Ответить
Сообщение
можно как-то запретить ввод даже с запятой


Поставьте формат ячеек Число. даты будет сразу в число переводить, запятые вводить не дает

Автор - Sancho
Дата добавления - 16.11.2018 в 08:34
DrMini Дата: Пятница, 16.11.2018, 08:44 | Сообщение № 7
Группа: Проверенные
Ранг: Старожил
Сообщений: 1609
Репутация: 195 ±
Замечаний: 0% ±

Excel LTSC 2024 RUS
Поставьте формат ячеек Число.

Надо, что бы число в ячейке было с нулями. Формат ячейки 00000
 
Ответить
Сообщение
Поставьте формат ячеек Число.

Надо, что бы число в ячейке было с нулями. Формат ячейки 00000

Автор - DrMini
Дата добавления - 16.11.2018 в 08:44
DrMini Дата: Пятница, 16.11.2018, 08:45 | Сообщение № 8
Группа: Проверенные
Ранг: Старожил
Сообщений: 1609
Репутация: 195 ±
Замечаний: 0% ±

Excel LTSC 2024 RUS
Так сравните целое со значением и если равно, значит нет запятой.

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

Честно говоря не понял как это сделать в ячейке в которую вводятся данные.

Автор - DrMini
Дата добавления - 16.11.2018 в 08:45
Sancho Дата: Пятница, 16.11.2018, 08:54 | Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 279
Репутация: 19 ±
Замечаний: 0% ±

2007, 2010, 2013
Надо, что бы число в ячейке было с нулями. Формат ячейки 00000


Не посмотрел сразу пример, ссссоррри. тогда формат 0000# но даты по-прежнему
К сообщению приложен файл: _201811161_1.xlsx (10.5 Kb)
 
Ответить
Сообщение
Надо, что бы число в ячейке было с нулями. Формат ячейки 00000


Не посмотрел сразу пример, ссссоррри. тогда формат 0000# но даты по-прежнему

Автор - Sancho
Дата добавления - 16.11.2018 в 08:54
DrMini Дата: Пятница, 16.11.2018, 09:04 | Сообщение № 10
Группа: Проверенные
Ранг: Старожил
Сообщений: 1609
Репутация: 195 ±
Замечаний: 0% ±

Excel LTSC 2024 RUS
тогда формат 0000#

Спасибо. Всё хорошо но при вводе "0" в ячейке видно 0000 (четыре нуля), а надо что бы даже при нуле было 00000 (пять нулей).
 
Ответить
Сообщение
тогда формат 0000#

Спасибо. Всё хорошо но при вводе "0" в ячейке видно 0000 (четыре нуля), а надо что бы даже при нуле было 00000 (пять нулей).

Автор - DrMini
Дата добавления - 16.11.2018 в 09:04
bmv98rus Дата: Пятница, 16.11.2018, 09:09 | Сообщение № 11
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4099
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
Если все ж исключать ввод даты текущего года, то
Код
=(YEAR(A1)<>YEAR(--"1.1"))*(INT(A1)=A1)


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Пятница, 16.11.2018, 09:12
 
Ответить
СообщениеЕсли все ж исключать ввод даты текущего года, то
Код
=(YEAR(A1)<>YEAR(--"1.1"))*(INT(A1)=A1)

Автор - bmv98rus
Дата добавления - 16.11.2018 в 09:09
DrMini Дата: Пятница, 16.11.2018, 09:16 | Сообщение № 12
Группа: Проверенные
Ранг: Старожил
Сообщений: 1609
Репутация: 195 ±
Замечаний: 0% ±

Excel LTSC 2024 RUS
bmv98rus, У меня выдаёт ошибку формулы.
 
Ответить
Сообщениеbmv98rus, У меня выдаёт ошибку формулы.

Автор - DrMini
Дата добавления - 16.11.2018 в 09:16
_Boroda_ Дата: Пятница, 16.11.2018, 09:17 | Сообщение № 13
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
ГОД(--("1.1")

Зависит от настроек компа
Тогда уж так
Код
=(отбр(A1)=ABS(A1))*(ГОД(A1)<>ГОД(СЕГОДНЯ()))

Но это все равно не решает вопроса с вводом 1-5-7; 1.5.7; 1/5/7 и т.п.


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
ГОД(--("1.1")

Зависит от настроек компа
Тогда уж так
Код
=(отбр(A1)=ABS(A1))*(ГОД(A1)<>ГОД(СЕГОДНЯ()))

Но это все равно не решает вопроса с вводом 1-5-7; 1.5.7; 1/5/7 и т.п.

Автор - _Boroda_
Дата добавления - 16.11.2018 в 09:17
DrMini Дата: Пятница, 16.11.2018, 09:24 | Сообщение № 14
Группа: Проверенные
Ранг: Старожил
Сообщений: 1609
Репутация: 195 ±
Замечаний: 0% ±

Excel LTSC 2024 RUS
Но это все равно не решает вопроса с вводом 1-5-7; 1.5.7; 1/5/7

Всё прекрасно решилось. Это показания счётчика, а там только одна запятая после целого числа.
Александр ещё раз СПАСИБО и низкий поклон!
yes
 
Ответить
Сообщение
Но это все равно не решает вопроса с вводом 1-5-7; 1.5.7; 1/5/7

Всё прекрасно решилось. Это показания счётчика, а там только одна запятая после целого числа.
Александр ещё раз СПАСИБО и низкий поклон!
yes

Автор - DrMini
Дата добавления - 16.11.2018 в 09:24
Sancho Дата: Пятница, 16.11.2018, 09:45 | Сообщение № 15
Группа: Проверенные
Ранг: Обитатель
Сообщений: 279
Репутация: 19 ±
Замечаний: 0% ±

2007, 2010, 2013
Решение макросом

Блин забыл добавить условие больше 99999 и меньше 0, да и текст вообще


Сообщение отредактировал Sancho - Пятница, 16.11.2018, 10:16
 
Ответить
СообщениеРешение макросом

Блин забыл добавить условие больше 99999 и меньше 0, да и текст вообще

Автор - Sancho
Дата добавления - 16.11.2018 в 09:45
DrMini Дата: Пятница, 16.11.2018, 09:47 | Сообщение № 16
Группа: Проверенные
Ранг: Старожил
Сообщений: 1609
Репутация: 195 ±
Замечаний: 0% ±

Excel LTSC 2024 RUS
Решение макросом

Sancho, Спасибо но, макрос использовать нельзя.
 
Ответить
Сообщение
Решение макросом

Sancho, Спасибо но, макрос использовать нельзя.

Автор - DrMini
Дата добавления - 16.11.2018 в 09:47
bmv98rus Дата: Пятница, 16.11.2018, 10:02 | Сообщение № 17
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4099
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
=(отбр(A1)=ABS(A1))*(

ээээээ а смысл? в данном случае важно есть или нет дробная часть, а то , в какую сторону отбросится - не важно, ну а применительно к счетчику- оно в минус не часто мотает :-)
ГОД(A1)<> - cогласен.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщение
=(отбр(A1)=ABS(A1))*(

ээээээ а смысл? в данном случае важно есть или нет дробная часть, а то , в какую сторону отбросится - не важно, ну а применительно к счетчику- оно в минус не часто мотает :-)
ГОД(A1)<> - cогласен.

Автор - bmv98rus
Дата добавления - 16.11.2018 в 10:02
_Boroda_ Дата: Пятница, 16.11.2018, 10:13 | Сообщение № 18
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
а смысл?

Смысл в том, чтобы отсечь отрицательные. Ведь про то, что это счетчик, мы узнали только из сообщения #14


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
а смысл?

Смысл в том, чтобы отсечь отрицательные. Ведь про то, что это счетчик, мы узнали только из сообщения #14

Автор - _Boroda_
Дата добавления - 16.11.2018 в 10:13
Sancho Дата: Пятница, 16.11.2018, 10:16 | Сообщение № 19
Группа: Проверенные
Ранг: Обитатель
Сообщений: 279
Репутация: 19 ±
Замечаний: 0% ±

2007, 2010, 2013
макрос использовать нельзя


допилил, может кому пригодится
К сообщению приложен файл: 9131832.xlsm (20.4 Kb)
 
Ответить
Сообщение
макрос использовать нельзя


допилил, может кому пригодится

Автор - Sancho
Дата добавления - 16.11.2018 в 10:16
DrMini Дата: Пятница, 16.11.2018, 10:29 | Сообщение № 20
Группа: Проверенные
Ранг: Старожил
Сообщений: 1609
Репутация: 195 ±
Замечаний: 0% ±

Excel LTSC 2024 RUS
может кому пригодится

Спасибо!
 
Ответить
Сообщение
может кому пригодится

Спасибо!

Автор - DrMini
Дата добавления - 16.11.2018 в 10:29
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Запрет на ввод только целых чисел работает не корректно (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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