Ваша формула составлена правильно. Неожиданный результат связан с тем, как различные типы данных хранятся в 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.