Micorsoft Excel 2010, если формула для расчета между 2 датами

0

У меня есть два столбца один для даты начала и один для даты окончания. Я пытаюсь автоматический расчет месяцев между датами. Однако, если дата начала 15-го числа или после, он считается следующим месяцем (например, 15.01.16 будет считаться февралем).

Я думал, если формула, если дата начала дней 1:14, чем

IF (D6 <14, (год (e6) лет (d6)) * 12 + месяц (e6) -месяц (d6), (год (e6) лет (d6)) * 12 + месяц (e6) -месяц (d6): +1). но я не могу заставить его работать.

введите описание изображения здесь

Любые другие предложения?

user604740
источник
Пожалуйста, поделитесь фактической формулой, она поможет нам увидеть, что происходит (неправильно). Пожалуйста, измените ваш вопрос , не публикуйте формулу в качестве комментария :) Ваш заголовок о MS Office, но я предполагаю, что это опечатка и должна быть MS Excel 2010? Я сделал правку, откатись, если тебе не нравится
Дейв
Решение, вероятно, аналогично = IF (A1> B1, A1-B1, B1-A1), при условии, что у A1 и B1 есть даты начала и окончания
Дейв

Ответы:

2

Вы можете использовать DATEDIFфункцию внутри оператора IF, чтобы сделать это.

В F6использовании IFличных данных , чтобы проверить , если « дата начала 15 - ого или после », результат которого будет изменять DATEDIFрасчет.

=IF(DAY(D6)>=15, DATEDIF(D6,E6, "m")-1, DATEDIF(D6,E6, "m"))

Это проверяет, если Дата начала, чтобы увидеть, если день больше 15. Если это так, он использует DATEDIFфункцию для расчета месяцев, минус 1 месяц.

введите описание изображения здесь

Если день не больше 15, он использует стандартный DATEDIFрасчет.

введите описание изображения здесь

Примечание: мои изображения используют разные ячейки.

CharlieRB
источник
не знал об этом. Похоже, это не обнаруживается и не задокументировано. ( forum.chandoo.org/threads/… )
JollyMort
1

Есть очень простой способ:

=(E6-D6)/30.4375

Результат скажет вам, сколько месяцев прошло между двумя датами. Число, на которое он делится, представляет собой среднее число дней в году за 4 года (включая 1 високосный год).

Это работает из-за того, как Excel хранит даты. На самом деле он хранится как количество дней, прошедших с 01.01.1900, поэтому работают арифметические операции.

Обратите внимание, что если вы установите тип чисел так, чтобы он не отображал десятичные дроби, он округляет 16 дней до полного месяца. Если вы хотите избежать этого, просто округлите его, и тогда результатом будет количество прошедших полных месяцев:

=INT((E6-D6)/30.4375)
JollyMort
источник