Я буду интерпретировать ваш вопрос как требующий ответа в полных годах, полных календарных месяцах и любых оставшихся днях.Это должно быть довольно просто, за исключением случаев, когда месяц, содержащий дату начала, имеет больше дней, чем месяц, предшествующий месяцу, содержащему дату окончания *.
Пример:
Start Date End Date Result
28/1/19 1/3/19 1 month and 1 day
29/1/19 1/3/19 1 month and 1 day
30/1/19 1/3/19 1 month and 1 day
31/1/19 1/3/19 1 month and 1 day
Если вы принимаете этотогда должны работать следующие формулы:
Год
=datedif(A1,B1,"Y")
Месяц
=mod(datedif(A1,B1,"m"),12)
День
=IF(DAY(B1)>=DAY(A1),DAY(B1)-DAY(A1),DAY(EOMONTH(B1,-1))+DAY(B1)-MIN(DAY(A1),DAY(EOMONTH(B1,-1))))
РЕДАКТИРОВАТЬ
* Проверили это на на этом сайте и обнаружили, что он делает то же самое предположение - вы получаете ту же продолжительность (1 месяц и один день) с 28 января 19 года по 3 января 19 года с 31 января 19 января 193 года, хотя общее количество дней (32 или 29) отличается.
Возможным обходным решением является использование дней, оставшихся в начальном месяце
=IF(DAY(B1)>=DAY(A1),DAY(B1)-DAY(A1),DAY(EOMONTH(A1,0))-DAY(A1)+DAY(B1))
, что, по-видимому, согласуется с этим веб-сайтом
Вы также можете использовать аргумент MD для Datedif:
=datedif(A1,B1,"MD")
Но как в Google Sheets, так и в Excel это может привести к отрицательному числу, как указано в документации Excel :
The "MD" argument may result in a negative number, a zero, or an inaccurate result. If you are trying to calculate the remaining days after the last completed month...