Страницы: 1
RSS
Функция "РАЗНДАТ" пишет ошибку, если начальная дата позже конечной, как обойти это ограничение?
 
Добрый день. Есть функция отвечающая за подсчитывание количества дней между двумя разными датами. - РАЗНДАТ

Задача:
Необходимо чтобы за день до события ячейка напоминала о том, что завтра будет некое событие. Пишет "ЗАВТРА"
В День самого события ячейка пишет "Сегодня", а после того, как указанная дата события прошла, ячейка бы писала "ЗАКОНЧЕНО".

С первыми двумя моментами проблем не возникло, использовал функцию ЕСЛИ. Но вот после прохождения даты функция пишет ошибку, т.к. дата события становится раньше текущей даты. Функция не подразумевает подсчет дней в том случае, если дата первого событие позже даты второго события и выдает ошибку всему действию.  Вот сижу ломаю голову как исправить это. Еще один момент я пытаюсь эту функцию реализовать в Гугл таблицах.
Вот мой пример формулы:
=ЕСЛИ(РАЗНДАТ(СЕГОДНЯ();E3;"D")>1;РАЗНДАТ(СЕГОДНЯ();E3;"D");ЕСЛИ(РАЗНДАТ(СЕГОДНЯ();E3;"D")=1;"ЗАВТРА";ЕСЛИ(РАЗНДАТ(СЕГОДНЯ();E3;"D")=0;"СЕГОДНЯ !!!";ЕСЛИ(РАЗНДАТ(СЕГОДНЯ();E3;"D")<0;"ПРОШЛО :(";0))))

Прикрепил пример в Excel
Изменено: tkocean - 01.03.2018 14:58:29
 
TKOceaN, добрый день, а файл пример прикрепите что бы понять какая структура и какой формат данных. и в гугл таблицах может отличатся все...
ну можно так...
Код
=IF(TODAY()-E3=0;"СЕГОДНЯ!!!";IF(TODAY()-E3>0;"ПРОШЛО !!!";IF(E3-TODAY()>=2;"через "&E3-TODAY()&" дня(-ей).";"ЗАВТРА!!!")))
Изменено: a.i.mershik - 03.03.2018 14:31:12
Не бойтесь совершенства. Вам его не достичь.
 
Отображаемое имя с нарушением правил ("прыгающие буквы"). Измените логин в своем профиле.
Название темы должно отражать суть задачи. Предложите новое. Модераторы заменят.
Файл-пример ускорит помощь.
 
Цитата
vikttur написал:
Отображаемое имя с нарушением правил ("прыгающие буквы"). Измените логин в своем профиле.Название темы должно отражать суть задачи. Предложите новое. Модераторы заменят.Файл-пример ускорит помощь.
Исправил, что мог. Название темы изменить не получается.
 
Читать нужно внимательнее
Цитата
Предложите новое. Модераторы заменят.
 
Цитата
vikttur написал:
Предложите новое. Модераторы заменят.
Прошу прощения, проглядел.
Функция "РАЗНДАТ" пишет ошибку, если начальная дата позже конечной. Как обойти это ограничение
 
Для случая, когда указанная дата прошла:
1 способ - использовать функцию ЕСЛИОШИБКА
2 способ - условие ЕСЛИ(РАЗНДАТ(СЕГОДНЯ();E3;"D")<0;"ПРОШЛО";0) заменить на условие ЕСЛИ(конечная дата<СЕГОДНЯ();"Прошло";0)
 
tkocean, тут проблема не в разндат тут проблема в логических условиях, не привязывайтесь к функции описывайте САМУ ПРОБЛЕМУ

для модераторов Tема: "Проставить в ячейке статус события исходя из даты в соседней ячейке относительно текущей даты"
Код
=ЕСЛИ(D4=СЕГОДНЯ()+1;"завтра";ЕСЛИ(D4=СЕГОДНЯ();"сегодня";ЕСЛИ(И(D4<СЕГОДНЯ();D4<>0);"закончено";"")))
Лень двигатель прогресса, доказано!!!
 
TKOceaN,
Код
=ЕСЛИ(СЕГОДНЯ()=E3;"СЕГОДНЯ!!!";ЕСЛИ(СЕГОДНЯ()-E3>0;"ПРОШЛО !!!";ЕСЛИ(E3-СЕГОДНЯ()>=2;"через "&E3-СЕГОДНЯ()&" дня(-ей).";"ЗАВТРА!!!")))
Не бойтесь совершенства. Вам его не достичь.
 
Блин точно же. Что-то мой мозг затупил, а тут оказывается вон сколько решений. Спасибо большое всем кто откликнулся.  
 
Цитата
"РАЗНДАТ" пишет ошибку, если начальная дата позже конечной, как обойти это ограничение
сравнить даты перед вычислением разности дат
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
а если реально нужно получить разность между двумя датами то:
Код
=РАЗНДАТ(МАКС(А1:В1);МИН(А1:В1);"D")
и можно не заморачивать раньше написана меньшая или большая из них
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Я что-то пропустил и дата теперь уже не число дней? просто вычесть и взять абсолютное значение не работает? Для  конкретного случая вроде просто дни нужны. ну если там время есть то =int(a1)-int(a2), а если только даты то =a1-a2, и знак учтен хотя в №8 это как раз и есть. от меня вариант.

=CHOOSE(LOOKUP(D4-TODAY();{-500000;0;1;2};{1;2;3;4});"Прошло";"Сегодня";"Завтра";D4-TODAY())

Изменено: БМВ - 03.03.2018 12:38:38
По вопросам из тем форума, личку не читаю.
Страницы: 1
Читают тему
Наверх