Номер недели по дате в Excel

Рассмотрим различные варианты получения номера недели по дате в Excel в зависимости от способа определения первого дня и способа нумерации.


Приветствую всех, уважаемые читатели блога TutorExcel.Ru.

Задача определения номера недели всегда остается актуальной, так как неделя является одним из основных временных интервалов в жизни и бизнесе — понедельные отчеты, планы, телепрограммы и т.д.
Однако, несмотря на внешне кажущуюся простоту задачи, в расчете есть определенные тонкости, о которых мы далее подробно поговорим.

Особенности расчета: нумерация и определение первого дня

Во-первых, в зависимости от страны может отличаться способ определения первой недели года.
В России (согласно ГОСТ ИСО 8601-2001, действует с 2002 г.) первой неделей считается неделя, которая содержит первый четверг года, т.е. неделя содержащая 4 января (другими словами, 1 января это любой день от понедельника до четверга). В США используют другой вариант нумерации, к примеру, у них 1 января начинается новая календарная неделя, независимо от дня недели.

Во-вторых, первый день недели в разных странах также может отличаться.
Для жителей России и стран Европы начало недели начинается с понедельника, но, например, в странах Северной и Южной Америки неделя начинается с воскресенья, а в некоторых странах Ближнего Востока с субботы.

Таким образом, в зависимости от того, какой конкретно способ расчета нам нужен и будем выстраивать алгоритм.

Способ 1. Неделя содержит первый четверг года

Давайте начнем с более популярного варианта, а именно, посчитаем номер недели для российского календаря.

Как мы уже выяснили, в России первой неделя должна содержать первый четверг года.
Для расчета можно воспользоваться следующей формулой:

Формула номера недели по дате
Алгоритм расчета:

  • К вычисляемой дате (напомню, что дата в Excel хранится в числовом виде) прибавляем 3 дня и вычитаем номер дня недели (1 для понедельника, 2 для вторника и т.д.);
    Этим шагом мы добьемся, что для понедельника, вторника и среды вычисляемая дата увеличится, а для остальных дней (четверга, пятницы, субботы и воскресенья) уменьшится, что и позволит добиться включения первого четверга года в первую неделю.
  • Далее возьмем остаток от деления на 365,25 (средняя длительность года с учетом високосного года);
    Этой операцией мы получим количество дней в текущем году для вычисляемой даты.
  • Делим полученный результат делим на 7;
    Переводим дни в недели.
  • Прибавляем 1 и берем целую часть числа.

Начиная с версии Excel 2013 добавлена стандартная функция НОМНЕДЕЛИ.ISO (по стандарту ИСО), которую можно применить вместо выше приведенной формулы.
Синтаксис и описание функции НОМНЕДЕЛИ.ISO (в английской версии WEEKNUM.ISO):

НОМНЕДЕЛИ.ISO(дата)
Возвращает номер недели в году по стандарту ISO для указанной даты.

  • Дата (обязательный аргумент) — код даты-времени.

Проверим работу функции на тех же датах, что и в предыдущем примере:

Функция НОМНЕДЕЛИ.ISO (WEEKNUM.ISO)
Результаты совпали, что и требовалось, теперь перейдем к другим вариантам календаря.

Способ 2. Первая неделя начинается 1 января

Для такого способа нумерации недель тоже есть вариант стандартной функции, причем он доступен и в более ранних версиях Excel.
Синтаксис и описание функции НОМНЕДЕЛИ (в английской версии WEEKNUM):

НОМНЕДЕЛИ.ISO(дата; [тип])
Возвращает номер недели года.

  • Дата (обязательный аргумент) — код даты-времени;
  • Тип (необязательный аргумент) — тип возвращаемого значения, 1 (по умолчанию; американский вариант, неделя начинается в воскресенье) и 2 (российский вариант, неделя начинается в понедельник).

В качестве примера рассмотрим 2017 г. где 1 января приходится на воскресенье, а 2 января на понедельник.
Соответственно, получается, что в американском варианте расчета недели меняются между 7 и 8 января, а в российском между 8 и 9 января:

Функция НОМНЕДЕЛИ (WEEKNUM)
Также возможные и другие различные значения аргумента Тип:

Параметры аргумента Тип
Первая цифра типа означает способ определения первой недели года (1 — неделя начинается 1 января, 2 — содержит первый четверг года), а вторая цифра определяет с какого дня начинается неделя (1 — понедельник, 2 — вторник, 3 — среда и т.д.)

Скачать файл с примером.

Спасибо за внимание!
Если у вас остались вопросы по теме статьи — пишите в комментариях.

Удачи вам и до скорых встреч на страницах блога TutorExcel.Ru!

Поделиться с друзьями:
Поиск по сайту:

Добавить комментарий

Ваш адрес email не будет опубликован.