Роджер отслеживает invoice sizes на листе Excel. Все счета должны быть представлены со сроком оплаты 28-го числа месяца, и Роджер задался вопросом, есть ли способ заставить дату всегда «переходить» к следующему экземпляру 28-го числа.

Самый простой способ форсировать даты вперед — создать формулу, которая будет проверять дату в ячейке, а затем переводить эту дату на следующую желаемую дату, например, 28-е. Следующая формула является хорошей для начала:

=IF(DAY(A1)>28,DATE(YEAR(A1),MONTH(A1)+1,28),DATE(YEAR(A1),MONTH(A1),28))

Эта формула проверяет дату в ячейке A1. Если значение DAY даты больше 28, формула создает и возвращает дату, равную 28-му числу следующего месяца. Если оно меньше или равно 28, возвращается 28-е число текущего месяца.

Однако есть еще более короткий способ визуализации приемлемой формулы — способ полностью избавиться от функции ЕСЛИ:

=DATE(YEAR(A1),MONTH(A1)+(DAY(A1)>28),28)

В качестве года используется текущий год, а день всегда равен 28. Для месяца используется логическое вычисление. Если день больше 28, то (День (A1)> 28) будет ИСТИНА и будет вычисляться как 1, тем самым добавив 1 к текущему месяцу. Если он меньше или равен 28, он будет ЛОЖЬ и вычислен как 0, просто вычисляя текущий месяц.

Если вы не хотите быть «строгим», давая некоторым людям только один день (27 апреля 2012 г. соответствует сроку 28 апреля 2012 г.), вы можете запланировать дать им хотя бы неделю по формуле:

=DATE(YEAR(A1),MONTH(A1)+(DAY(A1)>21),28)

Это даст 28-е число текущего месяца с 1-го по 21-е, но для более поздних дат оно переместится на 28-е число следующего месяца.

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (2410) относится к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и более поздних версий) здесь:

link: / excelribbon-Forcing_Dates_Forward [Forcing Dates Forward].