Номер недели по дате функцией НОМНЕДЕЛИ
Потребность знать номер рабочей недели для заданной даты (или группы дат) весьма востребованная вещь в управленческом учете. Понедельные отчеты, еженедельный контроль выполнения плана, недельная сетка вещания в рекламе – все это требует умения определять номер рабочей недели для заданной даты. Задача, на первый взгляд, простая, но (как всегда) есть несколько весьма существенных нюансов.
Во-первых, в разных странах отсчет начала и конца самой недели – различаются. У нас в России днем отсчета недели принят понедельник, а в других странах (например, США и Израиле) – воскресенье.
Во-вторых, вопрос — какую неделю считать первой? На сегодняшний момент существуют как минимум два основных варианта с разной логикой. Рассмотрим их последовательно.
Способ 1. Стандарт ГОСТ ИСО 8601-2001 и функция НОМНЕДЕЛИ.ISO
Первой рабочей неделей года считается та, на которую выпадает первый четверг года (или 4 января, если хотите). Здесь логика проста. Первая неделя – это та, на которую пришлось больше трех дней (больше половины недели) из наступившего года. Некоторое неудобство в том, что в году получается когда 52, а когда 53 рабочих недели. Плюс ко всему 1 января может запросто оказаться 52 неделей предыдущего года.
Но именно этот вариант официально принят в России с 2002 года как государственный и остается им на данный момент (см. ГОСТ ИСО 8601-2001). Чтобы посчитать номер недели по дате по такой системе, можно использовать вот такую формулу:
=ОТБР(ОСТАТ(A1+3-ДЕНЬНЕД(A1;2);365,25)/7+1)
=TRUNC(MOD(A1+3-WEEKDAY(A1;2);365,25)/7+1)
В Excel 2013 функцию для расчета номера недели по ISO добавили в стандартный набор – она называется НОМНЕДЕЛИ.ISO (WEEKNUM.ISO)
Способ 2. Неделя с 1-м января и функция НОМНЕДЕЛИ (WEEKNUM)
В этом случае первой неделей года считается та, на которую попадает 1 января. Здесь также возникает сложность в том, что в году может оказаться 52 или 53 недели и, плюс ко всему, 1 января может выпасть на воскресенье, т.е. шесть последних дней года могут оказаться уже в неделе с номером 1, что затрудняет отчетность. Тем не менее, если такой способ нумерации вам нужен, то его можно реализовать функцией НОМНЕДЕЛИ (WEEKNUM), появившейся в Excel начиная с 2007 года. Синтаксис этой функции таков:
=НОМНЕДЕЛИ(Дата; Тип_отсчета)
где
- Дата — ячейка с датой, для которой нужно определить номер недели
- Тип_отсчета — число (1, 2 или 3), обозначающее тип нумерации дней в неделе. Вариант 1 — американский (неделя начинается с воскресенья), вариант 2 — наш.
Ссылки по теме
- Основные принципы работы с датами и временем в Microsoft Excel
- Номер квартала по дате
- Вычисление возраста или стажа в годах, месяцах, днях
- Выпадающий календарь для удобного ввода даты из надстройки PLEX
Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Excel для Mac 2011 Excel Starter 2010 Еще…Меньше
В этой статье описаны синтаксис формулы и использование функции НОМНЕДЕЛЬ
в Microsoft Excel.
Описание
Возвращает номер недели для определенной даты. Например, неделя, на которую приходится 1 января, считается первой неделей года, и для нее возвращается число 1.
Для этой функции могут использоваться две разные системы.
-
Система 1 Неделя, на которую приходится 1 января, считается первой неделей года, и для нее возвращается число 1.
-
Система 2 Неделя, на которую приходится первый четверг года, считается первой неделей, и для нее возвращается число 1. Эта методика определена в стандарте ISO 8601, который широко используется в Европе для нумерации недель.
Синтаксис
НОМНЕДЕЛИ(дата_в_числовом_формате;[тип])
Аргументы функции НОМНЕДЕЛИ описаны ниже.
-
Дата_в_числовом_формате Обязательный. Дата, по которой определяется неделя. Даты должны вводиться с использованием функции ДАТА или как результат вычисления других формул и функций. Например, для указания даты 23 мая 2008 г. воспользуйтесь выражением ДАТА(2008,5,23). Если даты вводятся как текст, это может привести к возникновению проблем.
-
Тип Необязательный. Число, которое определяет, с какого дня начинается неделя. Значение по умолчанию — 1.
Тип |
Начало недели |
Система |
1 или опущен |
Воскресенье |
1 |
2 |
Понедельник |
1 |
11 |
Понедельник |
1 |
12 |
Вторник |
1 |
13 |
Среда |
1 |
14 |
Четверг |
1 |
15 |
Пятница |
1 |
16 |
Суббота |
1 |
17 |
Воскресенье |
1 |
21 |
Понедельник |
2 |
Замечание
-
В приложении Excel даты хранятся в виде последовательных чисел, что позволяет использовать их в вычислениях. По умолчанию дате 1 января 1900 г. соответствует число 1, а 1 января 2008 г. — число 39 448, поскольку интервал между датами составляет 39 448 дней.
-
Если Serial_number находится вне диапазона для текущего базового значения даты, #NUM! возвращается ошибка.
-
Если Return_type находится вне диапазона, указанного в таблице выше, #NUM! возвращается ошибка.
Пример
Скопируйте образец данных из следующей таблицы и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — клавишу ВВОД. При необходимости измените ширину столбцов, чтобы видеть все данные.
Данные |
||
09.03.2012 |
||
Формула |
Описание |
Результат |
=НОМНЕДЕЛИ(A2) |
Номер недели в году, на которую припадает дата 09.03.2012, если неделя начинается в воскресенье (по умолчанию). |
10 |
=НОМНЕДЕЛИ(A2;2) |
Номер недели в году, на которую припадает дата 09.03.2012, если неделя начинается в понедельник (второй аргумент, т. е. 2). |
11 |
Нужна дополнительная помощь?
Существует 2 способа определения номера недели: в соответствии со стандартом ИСО и с помощью функции
НОМНЕДЕЛИ()
.
Рассмотрим 2 способа определения номера недели:
Используя функцию НОМНЕДЕЛИ()
Функция
НОМНЕДЕЛИ()
считает, что первая неделя года начинается с 1-го января. В ней может оказаться от 1 до 7 дней (1 января соответственно попадает на воскресенье или понедельник) и, как следствие, первая неделя может начинаться не с понедельника. У этой функции есть второй аргумент
тип
, который может принимать значение 1 (первым днем недели считается воскресенье) или 2 (первым днем недели считается понедельник).
=НОМНЕДЕЛИ(A3;2)
Предполагается, что в ячейке
А3
находится дата. Формула определяет номер недели, которой принадлежит эта дата.
Альтернативой использованию функции
НОМНЕДЕЛИ()
с типом 2 (как принято в РФ) является формула (см.
файл примера
):
=1+ЦЕЛОЕ((A3-(ДАТА(ГОД(A3);1;2)-ДЕНЬНЕД(ДАТА(ГОД(A3);1;0))))/7)
Альтернативой использованию функции
НОМНЕДЕЛИ()
с типом 1 является формула:
=1+ЦЕЛОЕ((A3-(ДАТА(ГОД(A3);1;2)-ДЕНЬНЕД(ДАТА(ГОД(A3);1;1))))/7)
По стандарту ISO8601:2000 (ГОСТ ИСО 8601-2001)
По стандарту ISO8601:2000 все недели начинаются с понедельника и длятся 7 дней. Первой неделей считается та, на которую попадает первый четверг нового года (т.е. первая неделя должна содержать не менее 4 дней из нового года).
Формула для расчета номера недели по стандарту ИСО:
=ЦЕЛОЕ((A3-ДАТА(ГОД(A3-ДЕНЬНЕД(A3-1)+4);1;3)+ ДЕНЬНЕД(ДАТА(ГОД(A3-ДЕНЬНЕД(A3-1)+4);1;3))+5)/7)
Следствием того, что все недели начинаются с понедельника, может получиться так, что в первую неделю попадут дни из прошлого года.
Решение обратной задачи – когда известен номер недели, а нужно найти, например, дату последнего дня этой недели – приведено в статье
Последний день недели
.
Есть ли способ получить номер недели по заданной дате или извлечь диапазон дат из определенного номера недели и года в Excel? Для решения этой задачи вам могут помочь следующие формулы.
Преобразование номера недели в дату с помощью формул
Преобразование даты в номер недели с помощью формул
Преобразование номера недели в дату с помощью формул
Предположим, у меня есть случайный номер года и недели, которые равны 2015 и 15 на листе, как показано на следующем снимке экрана, и теперь я хочу узнать конкретные даты с понедельника по воскресенье по этому заданному номеру недели.
Чтобы рассчитать диапазон дат по конкретному номеру недели, вы можете использовать следующие формулы:
1. Выберите пустую ячейку, вы вернете дату начала (в нашем случае мы выбираем ячейку B5), введите формулу: =MAX(DATE(B1,1,1),DATE(B1,1,1)-WEEKDAY(DATE(B1,1,1),2)+(B2-1)*7+1), и нажмите Enter ключ. Смотрите скриншот ниже:
2. Выберите другую пустую ячейку, вы вернете дату окончания (в нашем случае мы выбираем ячейку B6), введите =MIN(DATE(B1+1,1,0),DATE(B1,1,1)-WEEKDAY(DATE(B1,1,1),2)+B2*7), и нажмите Enter ключ. Смотрите скриншот ниже:
Примечание. В обеих формулах выше B1 содержит год и B2 — указанный номер недели, вы можете изменить аргументы по своему усмотрению).
3. Как видите, обе формулы возвращают числа вместо дат. Продолжайте выбирать оба результата расчета и нажмите Главная > Формат номера коробка> Короткое свидание чтобы заменить числа на даты. Смотрите скриншот ниже:
Один щелчок, чтобы преобразовать несколько нестандартных дат / чисел / текста форматирования в обычные даты в Excel
Kutools for Excel’s Преобразовать в дату Утилита может помочь вам легко определить и преобразовать нестандартные даты или числа (ггггммдд) или текст в обычные даты одним щелчком мыши в Excel.
Преобразование даты в номер недели с помощью формул
С другой стороны, вы также можете применить функцию WEEKNUM для преобразования даты в соответствующий номер недели.
1. Выберите пустую ячейку, вы вернете номер недели, введите эту формулу: = WEEKNUM (B1,1)и нажмите клавишу Enter. Смотрите скриншот:
Ноты:
(1) В приведенной выше формуле B1 содержит дату, которую вы хотите использовать.
(2) Если вам нужно вернуть номер недели с даты, которая начинается в понедельник, примените следующую формулу: = WEEKNUM (B1,2).
Статьи по теме:
Как посчитать количество конкретных дней недели между двумя датами в Excel?
Как добавить / вычесть дни / месяцы / годы на сегодняшний день в Excel?
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Потребность знать номер рабочей недели для заданной даты (или группы дат) весьма востребованная вещь в управленческом учете. Понедельные отчеты, еженедельный контроль выполнения плана, недельная сетка вещания в рекламе – все это требует умения определять номер рабочей недели для заданной даты. Задача на первый взгляд простая, но (как всегда) есть несколько весьма существенных нюансов.
Во-первых, в разных странах отсчет начала и конца самой недели – различается. У нас в России днем отсчета недели принят понедельник, а в других странах (например, США и Израиле) – воскресенье. Во-вторых, вопрос – какую неделю считать первой? На сегодняшний момент существуют как минимум два основных варианта с разной логикой. Рассмотрим их последовательно.
Способ 1. Стандарт ГОСТ ИСО 8601-2001
Первой рабочей неделей года считается та, на которую выпадает первый четверг года (или 4 января, если хотите). Здесь логика проста. Первая неделя – это та, на которую пришлось больше трех дней (больше половины недели) из наступившего года. Некоторое неудобство в том, что в году получается когда 52, а когда 53 рабочих недели. Плюс ко всему 1 января может запросто оказаться 52-й неделей предыдущего года.
Но именно этот вариант официально принят в России с 2002 года как государственный и остается им на данный момент (см. ГОСТ ИСО 8601-2001). Чтобы посчитать номер недели по дате по такой системе, можно использовать вот такую формулу (предполагается, что дата в ячейке А1):
Этот вариант официально принят в России
В англоязычной версии это будет =TRUNC(MOD(A1+3-WEEKDAY(A1;2);365,25)/7+1)
. В Excel 2013 / 2016 функцию для расчета номера недели по ISO добавили в стандартный набор – она называется НОМНЕДЕЛИ.ISO (WEEKNUM.ISO).
Функцию для расчета номера недели по ISO добавили в стандартный набор
Способ 2. Неделя с 1-м января
В этом случае первой неделей года считается та, на которую попадает 1 января. Здесь также возникает сложность в том, что в году может оказаться 52 или 53 недели и, плюс ко всему, 1 января может выпасть на воскресенье, т.е. шесть последних дней года могут оказаться уже в неделе с номером 1, что затрудняет отчетность. Тем не менее, если такой способ нумерации вам нужен, то его можно реализовать функцией НОМНЕДЕЛИ (WEEKNUM).
Вставляем эту функцию в нужную ячейку и указываем в качестве аргумента ячейку с датой и точку отсчета недели (1 – с воскресенья, 2 – с понедельника).
В Excel 2007–2016 ничего специально подключать не надо
При всей внешней простоте этого решения тут есть две тонкости. Во-первых, если у того пользователя, который откроет ваш файл, не будет заранее подключена надстройка Пакет анализа или у него не Excel 2007–2016 – он увидит вместо номера недели ошибку #ЗНАЧ!. Excel сам не распознает эту функцию, нужно обязательно заранее подключить надстройку. Во-вторых, названия функций из надстроек Excel сам не переводит на другой язык при открытии книги в Excel с другой версией.
Т.е. если даже у пользователя и подключена надстройка, но версия Excel англоязычная, то он тоже увидит вместо номера недели ошибку #VALUE!, потому что нужно вручную исправить русское название функции НОМНЕДЕЛИ на английское WEEKNUM – только так она заработает. Поэтому использование этой функции из надстройки Пакет анализа хорошо только в тех случаях, когда предполагается, что никто, кроме вас, с файлом работать не будет.
А если будет? Тогда лучше пойти другим путем. Он более примитивен, зато надежен. Если предположить, что дата хранится в ячейке А1, то вот такая формула посчитает такой же номер недели, как и функция НОМНЕДЕЛИ: =1+ЦЕЛОЕ((A1-ДАТА(ГОД(A1+4-ДЕНЬНЕД(A1+6));1;5)+ДЕНЬНЕД(ДАТА(ГОД(A1+4-ДЕНЬНЕД(A1+6));1;3)))/7)
или в англоязычной версии: =1+INT((A1-DATE(YEAR(A1+4-WEEKDAY(A1+6));1;5)+WEEKDAY(DATE(YEAR(A1+4-WEEKDAY(A1+6));1;3)))/7)
.