Номер недели по дате функцией НОМНЕДЕЛИ
Потребность знать номер рабочей недели для заданной даты (или группы дат) весьма востребованная вещь в управленческом учете. Понедельные отчеты, еженедельный контроль выполнения плана, недельная сетка вещания в рекламе – все это требует умения определять номер рабочей недели для заданной даты. Задача, на первый взгляд, простая, но (как всегда) есть несколько весьма существенных нюансов.
Во-первых, в разных странах отсчет начала и конца самой недели – различаются. У нас в России днем отсчета недели принят понедельник, а в других странах (например, США и Израиле) – воскресенье.
Во-вторых, вопрос — какую неделю считать первой? На сегодняшний момент существуют как минимум два основных варианта с разной логикой. Рассмотрим их последовательно.
Способ 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
Содержание
- Отображение дня недели в Экселе
- Способ 1: применение форматирования
- Способ 2: использование функции ТЕКСТ
- Способ 3: применение функции ДЕНЬНЕД
- Вопросы и ответы
При работе в программе Excel иногда ставится задача, чтобы после ввода конкретной даты в ячейку выводился день недели, который ей соответствует. Естественно, решить данную задачу посредством такого мощного табличного процессора, как Эксель, возможно, причем несколькими способами. Давайте посмотрим, какие варианты существуют для выполнения данной операции.
Отображение дня недели в Экселе
Существуют несколько способов отобразить день недели по введенной дате, начиная от форматирования ячеек и заканчивая применением функций. Давайте взглянем на все существующие варианты выполнения указанной операции в Экселе, чтобы пользователь мог выбрать самый лучший из них для конкретной ситуации.
Способ 1: применение форматирования
Прежде всего, посмотрим, как при помощи форматирования ячеек можно отобразить день недели по введенной дате. Данный вариант подразумевает преобразование даты в указанное значение, а не сохранение отображения обоих этих видов данных на листе.
- Вводим любую дату, содержащую данные о числе, месяце и годе, в ячейку на листе.
- Кликаем по ячейке правой кнопкой мыши. Запускается контекстное меню. Выбираем в нем позицию «Формат ячеек…».
- Запускается окно форматирования. Перемещаемся во вкладку «Число», если оно было открыто в какой-нибудь другой вкладке. Далее в блоке параметров «Числовые форматы» устанавливаем переключатель в позицию «Все форматы». В поле «Тип» вручную вводим следующее значение:
ДДДД
После этого щелкаем по кнопке «OK» внизу окна.
- Как видим, в ячейке вместо даты отобразилось полное наименование дня недели ей соответствующего. При этом, выделив данную ячейку, в строке формул вы все равно увидите отображение даты.
В поле «Тип» окна форматирования вместо значения «ДДДД» можно также ввести выражение:
ДДД
В этом случае на листе будет отображено сокращенное наименование дня недели.
Урок: Как изменить формат ячейки в Экселе
Способ 2: использование функции ТЕКСТ
Но способ, который был представлен выше, предусматривает преобразование даты в день недели. Существует ли вариант, чтобы оба эти значения выводились на листе? То есть, если в одной ячейке мы вводим дату, то в другой должен выводиться день недели. Да, такой вариант существует. Его можно осуществить при помощи формулы ТЕКСТ. В этом случае нужное нам значение будет выводиться в указанную ячейку в текстовом формате.
- Записываем дату на любом элементе листа. Затем выделяем любую пустую ячейку. Щелкаем по пиктограмме «Вставить функцию», которая расположена возле строки формул.
- Происходит запуск окошка Мастера функций. Переходим в категорию «Текстовые» и из списка операторов выбираем наименование «ТЕКСТ».
- Открывается окно аргументов функции ТЕКСТ. Данный оператор призван выводить указанное число в выбранном варианте текстового формата. Он имеет следующий синтаксис:
=ТЕКСТ(Значение;Формат)
В поле «Значение» нам нужно указать адрес той ячейки, в которой содержится дата. Для этого устанавливаем курсор в указанное поле и левой кнопкой мыши щелкаем по этой ячейке на листе. Адрес тут же отобразится.
В поле «Формат» в зависимости от того, какое мы хотим иметь представление дня недели полное или сокращенное, вводим выражение «дддд» или «ддд» без кавычек.
После ввода этих данных жмем на кнопку «OK».
- Как видим в ячейке, которую мы выбрали в самом начале, отобразилось обозначение дня недели в выбранном текстовом формате. Теперь у нас на листе отображается и дата, и день недели одновременно.
Более того, если в ячейке изменить значение даты, то соответственно автоматически изменится и день недели. Таким образом, меняя дату можно узнавать на какой день недели она будет приходиться.
Урок: Мастер функций в Экселе
Способ 3: применение функции ДЕНЬНЕД
Имеется ещё один оператор, который может выводить день недели по заданной дате. Это функция ДЕНЬНЕД. Правда, она выводит не название дня недели, а его номер. При этом пользователь может устанавливать с какого дня (с воскресенья или с понедельника) нумерация будет отсчитываться.
- Выделяем ячейку для вывода номера дня недели. Щелкаем по значку «Вставить функцию».
- Снова открывается окошко Мастера функций. На этот раз переходим в категорию «Дата и время». Выбираем наименование «ДЕНЬНЕД» и жмем на кнопку «OK».
- Производится переход в окно аргументов оператора ДЕНЬНЕД. Он имеет следующий синтаксис:
=ДЕНЬНЕД(дата_в_числовом_формате;[тип])
В поле «Дата в числовом формате» вводим конкретную дату или адрес ячейки на листе, в которой она содержится.
В поле «Тип» задается число от 1 до 3, которое определяет, как именно будут нумероваться дни недели. При установке числа «1» нумерация будет происходить, начиная с воскресенья, причем этому дню недели будет присвоен порядковый номер «1». При установке значения «2» нумерация будет выполняться, начиная с понедельника. Этому дню недели будет дан порядковый номер «1». При установке значения «3» нумерация так же будет происходить с понедельника, но в этом случае понедельнику будет присвоен порядковый номер «0».
Аргумент «Тип» не является обязательным. Но, если его опустить, то считается, что значение аргумента равно «1», то есть, неделя начинается с воскресенья. Так принято в англоязычных странах, но нам данный вариант не подходит. Поэтому в поле «Тип» ставим значение «2».
После выполнения указанных действий щелкаем по кнопке «OK».
- Как видим, в указанную ячейку выводится порядковый номер дня недели, который соответствует введенной дате. В нашем случае это число «3», которое обозначает среду.
Как и с предыдущей функцией, при изменении даты автоматически изменяется номер дня недели в ячейке, в которой установлен оператор.
Урок: Функции даты и времени в Экселе
Как видим, в Экселе существуют три основных варианта представления даты в виде дня недели. Все они относительно просты и не требуют от пользователя наличия каких-то специфических умений. Один из них заключается в применении специальных форматов, а два других для достижения указанных целей используют встроенные функции. Учитывая, что механизм и способ отображения данных в каждом описанном случае существенно отличаются, пользователь должен сам выбрать, какой из указанных вариантов в конкретной ситуации ему подходит более всего.
Есть ли способ получить номер недели по заданной дате или извлечь диапазон дат из определенного номера недели и года в 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% и сокращает количество щелчков мышью на сотни каждый день!
В Microsoft Excel есть разные форматы ячеек, среди которых находятся и отвечающие за дату. Обычно они отображают значение в числовом виде с расстановкой точек между днем, месяцем и годом. Из-за этого у некоторых пользователей возникает потребность в отображении именно дня недели по указанной дате, чтобы организовать нужное представление содержимого. Достичь желаемого результата можно тремя разными методами.
Перед тем как мы обратимся к инструкциям, обращаю ваше внимание на то, что исчисление лет в Экселе начинается с 01.01.1900. Соответственно, программа не сможет показать день недели по дате, если она была раньше указанной, например, 19.01.1854. При использовании таких дат придется обращаться только к сторонним календарям и заполнять таблицу вручную.
Изменение формата ячейки
Самый простой и быстрый вариант для реализации, не требующий применения дополнительных функций, – изменение формата ячейки, чтобы Excel отображал число как конкретный день недели. Такой метод подойдет в тех случаях, когда вам нужно именно конвертировать дату в день недели. Настройка формата ячейки осуществляется следующим образом:
-
Щелкните по ячейке с датой правой кнопкой мыши и из появившегося контекстного меню выберите пункт «Формат ячеек».
-
В новом окне на панели слева выделите левой кнопкой мыши пункт «Все форматы», после чего самостоятельно укажите тип как ДДДД.
-
Обратите внимание на поле «Образец», чтобы пример показывался как текстовое описание дня недели, после чего примените изменения.
-
Вернитесь к таблице, выделите нужную ячейку и убедитесь в том, что результат вас устраивает.
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Подписаться
Использование функции ТЕКСТ
Следующий вариант отображения дня недели по дате – использование функции ТЕКСТ. Она работает таким образом, что переводит любой формат ячейки в текстовый с дополнительным указанием типа. Как раз тип мы будем использовать такой же, который выбирали и в предыдущей инструкции. Разница будет лишь в том, что значение ячейки с датой у вас не заменится, а день недели просто будет выведен в одной из соседних ячеек по вашему выбору.
-
Выберите любую свободную ячейку для подставления имеющегося значения и объявите в ней функцию =ТЕКСТ().
-
В скобках в первую очередь выберите ячейку с датой, кликнув по ней левой кнопкой мыши. Затем поставьте знак «;» для перехода к следующему аргументу.
-
Задайте кавычки и внутри них напишите дддд, чтобы указать нужный тип формата ячейки.
-
Примените ввод формулы через Enter и посмотрите, как будет выведена ваша дата в виде дня недели. Эту формулу можно растянуть и на все следующие даты, если в таблице много строк, конвертирование которых требуется.
Использование функции ДЕНЬНЕД
Следующая функция под названием ДЕНЬНЕД является автоматической, то есть вам не придется никакой формат вписывать вручную или заниматься расчетами. Отличие этого варианта от предыдущих – день недели будет выведен в виде цифры в выбранной ячейке. Иногда это будет полезно при использовании дополнительных формул, связанных с днями недели.
-
Объявите функцию =ДЕНЬНЕД().
-
В скобках выберите ячейку с датой, день недели которой вы хотите вывести.
-
После точки с запятой появится список с вариантами начала исчисления дней недели. Первый вариант подходит в тех случаях, если первым днем недели для вас является воскресенье, а последним – суббота. Второй является стандартным для СНГ-стран, поскольку первый день будет понедельник, а последний – воскресение. Посмотрите на весь список и решите, какой из этих вариантов подходит вам.
-
Подходящий вариант нужно указать просто цифрой, после чего можно применить функцию и посмотреть, какая цифра будет выведена в качестве результата дня недели для даты.
Каждый из трех представленных вариантов перевода даты в день недели подойдет в разных случаях. Иногда можно ограничиться конвертированием формата ячейки, а иногда пригодится именно отображение дня как цифры, чтобы дальше вклинить значение в свою формулу и использовать в таблице.
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 |