Страницы: 1
RSS
Вычисление разницы в месяцах (с округлением до полного месяца) между двумя датами....
 
Всем доброго времени суток.
Хотел попросить у Вас помощи, в общем суть в следующем:
имеется лист где в ячейках A3 и А4 введены даты (например 01.01.2005 и 31.12.2005), нужно составить формулу, чтобы в ячейке А7 выводилась разница в месяцах между этими датами и если например будут даты типа 01.01.2005 и 13.12.2005, то нужно округлить итог до 12 месяцев, а если в ячейке, где нужно вводить дату ничего не введено или же введена дата в одном из ячеек, то итог равен нулю) Буду рад помощи) Спасибо  
Изменено: buckingfullshit - 21.02.2020 21:03:10
 
Смотрите здесь
Изменено: Андрей_26 - 21.02.2020 21:11:25
 
Наверное как-то так:
Код
rus =ЕСЛИ(ИЛИ(A3="";A4="");0;РАЗНДАТ(A3;A4+20;"m"))
Код
eng =IF(OR(A3="",A4=""),0,DATEDIF(A3,A4+20,"m"))
 
Спасибо) Кстати, все отлично и подходит, но есть небольшой вопросик, если ввести даты 01.01.2005 по 01.12.2005 итог будет 11 месяцев, а 12 будет будет, если начать диапазон от 01.01.2005 по 12.12.2005. Как я понял, это зависит от числа "...+20" в формуле, которая доведет 12 до 1 числа след. месяца. Так вот, можно ли как-нибудь "эталонное" значение, чтобы не было такого и диапазон от 01.01.2005 по 01.01.2005 было 12 месяцев с округлением?)

т.е. проще говоря,если диапазон заканчивается на любом дне месяца, то этот месяц должен засчитываться в итог)
Изменено: buckingfullshit - 22.02.2020 22:03:35
 
buckingfullshit, вернитесь в своё сообщение и удалите то, что Вы ошибочно считаете цитатой.
 
Цитата
buckingfullshit написал:
проще говоря,если диапазон заканчивается на любом дне месяца, то этот месяц должен засчитываться в итог)
Может так?
 
memo,Спасибо Вам большое за помощь, это оно)
И еще, небольшая к Вам просьба, так сказать на всякий случай, не могли бы Вы сделать так, ну или подсказать как сделать, чтобы когда вводил промежуток например 15.01.2010 по 15.12.2010, засчитывались все 12 месяцев?)
Ну это так, просто, а так, все должно работать так, как Вы сделали, т.е. 15.01.2010 по 15.01.2010 это 11 мес. так как отсчет идет с 1 числа след. месяца :D  
 
между 29 февраля 2020 года и 1 марта 2020 года сколько месяцев?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
А сколько надо? Заказчик всегда прав.

buckingfullshit,
Код
=МЕСЯЦ("15.12.2020")-МЕСЯЦ("15.01.2020")+1
 
Цитата
esheg написал:
Заказчик всегда прав
не обсуждается
но чтобы решить задачу заказчика, нужно понимать условия задачи заказчика
пока условия не обьяснены, решение можно только угадывать  или решать задачу так, как вы ее поняли, т.е. решать не задачу заказчика, а свою задачу.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
как сделать, чтобы когда вводил промежуток например 15.01.2010 по 15.12.2010, засчитывались все 12 месяцев?
Можно попробовать так:
Код
RUS = ЕСЛИ(ГОД(A4)=ГОД(A3);МЕСЯЦ(A4)-МЕСЯЦ(A3)+1;МЕСЯЦ(A4)+1+12*(ГОД(A4)-ГОД(A3))-МЕСЯЦ(A3))
Код
eng =IF(YEAR(A4)=YEAR(A3),MONTH(A4)-MONTH(A3)+1,MONTH(A4)+1+12*(YEAR(A4)-YEAR(A3))-MONTH(A3))
 
memo,
проверка не нужна. Достаточно
Код
=МЕСЯЦ(A4)-МЕСЯЦ(A3)+1+12*(ГОД(A4)-ГОД(A3))
Если года в датах равны, то в скобках после 12* будет 0.
Если уж проверять, то
Код
A4>A3
чтобы в этих скобках отрицательное число не явилось. Типа "защиты от дурака".
Изменено: esheg - 22.02.2020 15:19:34
Страницы: 1
Наверх