Гид по технологиям

Как посчитать количество дней между датами в Google Sheets

6 min read Google Таблицы Обновлено 24 Dec 2025
Подсчёт дней между датами в Google Sheets
Подсчёт дней между датами в Google Sheets

Интерфейс Google Sheets с таблицей и формулами

Быстрые ссылки

  • Подсчёт всех дней между двумя датами
  • Подсчёт рабочих дней между датами

Коротко о терминах

  • Дата: значение, воспринимаемое Google Sheets как календарная точка во времени.
  • Рабочие дни: здесь — рабочие дни без субботы и воскресенья; праздники можно дополнительно исключить.

Подсчёт всех дней между двумя датами

Если требуется просто узнать разницу в календарных днях, используйте функции DAYS или DATEDIF. Они учитывают високосные года и возвращают разницу в днях (полных суток) между двумя датами.

Использование DAYS

Функция DAYS удобна и проста. Она возвращает количество дней между двумя датами. Формат записи — DAYS(датаконца, датаначала).

Вставьте в любую пустую ячейку формулу, например:

=DAYS("01/01/2019","01/01/2018")

Замените строки дат на свои. Обратите внимание: порядок аргументов важен — сначала дата конца, затем дата начала. Если поставить в обратном порядке, функция вернёт отрицательное число.

Пример выше показывает разницу 365 дней между 01/01/2018 и 01/01/2019 (в примере использован формат DD/MM/YYYY). В локалях формата даты, отличных от приведённого, используйте формат даты по умолчанию для вашей локали. В российских настройках обычно применяется формат DD.MM.YYYY.

Чтобы сменить локаль листа: Файл > Настройки таблицы и измените значение «Локаль» на нужную.

Вы также можете использовать ссылки на ячейки вместо явных дат:

=DAYS(A1, A11)

Где A1 и A11 — ячейки с датами.

В примере выше разница 29 дней получена из ячеек E6 и F10.

Использование DATEDIF

DATEDIF возвращает числа в днях, месяцах или годах между двумя датами. Формат записи — DATEDIF(датаначала, датаконца, единица).

Отличие от DAYS: DATEDIF требует сначала дату начала, затем дату конца.

Пример с явными датами:

=DATEDIF("01/01/2018","01/01/2019","D")

“D” означает дни. Другие опции: “M” — месяцы, “Y” — годы.

Скриншот функции DATEDIF, считающей дни между двумя датами

Пример с ссылками на ячейки:

=DATEDIF(A7,G7,"D")

Скриншот использования DATEDIF с ссылками на ячейки

Важно: DATEDIF иногда не отображает подсказки в редакторе формул, но работает корректно.

Подсчёт рабочих дней между двумя датами

Если нужно учитывать только рабочие дни (без субботы и воскресенья) и при необходимости исключать праздники, используйте NETWORKDAYS.

NETWORKDAYS по умолчанию считает рабочими днями дни с понедельника по пятницу. Формат записи — NETWORKDAYS(датаначала, датаконца, [список_праздников]).

Пример с функцией DATE, которая создаёт дату из года, месяца и дня (год, месяц, день):

=NETWORKDAYS(DATE(2018,01,01),DATE(2019,01,01))

Использование DATE удобно, когда хотите явно задать части даты и избежать двусмысленности формата.

Иллюстрация использования NETWORKDAYS для расчёта рабочих дней между датами

Вы также можете использовать ссылки на ячейки:

=NETWORKDAYS(A6,B6)

Если нужно исключить конкретные даты (праздники), добавьте список дат в третьем аргументе как массив или диапазон ячеек. Пример с диапазоном:

=NETWORKDAYS(A6,B6,{B6:D6}

Где B6:D6 — набор ячеек с праздниками.

Пример с явными датами через DATE:

=NETWORKDAYS(E11,F13,{DATE(2019,11,18),DATE(2019,11,19)})

В примере выше между двумя датами по стандартному расчёту было 11 рабочих дней (в ячейке B2). При исключении одного или нескольких праздников итог уменьшился на 2–3 дня в ячейках B3 и B4.

Важно: NETWORKDAYS всегда исключает субботу и воскресенье. Если в вашем графике другие выходные (например, пятница и суббота), используйте NETWORKDAYS.INTL, где можно задать шаблон выходных.

Дополнительные приёмы и рекомендации

Как избежать ошибок с форматом дат

  • Вводите даты через DATE(год, месяц, день), чтобы избежать ошибок локали.
  • Локаль листа задаёт формат ввода и отображения дат. В России обычно формат DD.MM.YYYY.
  • Если Google Sheets не распознаёт строку как дату, используйте VALUE или DATEVALUE для преобразования.

NETWORKDAYS.INTL для нестандартных выходных

Если в вашей компании выходными являются пятница и суббота или только воскресенье, используйте NETWORKDAYS.INTL:

=NETWORKDAYS.INTL(A1,B1,"0000011")

Где строка шаблона определяет выходные: 1 — выходной, 0 — рабочий; первая цифра — понедельник.

Проверка диапазона праздников

  • Убедитесь, что диапазон праздников содержит корректные даты (тип ячеек — «Дата»).
  • Пустые ячейки в списке праздников игнорируются.

Ментальные модели и heuristics

  • Если нужен «чистый» календарный интервал — используйте DAYS или DATEDIF.
  • Если нужны рабочие дни по стандартному календарю — NETWORKDAYS.
  • Если выходные отличаются — NETWORKDAYS.INTL.
  • Для устойчивых отчётов всегда храните список праздников отдельно и ссылкой добавляйте в формулы.

Когда эти формулы не подходят

  • Если нужно учитывать частичные рабочие дни (смены, часы) — помещайте расчёт времени в отдельные столбцы и используйте разницу дат/времён с учётом формата времени.
  • Для расчёта рабочих часов с учётом смен и перерывов требуются скрипты (Apps Script) или более детализированные формулы.

Шпаргалка по формулам (быстрый обзор)

  • DAYS(датаконца, датаначала) — возвращает целое число дней.
  • DATEDIF(датаначала, датаконца, “D”) — дни; “M” — месяцы; “Y” — годы.
  • NETWORKDAYS(датаначала, датаконца, [праздники]) — рабочие дни, выходные: суббота/воскресенье.
  • NETWORKDAYS.INTL(датаначала, датаконца, [выходные], [праздники]) — настраиваемые выходные.
  • DATE(год, месяц, день) — создаёт дату из чисел.

Примеры — на практике

  1. Количество дней между 10 февраля 2020 и 20 марта 2020 (дни):
=DAYS("03/20/2020","02/10/2020")
  1. Количество месяцев между 01.01.2019 и 01.06.2019:
=DATEDIF("01/01/2019","01/06/2019","M")
  1. Рабочие дни между 01.07.2020 и 31.07.2020, исключая два праздника в ячейках H1:H2:
=NETWORKDAYS(DATE(2020,7,1),DATE(2020,7,31),H1:H2)

Чек-листы по ролям

Разработчик/аналитик:

  • Проверить локаль листа.
  • Хранить праздники в отдельном диапазоне.
  • Использовать DATE() при автогенерации дат.

Бизнес-аналитик:

  • Уточнить, что считать «рабочими днями».
  • Предоставить список официальных праздников.
  • Проверить временные зоны и смены, если важны.

Менеджер проекта:

  • Убедиться, что отчёты используют единый лист с праздниками.
  • Попросить валидацию на тестовых датах (см. тесты ниже).

Критерии приёмки

  • Формулы возвращают ожидаемые значения на контрольных датах (включая високосный год).
  • При добавлении праздников итог изменяется корректно.
  • В репорт попадают только рабочие дни, если это было требованием.
  • Формулы читаемы и документированы в примечаниях к листу.

Тесты и сценарии приёмки

  1. Тест: период 2019-01-01 — 2019-01-31
  • Ожидание: DAYS = 30; NETWORKDAYS = количество рабочих дней в январе без праздников.
  1. Тест: период пересекает 29 февраля високосного года (например, 2019–2020)
  • Ожидание: учитывается дополнительный день.
  1. Тест: список праздников содержит даты вне периода
  • Ожидание: лишние даты игнорируются.
  1. Тест: нестандартные выходные через NETWORKDAYS.INTL
  • Ожидание: выходные учитываются согласно шаблону.

Мини-методология внедрения в отчётность

  1. Создать отдельный лист Holidays и заполнить официальные даты.
  2. На основном листе ссылаться на диапазон Holidays в NETWORKDAYS.
  3. Автоматически проверять локаль и приводить даты через DATE().
  4. Документировать формулы рядом с ячейками (комментарий ячейки).

Дерево решений (быстрое)

flowchart TD
  A[Нужен подсчёт дней между датами?] --> B{Только календарные дни}
  B -- Да --> C[Использовать DAYS или DATEDIF]
  B -- Нет --> D{Требуются только рабочие дни}
  D -- Да --> E{Выходные: суб+вс?}
  E -- Да --> F[NETWORKDAYS]
  E -- Нет --> G[NETWORKDAYS.INTL]
  D -- Нет --> H[Рассмотреть расчёт рабочих часов или скрипты]

Частые ошибки и как их избежать

  • Неправильный порядок аргументов в DAYS приводит к отрицательным значениям.
  • DATEDIF требует сначала дату начала, затем дату конца.
  • Строковые даты зависят от локали; используйте DATE() для стабильности.

Важно: всегда проверяйте результат на нескольких контрольных примерах, включая високосные годы.

Короткое резюме

  • Для всех календарных дней используйте DAYS или DATEDIF.
  • Для рабочих дней используйте NETWORKDAYS или NETWORKDAYS.INTL (для кастомных выходных).
  • Храните список праздников отдельно и ссылкой подключайте к формуле.
  • Для сложных сценариев (смены, часы) используйте Apps Script или детальные таблицы с временными метками.

Итог: выбор функции зависит от того, учитываете ли вы выходные и праздники. Простые задачи решаются одной строкой формулы; для корпоративной отчётности лучше вынести праздники в отдельный лист и стандартизировать ввод дат.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Кадр за плечом: советы по съёмке OTS
Видеосъёмка

Кадр за плечом: советы по съёмке OTS

Исправление цветовых проблем в Photoshop
Фотография

Исправление цветовых проблем в Photoshop

Регулировка яркости и контраста в Photoshop
Фоторедакция

Регулировка яркости и контраста в Photoshop

Исправить серую опцию «Приостановить обновления» в Windows 11
Windows

Исправить серую опцию «Приостановить обновления» в Windows 11

Как убрать дрожание в видео со смартфона
Видеосъёмка

Как убрать дрожание в видео со смартфона

Вернуть однокликовое отключение звука в Chrome
Браузеры

Вернуть однокликовое отключение звука в Chrome