Ваша формула составлена правильно. Неожиданный результат связан с тем, как различные типы данных хранятся в Excel.
Существуют две аналогичные системы, которые Excel использует для хранения дат на основе настройки уровня рабочей книги.
Система дат 1900 года
В системе дат 1900 первый поддерживаемый день - 1 января 1900 года. Когда вы вводите дату, дата преобразуется в серийный номер, который представляет количество прошедших дней с 1 января 1900 года. Например, если вы введите 5 июля 1998 года, Excel преобразует дату в серийный номер 35981.
По умолчанию Microsoft Excel для Windows использует систему дат 1900 года. Система дат 1900 года обеспечивает лучшую совместимость между Excel и другими программами для работы с электронными таблицами, такими как Lotus 1-2-3, которые предназначены для работы под MS-DOS или Microsoft Windows.
Система дат 1904 года
В системе дат 1904 первый поддерживаемый день - 1 января 1904 года. Когда вы вводите дату, дата преобразуется в серийный номер, представляющий количество прошедших дней с 1 января 1904 года. Например, если вы введите 5 июля 1998 года, Excel преобразует дату в серийный номер 34519.
По умолчанию Microsoft Excel для Macintosh использует систему дат 1904 года. Из-за конструкции ранних компьютеров Macintosh даты до 1 января 1904 года не поддерживались. Этот дизайн был призван предотвратить проблемы, связанные с тем, что 1900 год не был високосным. Если вы переключитесь на систему дат 1900 года, Excel для Macintosh поддерживает даты уже с 1 января 1900 года.
Эти выдержки были взяты из: https://support.microsoft.com/en-us/help/214330/differences-between-the-1900-and-the-1904-date-system-in-excel
Серийный номер представляет собой простой текущий счетчик числа дат с 1 января 1900 года, включая фиктивную дату 29 февраля 1900 года. Однако функцию DAY можно дополнительно рассматривать как функцию преобразования типов данных. Он принимает серийный номер даты в качестве входных данных и возвращает целое число в качестве выходных данных. В вашем примере, если мы думаем о 18 как о представлении серийных дат и считаем 18 дней вперед с 1 января 1900 года, мы получим 18 января 1900 года.
Простое исправление в интерфейсе - изменить формат ячейки на что-то другое, например, Number или General . Это скажет Excel показать его вам как целое число, а не пытаться интерпретировать его как серию дат. На заднем плане все хорошо, чтобы пойти. Целочисленный результат может использоваться в любой другой формуле и будет вести себя корректно.
В качестве примера, скажем, мы хотели создать условную формулу, которая сообщит нам, прошло ли 15-е число в текущем месяце. Мы можем сделать это используя:
=IF(DAY(TODAY())>15,"The 15th has passed","It is not yet the 15th")
Было бы гораздо труднее достичь того же результата с использованием серийного номера, поэтому функция DAY, возвращающая целое число, оказывается более полезной в контексте общих случаев использования Excel.