Роджер отслеживает 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, то (Day (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.

Этот совет (11603) применим к Microsoft Excel 2007, 2010, 2013 и 2016.

Вы можете найти версию этого совета для более старого интерфейса меню Excel здесь: link: / excel-Forcing_Dates_Forward [Forcing Dates Forward].