Расчёт даты «годен до» в Excel: формулы, примеры и нюансы

Почему Excel — лучший инструмент для расчёта сроков годности

Рассчитывать даты истечения срока годности вручную — утомительно и чревато ошибками. Особенно когда речь идёт о сотнях позиций в складском учёте, аптечных препаратах или продуктах питания. Excel автоматизирует этот процесс, сводя риск ошибок к нулю. Достаточно один раз настроить формулы — и программа будет сама определять, когда именно истекает срок хранения для каждой партии товара, документа или лекарственного средства.

Главное преимущество Excel в этом вопросе — гибкость. Вы можете учитывать не только стандартные сроки (например, 12 месяцев), но и динамические условия: разные периоды хранения для летних/зимних партий, изменение сроков после вскрытия упаковки, или даже зависимость от температурного режима. А если данные поступают из внешних источников (сканер штрихкодов, 1С), Excel легко интегрируется с ними через Power Query или макросы.

В этой статье мы разберём:

  • 📅 Базовые формулы для расчёта «годен до» от даты производства
  • 🧮 Как учитывать нестандартные сроки (месяцы, недели, дни)
  • ⚠️ Типичные ошибки и как их избежать (включая проблемы с високосными годами)
  • 📊 Автоматизация с условным форматированием для визуального контроля

Базовая формула: дата производства + срок хранения

Самый простой способ рассчитать дату истечения срока годности — прибавить к дате производства заданное количество дней, месяцев или лет. В Excel для этого есть три ключевые функции:

  • 🗓️ =ДАТАМЕС(дата; месяцы) — добавляет указанное число месяцев
  • 📆 =дата + дни — прибавляет дни (например, =A2+365 для года)
  • 🔢 =ДАТА(ГОД(дата)+годы; МЕСЯЦ(дата); ДЕНЬ(дата)) — добавляет годы

Пример для продукта со сроком хранения 6 месяцев:

=ДАТАМЕС(A2; 6)

Где A2 — ячейка с датой производства. Если срок указан в днях (например, 90), используйте:

=A2+90
⚠️ Внимание: Функция ДАТАМЕС может вернуть ошибку #ЧИСЛО!, если итоговая дата выходит за пределы поддерживаемого Excel диапазона (до 31.12.9999). Для длинных сроков (десятилетия) используйте комбинацию функций ГОД/МЕСЯЦ/ДЕНЬ.

Для наглядности приведём сравнение формул в таблице:

Срок хранения Формула Пример (дата производства 01.01.2026)
1 год =ДАТА(ГОД(A2)+1; МЕСЯЦ(A2); ДЕНЬ(A2)) 01.01.2026
3 месяца =ДАТАМЕС(A2; 3) 01.04.2026
45 дней =A2+45 15.02.2026
2 года и 6 месяцев =ДАТАМЕС(ДАТА(ГОД(A2)+2; МЕСЯЦ(A2); ДЕНЬ(A2)); 6) 01.07.2026
📊 Какой тип сроков годности вам чаще всего приходится рассчитывать?
Продукты питания
Лекарственные препараты
Документы и сертификаты
Технические жидкости (масла, реактивы)
Другое

Учёт нестандартных сроков: недели, кварталы, рабочие дни

Не все сроки годности кратно укладываются в месяцы или годы. Например, молочные продукты могут храниться 3 недели, а вакцины — 2 квартала. Для таких случаев потребуются дополнительные функции:

  • 📅 =A2+недели*7 — для недель (например, =A2+21 для 3 недель)
  • 📈 =ДАТАМЕС(A2; кварталы*3) — для кварталов (1 квартал = 3 месяца)
  • 🏢 =РАБДЕНЬ(A2; дни) — если срок считается только по рабочим дням (например, для документов)

Пример для продукта со сроком хранения 1 квартал (3 месяца) с даты производства:

=ДАТАМЕС(A2; 3)

Если же срок указан в рабочих днях (например, 30 рабочих дней для оформления документа), используйте:

=РАБДЕНЬ(A2; 30)
⚠️ Внимание: Функция РАБДЕНЬ по умолчанию считает субботу и воскресенье выходными. Если у вас другой график (например, 2/2), укажите его в третьем аргументе: =РАБДЕНЬ(A2; 30; [массив_праздников]).
Как учесть праздничные дни в расчётах?

Чтобы исключить праздники из рабочих дней, создайте отдельный диапазон с датами праздников (например, D1:D10) и укажите его в формуле: =РАБДЕНЬ(A2; 30; D1:D10). Excel автоматически пропустит эти даты при подсчёте.

Динамические сроки: зависимость от условий хранения

В реальных условиях срок годности часто зависит от внешних факторов: температуры, влажности, типа упаковки. Например, замороженные продукты при −18°C хранятся дольше, чем при −12°C. В Excel это решается с помощью функции ЕСЛИ или ВЫБОР.

Пример для продукта, срок хранения которого зависит от температуры:

=ЕСЛИ(B2="-18°C"; ДАТАМЕС(A2; 12); ЕСЛИ(B2="-12°C"; ДАТАМЕС(A2; 6); ДАТАМЕС(A2; 3)))

Где:

  • A2 — дата производства,
  • B2 — ячейка с температурой хранения.

Для более сложных условий (например, комбинация температуры и типа упаковки) удобнее использовать ВЫБОР:

=ВЫБОР(И(Б2="-18°C"; С2="вакуум"); 1; И(Б2="-18°C"; С2="обычная"); 2; 3); ДАТАМЕС(A2; ВЫБОР(...)))

Критический нюанс: при динамических сроках всегда проверяйте логику условий на граничных значениях. Например, если температура указана как «−18°C или ниже», формула должна учитывать и −19°C, и −20°C.

Указать все возможные условия хранения|Проверить граничные значения (например, −18.1°C)|Добавить ячейку с комментарием о правилах расчёта|Протестировать формулу на реальных данных-->

Автоматическое оповещение об истечении срока

Excel может не только рассчитывать даты, но и визуально сигнализировать о приближении конца срока годности. Для этого используйте условное форматирование:

  1. Выделите диапазон с датами «годен до».
  2. Перейдите на вкладку Главная → Условное форматирование → Правила выделения ячеек.
  3. Выберите «Даты» и укажите условие (например, «на этой неделе» или «прошлые даты»).
  4. Задайте цвет заполнения (красный для просроченных, жёлтый для истекающих).

Для более гибких правил (например, «за 30 дней до истечения») используйте формулу в условном форматировании:

=И(A2-СЕГОДНЯ()<=30; A2-СЕГОДНЯ()>=0)

Чтобы автоматически сортировать просроченные позиции, добавьте вспомогательный столбец с формулой:

=ЕСЛИ(A2<СЕГОДНЯ(); "Просрочено"; ЕСЛИ(A2-СЕГОДНЯ()<=30; "Скоро истекает"; "В норме"))

Ошибки при расчёте сроков годности и как их избежать

Даже в простых формулах легко допустить ошибку, которая приведёт к неверным датам. Вот наиболее распространённые проблемы:

  • 🗓️ Неучёт високосных лет: Формулы вида =A2+365 дадут сбой в високосный год (366 дней). Используйте =ДАТА(ГОД(A2)+1; МЕСЯЦ(A2); ДЕНЬ(A2)).
  • 📅 Формат ячеек: Если дата в ячейке отображается как число (например, 45341), Excel воспринимает её как количество дней с 1900 года. Проверьте формат: Формат ячеек → Дата.
  • ⚠️ Округление месяцев: ДАТАМЕС может вернуть некорректную дату для последнего дня месяца (например, 31 января + 1 месяц = 28 февраля). Проверяйте результат вручную.

Чтобы минимизировать риски, всегда тестируйте формулы на крайних случаях:

  • Дата производства — последнее число месяца (31.01.2026).
  • Срок хранения — ровно 1 месяц или 1 год.
  • Високосный год (например, 29.02.2026).

⚠️ Внимание: Если вы импортируете даты из внешних систем (1С, сканеров штрихкодов), они могут приходить в текстовом формате (например, «01.01.2026»). Преобразуйте их в дату с помощью =ДАТАЗНАЧ(A2) или =--ЗАМЕНИТЬ(A2; "."; "/").

Продвинутые техники: Power Query и макросы

Для крупных баз данных (тысячи позиций) или регулярных отчётов ручной ввод формул неэффективен. В таких случаях поможет Power Query или VBA-макросы.

Power Query позволяет автоматизировать импорт данных (например, из CSV или ) и добавлять столбец с датой истечения срока. Пример кода для добавления 6 месяцев к дате производства:

// В редакторе Power Query

= Table.AddColumn(#"Предыдущий шаг", "Годен до", each Date.AddMonths([Дата производства], 6), type date)

VBA-макросы удобны для создания пользовательских функций. Например, функция для расчёта срока годности с учётом температуры:

Function СрокГодности(ДатаПроизв As Date, Температура As String) As Date

Select Case Температура

Case "-18°C": СрокГодности = DateAdd("m", 12, ДатаПроизв)

Case "-12°C": СрокГодности = DateAdd("m", 6, ДатаПроизв)

Case Else: СрокГодности = DateAdd("m", 3, ДатаПроизв)

End Select

End Function

Теперь в Excel можно использовать =СрокГодности(A2; B2).

FAQ: Частые вопросы о расчёте сроков годности в Excel

Как рассчитать срок годности, если дата производства указана в формате «неделя 2026 года»?

Используйте функцию =ДАТА(ГОД; МЕСЯЦ; ДЕНЬ) с предварительным преобразованием недели в дату. Например, для 5-й недели 2026 года:

=ДАТА(2026; 1; 1) + (5-1)*7

Это вернёт дату первого дня 5-й недели (29.01.2026). Затем прибавьте срок хранения.

Можно ли автоматически отправлять уведомления о просроченных товарах?

Да, но для этого потребуется связать Excel с Outlook или Telegram-ботом через VBA. Пример кода для отправки письма:

Sub ОтправитьУведомление()

Dim OutApp As Object, OutMail As Object

Set OutApp = CreateObject("Outlook.Application")

Set OutMail = OutApp.CreateItem(0)

With OutMail

.To = "sklad@example.com"

.Subject = "Просроченные товары на " & Date

.Body = "Список просроченных позиций прилагается."

.Attachments.Add ActiveWorkbook.FullName

.Send

End With

End Sub

Запускайте макрос по расписанию (например, ежедневно в 9:00).

Как учитывать срок годности после вскрытия упаковки?

Добавьте дополнительный столбец с датой вскрытия и используйте формулу:

=ЕСЛИ(НЕ(ЕПУСТО(B2)); ДАТАМЕС(B2; 1); ДАТАМЕС(A2; 12))

Где:

  • A2 — дата производства,
  • B2 — дата вскрытия (если не указана, срок считается от даты производства).

Почему формула возвращает ошибку #ЗНАЧ! при расчёте?

Ошибка #ЗНАЧ! возникает, если:

  • Ячейка с датой содержит текст (например, «01.01.2026» вместо даты). Используйте =ДАТАЗНАЧ().
  • Срок хранения указан не числом (например, «шесть месяцев» вместо 6).
  • Формат ячейки не соответствует типу данных (проверьте Формат ячеек).

Можно ли рассчитать срок годности для партии товаров с разными датами производства?

Да, используйте таблицу Excel (Ctrl+T) и столбец с формулой. Например:

Дата производства Срок (месяцев) Годен до
01.01.2026 6 =ДАТАМЕС([@[Дата производства]]; [@[Срок (месяцев)]])
15.02.2026 12 =ДАТАМЕС([@[Дата производства]]; [@[Срок (месяцев)]])

Формула автоматически скопируется на все строки таблицы.