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

Вход

Регистрация

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

 

= Мир MS Excel/Операция с датами и определение будущей даты. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Операция с датами и определение будущей даты. (Формулы/Formulas)
Операция с датами и определение будущей даты.
Sebastian_Pereiro Дата: Пятница, 14.11.2014, 11:42 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 60% ±

Excel 2013
Возникла проблема следующего характера

Есть некая поддержка оборудования. Поддержка дается на 12 месяцев. Необходимо получить число, которое отображает сколько месяцев прошло с момента даты окончания поддержки + 12 месяцев вперед.

1. Есть следующая формула
Код
=ROUNDUP(DATEDIF(F4;TODAY();"m")/12;0)*12


где F4 = фиксированная дата например 01.09.2013 дата окончание поддержки

Today()- текущая дата например 14.11.2014

Получаем
Код
=DATEDIF(F4;TODAY();"m")
разницу между текущей даты и фиксированной даты 14 месяцев.
Код
=ROUNDUP(DATEDIF(F4;TODAY();"m")/12;0)
полученные 14 месяцев мы делим на 12 месяцев и округляем в большую часть получив 2 года
Код
=ROUNDUP(DATEDIF(F4;TODAY();"m")/12;0)*12)
2 года умножаем на 12 получаем 24 месяца то есть 2 года.

То есть 12 месяцев прошло с момента окончания поддержки + 12 месяцев вперед.

Клиенту необходимо выкупить год просрочки + год вперед.

Теперь проблема!

Если дата окончание поддержки 09.11.2014 или 25.10.2015 он выдает число 0 или #NUM!.

Все верно так как в первом случае месяц у нас месяц совпадает и он говорит, что все норм покупать ничего не надо.

Во втором случае он сравнивает с будущем числом фактически происходит деление на 0.

Есть ли возможность дописать существующую формулу чтобы в первом и во втором случае он присваивал 12 месяцев.
[moder]Файл с примером приложите[/moder]
К сообщению приложен файл: 2944064.xlsm (8.0 Kb)
 
Ответить
СообщениеВозникла проблема следующего характера

Есть некая поддержка оборудования. Поддержка дается на 12 месяцев. Необходимо получить число, которое отображает сколько месяцев прошло с момента даты окончания поддержки + 12 месяцев вперед.

1. Есть следующая формула
Код
=ROUNDUP(DATEDIF(F4;TODAY();"m")/12;0)*12


где F4 = фиксированная дата например 01.09.2013 дата окончание поддержки

Today()- текущая дата например 14.11.2014

Получаем
Код
=DATEDIF(F4;TODAY();"m")
разницу между текущей даты и фиксированной даты 14 месяцев.
Код
=ROUNDUP(DATEDIF(F4;TODAY();"m")/12;0)
полученные 14 месяцев мы делим на 12 месяцев и округляем в большую часть получив 2 года
Код
=ROUNDUP(DATEDIF(F4;TODAY();"m")/12;0)*12)
2 года умножаем на 12 получаем 24 месяца то есть 2 года.

То есть 12 месяцев прошло с момента окончания поддержки + 12 месяцев вперед.

Клиенту необходимо выкупить год просрочки + год вперед.

Теперь проблема!

Если дата окончание поддержки 09.11.2014 или 25.10.2015 он выдает число 0 или #NUM!.

Все верно так как в первом случае месяц у нас месяц совпадает и он говорит, что все норм покупать ничего не надо.

Во втором случае он сравнивает с будущем числом фактически происходит деление на 0.

Есть ли возможность дописать существующую формулу чтобы в первом и во втором случае он присваивал 12 месяцев.
[moder]Файл с примером приложите[/moder]

Автор - Sebastian_Pereiro
Дата добавления - 14.11.2014 в 11:42
Russel Дата: Пятница, 14.11.2014, 13:25 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1394
Репутация: 320 ±
Замечаний: 0% ±

Excel 2010
Если правильно понял
Код
=ЕСЛИ(КОНМЕСЯЦА(A14;0)>=КОНМЕСЯЦА(СЕГОДНЯ();0);12;ОКРУГЛВВЕРХ(РАЗНДАТ(Sheet1!A14;СЕГОДНЯ();"m")/12;0)*12)


QIWI 9173973973
 
Ответить
СообщениеЕсли правильно понял
Код
=ЕСЛИ(КОНМЕСЯЦА(A14;0)>=КОНМЕСЯЦА(СЕГОДНЯ();0);12;ОКРУГЛВВЕРХ(РАЗНДАТ(Sheet1!A14;СЕГОДНЯ();"m")/12;0)*12)

Автор - Russel
Дата добавления - 14.11.2014 в 13:25
Russel Дата: Пятница, 14.11.2014, 13:53 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1394
Репутация: 320 ±
Замечаний: 0% ±

Excel 2010
А лучше так:
Код
=ROUNDUP(DATEDIF(MIN(F4;TODAY()-31);TODAY();"m")/12;0)*12


QIWI 9173973973
 
Ответить
СообщениеА лучше так:
Код
=ROUNDUP(DATEDIF(MIN(F4;TODAY()-31);TODAY();"m")/12;0)*12

Автор - Russel
Дата добавления - 14.11.2014 в 13:53
Sebastian_Pereiro Дата: Пятница, 14.11.2014, 15:57 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 60% ±

Excel 2013
Все работает!!! Спасибо большое.

Не могли бы Вы объяснить мне вот эту строчку
Код
=MIN(F4,TODAY()-31),TODAY()
?
 
Ответить
СообщениеВсе работает!!! Спасибо большое.

Не могли бы Вы объяснить мне вот эту строчку
Код
=MIN(F4,TODAY()-31),TODAY()
?

Автор - Sebastian_Pereiro
Дата добавления - 14.11.2014 в 15:57
Russel Дата: Пятница, 14.11.2014, 17:17 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1394
Репутация: 320 ±
Замечаний: 0% ±

Excel 2010
Sebastian_Pereiro, часть строки =МИН(F4;СЕГОДНЯ()-31) сравнивает дату в Ф4 с датой месяц назад и берет минимальную из них. Это нужно, чтобы в РАЗНДАТ(МИН(F4;СЕГОДНЯ()-31);СЕГОДНЯ();"m") получилось как минимум 1.


QIWI 9173973973
 
Ответить
СообщениеSebastian_Pereiro, часть строки =МИН(F4;СЕГОДНЯ()-31) сравнивает дату в Ф4 с датой месяц назад и берет минимальную из них. Это нужно, чтобы в РАЗНДАТ(МИН(F4;СЕГОДНЯ()-31);СЕГОДНЯ();"m") получилось как минимум 1.

Автор - Russel
Дата добавления - 14.11.2014 в 17:17
Sebastian_Pereiro Дата: Понедельник, 17.11.2014, 11:32 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 60% ±

Excel 2013
Russel, Огромное спасибо!!!
 
Ответить
СообщениеRussel, Огромное спасибо!!!

Автор - Sebastian_Pereiro
Дата добавления - 17.11.2014 в 11:32
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Операция с датами и определение будущей даты. (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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