Пытаюсь решить такую задачу в Google табличке. Есть два столбца: 1) Дата (установлена проверка данных по дате), т.е. пользователь ничего, кроме даты в заданном формате указать не может; 2) Время (необходимо настроить так, чтобы пользователь мог указать время в формате HH:MM:ss, при том время должно быть больше указанного ранее на три часа). Т.е. если в предыдущей строке была указана дата 01.10.2019, а время 23:00, то в строке ниже должно быть указано любое время, но больше 02:00 уже 02.10.2019. Если пользователь укажет 02:00, но дату оставит 01.10, должна сработать проверка данных на запрет ввода такого времени. Пробовал зависимые списки с фильтром по набору времени, но это жесть, при условии, что моей задачей является составление некого планнинга на целый месяц. Если кто сможет помочь решить задачу, буду премного благодарен!
Добрый день!
Пытаюсь решить такую задачу в Google табличке. Есть два столбца: 1) Дата (установлена проверка данных по дате), т.е. пользователь ничего, кроме даты в заданном формате указать не может; 2) Время (необходимо настроить так, чтобы пользователь мог указать время в формате HH:MM:ss, при том время должно быть больше указанного ранее на три часа). Т.е. если в предыдущей строке была указана дата 01.10.2019, а время 23:00, то в строке ниже должно быть указано любое время, но больше 02:00 уже 02.10.2019. Если пользователь укажет 02:00, но дату оставит 01.10, должна сработать проверка данных на запрет ввода такого времени. Пробовал зависимые списки с фильтром по набору времени, но это жесть, при условии, что моей задачей является составление некого планнинга на целый месяц. Если кто сможет помочь решить задачу, буду премного благодарен!LeSSSSS
[/vba]Для неверных данных: запрещать ввод данных Оформление: Показывать текст справки для проверки данных: [vba]
Код
Введите правильное ВРЕМЯ, согласующееся с соседними ячейками!
[/vba]
Посмотрите, может быть, Вам что-то подойдёт. Запрет, конечно, не абсолютный - абсолютных не бывает: всегда остается операция копирования из другого места, а также очистка ячеек клавишей Delete. Но даже если Delete, то начинают подсвечиваться соседние ячейки, говорящие человеку разумному о том, что что-то не так в данных и надо что-то подправить. Именно разумному, который ратует за порядок в данных, а не табличному садисту, злорадно пытающемуся вольно или невольно этот порядок разрушить и сломать хоть какие-то, но проверки (подобных деятелей надо по возможности удалять из трудового коллектива).
Против копирования же, как против лома, увы, нет приема. Но можно человека (опять-таки разумного) попросить не использовать эту операцию в рассматриваемых диапазонах (точнее, даже не копирования, а его заключительной фазы - вставки).
Общие правила, которыми я руководствовался при составлении проверок: * ячейка из столбца "Время" не может быть заполнена при незаполненной "Дате" из той же строки * в ячейку из столбца "Время" не может быть введено значение больше, чем 23:59:59 * значения в столбце "Дата" должны монотонно возрастать, т.е. значение даты из определенной строки не может быть меньше значения даты из предыдущей строки и не может быть больше значения из последуюшей строки (при условии непустоты этой последующей ячейки) * разница сумм "Дата"+"Время" в текущей строке и "Дата"+"Время" в предыдущей строке не может быть меньше 3-х часов (в формуле обеспечивается условием ">=TIME(3;0;0)", которое может быть изменено на любое другое значение дельты)
Сделал примерно так. В ячейках первой строки - заголовки колонок: в A1 - Дата, в B1 - Время. И далее настроил две проверки данных:
[/vba]Для неверных данных: запрещать ввод данных Оформление: Показывать текст справки для проверки данных: [vba]
Код
Введите правильное ВРЕМЯ, согласующееся с соседними ячейками!
[/vba]
Посмотрите, может быть, Вам что-то подойдёт. Запрет, конечно, не абсолютный - абсолютных не бывает: всегда остается операция копирования из другого места, а также очистка ячеек клавишей Delete. Но даже если Delete, то начинают подсвечиваться соседние ячейки, говорящие человеку разумному о том, что что-то не так в данных и надо что-то подправить. Именно разумному, который ратует за порядок в данных, а не табличному садисту, злорадно пытающемуся вольно или невольно этот порядок разрушить и сломать хоть какие-то, но проверки (подобных деятелей надо по возможности удалять из трудового коллектива).
Против копирования же, как против лома, увы, нет приема. Но можно человека (опять-таки разумного) попросить не использовать эту операцию в рассматриваемых диапазонах (точнее, даже не копирования, а его заключительной фазы - вставки).
Общие правила, которыми я руководствовался при составлении проверок: * ячейка из столбца "Время" не может быть заполнена при незаполненной "Дате" из той же строки * в ячейку из столбца "Время" не может быть введено значение больше, чем 23:59:59 * значения в столбце "Дата" должны монотонно возрастать, т.е. значение даты из определенной строки не может быть меньше значения даты из предыдущей строки и не может быть больше значения из последуюшей строки (при условии непустоты этой последующей ячейки) * разница сумм "Дата"+"Время" в текущей строке и "Дата"+"Время" в предыдущей строке не может быть меньше 3-х часов (в формуле обеспечивается условием ">=TIME(3;0;0)", которое может быть изменено на любое другое значение дельты)Gustav
Gustav, огромное Вам человеческое спасибо! Вернулся из командировки, чтобы дальше ломать голову со своей задачей, а Вы ее проактивно уже помогли мне решить)) Подставил формулы, и все заработало именно так, как я и хотел. Буду разбирать логику формул для самообразования! ОГРОМНОЕ СПАСИБО!
Gustav, огромное Вам человеческое спасибо! Вернулся из командировки, чтобы дальше ломать голову со своей задачей, а Вы ее проактивно уже помогли мне решить)) Подставил формулы, и все заработало именно так, как я и хотел. Буду разбирать логику формул для самообразования! ОГРОМНОЕ СПАСИБО!LeSSSSS