Мастерство работы с датами в Excel: от дня недели до сложных интервалов
Чтобы определить день недели, используйте функцию =ТЕКСТ(дата; "dddd") для полного названия или =ДЕНЬНЕД(дата; 2) для номера (где понедельник = 1). Для расчета разницы между датами примените простое вычитание (=B2-A2) или функцию =РАЗНДАТ для точных периодов, а количество рабочих дней без выходных и праздников посчитает формула =ЧИСТРАБДНИ. Эти инструменты позволяют автоматизировать планирование проектов, расчет сроков оплаты и формирование графиков отпусков.
Главное правило: В Excel даты хранятся как порядковые номера (целые числа), где 1 — это 1 января 1900 года. Время — это дробная часть числа. Это значит, что с датами можно выполнять обычные математические операции: сложение, вычитание и сравнение.
Определение дня недели и работа с текстовыми форматами
Часто требуется не просто увидеть дату, а понять, на какой день недели она выпадает, чтобы отфильтровать данные или подсветить выходные.
Числовой и текстовый вывод
Самый быстрый способ получить название дня — функция ТЕКСТ. Она преобразует дату в читаемый формат:
=ТЕКСТ(A2; "dddd")— вернет полное название (например, «пятница»).=ТЕКСТ(A2; "ddd")— вернет сокращенное название («пт»).
Если вам нужно числовое значение дня для условий (например, в функции ЕСЛИ), используйте ДЕНЬНЕД:
=ДЕНЬНЕД(A2; 2)— возвращает число от 1 (понедельник) до 7 (воскресенье). Аргумент2критически важен для российской практики, так как стандартный режим начинает неделю с воскресенья.
Практическое применение: маркировка выходных
Вы можете автоматически помечать строки как «Выходной» или «Рабочий»:
=ЕСЛИ(ДЕНЬНЕД(A2; 2)>5; "Выходной"; "Рабочий")
Эта формула проверит дату в ячейке A2 и вернет соответствующий статус.
Лайфхак для условного форматирования:
Не обязательно создавать отдельный столбец с днем недели. В правилах условного форматирования выберите «Использовать формулу» и вставьте =ДЕНЬНЕД($A2; 2)>5. Это автоматически закрасит все выходные дни в выбранном диапазоне красным цветом.
Расчет интервалов: дни, месяцы и рабочие периоды
Вычисление разницы между двумя датами — одна из самых частых задач. Подход зависит от того, нужны ли вам календарные дни или только рабочие.
Календарные дни
Самый простой метод — обычное вычитание:
=Конец - Начало (например, =B2-A2).
Убедитесь, что ячейка с результатом имеет формат «Общий» или «Числовой», иначе Excel может попытаться отформатировать результат как дату.
Для более сложных периодов (годы, месяцы, дни одновременно) используйте скрытую, но мощную функцию РАЗНДАТ (DATEDIF):
=РАЗНДАТ(Начало; Конец; "d")— полные дни.=РАЗНДАТ(Начало; Конец; "m")— полные месяцы.=РАЗНДАТ(Начало; Конец; "y")— полные годы.- Комбинированный вывод стажа:
=РАЗНДАТ(A2; B2; "y") & " г. " & РАЗНДАТ(A2; B2; "ym") & " мес. " & РАЗНДАТ(A2; B2; "md") & " дн."
Рабочие дни (исключая выходные и праздники)
Для бизнес-планирования календарные дни часто не подходят. Используйте функцию ЧИСТРАБДНИ (NETWORKDAYS):
=ЧИСТРАБДНИ(Начало; Конец; [Праздники])
Функция автоматически исключает субботы и воскресенья. Третий аргумент необязателен, но крайне полезен: укажите диапазон ячеек с датами государственных праздников, чтобы получить максимально точный срок выполнения задачи.
| Задача | Формула | Пример результата |
|---|---|---|
| Разница в днях | =B2-A2 | 45 |
| Полных месяцев между датами | =РАЗНДАТ(A2;B2;"m") | 1 |
| Рабочих дней (без праздников) | =ЧИСТРАБДНИ(A2;B2) | 32 |
| Рабочих дней (с учетом праздников в H2:H10) | =ЧИСТРАБДНИ(A2;B2;H2:H10) | 30 |
Манипуляции с датами месяца: начало, конец и сдвиги
При формировании отчетов часто требуется привести дату к началу или концу периода, независимо от того, какое число указано исходно.
Первый и последний день месяца
- Первый день: Используйте функцию ДАТА, обнуляя день.
=ДАТА(ГОД(A2); МЕСЯЦ(A2); 1) - Последний день: Функция КОНМЕСЯЦА (EOMONTH) делает это в одно действие.
=КОНМЕСЯЦА(A2; 0)— вернет последний день текущего месяца даты в A2.=КОНМЕСЯЦА(A2; 1)— вернет последний день следующего месяца.
Сдвиг дат во времени
Для добавления месяцев или лет не нужно вручную считать дни. Функция ДАТАМЕСЯЦ (EDATE) идеально подходит для этого:
=ДАТАМЕСЯЦ(A2; 3)— дата через 3 месяца.=ДАТАМЕСЯЦ(A2; -1)— дата месяц назад. Эта функция корректно обрабатывает високосные годы и разное количество дней в месяцах (например, сдвиг с 31 января на февраль даст 28 или 29 февраля).
Осторожно с текстовыми датами!
Если формулы возвращают ошибки #ЗНАЧ!, проверьте формат исходных данных. Часто даты импортируются как текст (выровнены по левому краю). Преобразуйте их через меню «Данные» → «Текст по столбцам» → «Дата», прежде чем применять формулы.
Частые ошибки при работе с датами
- Неверный старт недели. Использование
ДЕНЬНЕДбез второго аргумента приводит к тому, что воскресенье считается первым днем (1), а понедельник — вторым (2). Всегда используйте;2для стандарта РФ. - Игнорирование времени. Если в ячейке содержится дата и время (например,
10.04.2026 15:30), то при вычитании11.04.2026 09:00результат будет не 1 день, а ~0.73. Для получения целых дней используйте функциюЦЕЛОЕ:=ЦЕЛОЕ(B2)-ЦЕЛОЕ(A2). - Отрицательный результат. Функции
РАЗНДАТиЧИСТРАБДНИтребуют, чтобы дата начала была меньше даты окончания. Если порядок может нарушаться, оберните формулу вABS(модуль) или используйтеЕСЛИдля проверки.
FAQ
Как узнать номер недели в году?
Используйте функцию =НОМНЕДЕЛИ(A2; 21). Аргумент 21 соответствует стандарту ISO 8601, принятому в России (неделя начинается с понедельника).
Можно ли посчитать возраст человека в годах?
Да, комбинация функций даст точный возраст на текущую дату: =РАЗНДАТ(Дата_рождения; СЕГОДНЯ(); "y").
Как добавить к дате ровно один рабочий день?
Используйте функцию =РАБДЕНЬ(Дата; 1). Она сдвинет дату на следующий день, пропуская выходные. Если пятница, то результатом будет понедельник.