Согласно EDATE, вы в основном имеете дело с 12 months before the End Date (B25)
.
Учитывая, что это, кажется, сказать:
Если дата начала более чем за 12 месяцев до даты окончания, то:
(количество времени, что дата начала до за год до даты окончания разделенного на один год) + 1
Else:
Время, в течение которого дата начала до даты окончания делится на один год.
Я действительно не знаю, как Excel обрабатывает даты арифметику или то, что точка этой функции, но это мое псевдо на первый взгляд.
Действительно, это просто проверка состояния, которое я упомянул, а затем компенсировать всю арифметику на год, если условие истинно.
Редактировать
Хорошо, некоторые быстро исследования показывают, что Excel делает дату арифметику чисто как дни, так что потом 12/1/1900 - 1/1/1900 = 335
дней. Помещение времени на любую дату делает его частью дня.
Учитывая, что эта формула Excel, похоже, пытается вычислить разницу в дробном году между двумя датами.
Это грубый кусок кода, который должен обеспечить его:
TimeSpan span = endDate.Subtract(startDate);
double years = span.Days/365.25;
http://office.microsoft.com/en-us/excel-help/edate-HP005209073.aspx эта ссылка будет объяснить, что EDATE находится в Excel – MethodMan
... из которого ясно, что 'EDATE' является' DateTime.AddMonths() '. – GSerg