Ваша формула складена правильно. Несподіваний результат зумовлений тим, як 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-bet between-the-1900-and-the-1904-date-system-in- excel
Серійний номер - це простий підрахунок кількості дат з 1 січня 1900 року, включаючи фіктивну дату 29 лютого 1900 року. Функція DAY, однак, може додатково розглядатися як функція перетворення типу даних. Він приймає серійний номер дати як вхід і повертає ціле число як вихід. У вашому прикладі, якщо ми вважаємо, що 18 - це дата серіалу, і рахувати 18 днів вперед з 1 січня 1900 року, ми закінчуємо 18 січня 1900 року.
Просте виправлення на передньому кінці - це змінити формат комірки на щось інше, наприклад, номер або загальний . Це дозволить Excel відобразити його як ціле число, а не намагатися інтерпретувати його як серійну дату. На задньому кінці все добре. Цілий результат можна використовувати в будь-якій іншій формулі і буде вести себе правильно.
Як приклад, скажімо, що ми хотіли створити умовну формулу, яка б сказала нам, чи минуло 15 числа в поточному місяці. Це можна зробити за допомогою:
=IF(DAY(TODAY())>15,"The 15th has passed","It is not yet the 15th")
Бути набагато складніше досягти того ж результату, використовуючи послідовну дату, тому функція DAY, що повертає ціле число, виявляється більш корисною в контексті загальних випадків використання Excel.