В Аксапте используются ISO Week numbers:
Under the ISO standard, a week always begins on a Monday, and ends on a Sunday. The first week of a year is that week which contains the first Thursday of the year, or, equivalently, contains Jan-4.
While this provides some standardization, it can lead to unexpected results — namely that the first few days of a year may not be in week 1 at all. Instead, they will be in week 52 of the preceding year! For example, the year 2000 began on Saturday. Under the ISO standard, weeks always begin on a Monday. In 2000, the first Thursday was Jan-6, so week 1 begins the preceding Monday, or Jan-3. Therefore, the first two days of 2000, Jan-1 and Jan-2, fall into week 52 of 1999.
An ISO week number may be between 1 and 53. Under the ISO standard, week 1 will always have at least 4 days. If 1-Jan falls on a Friday, Saturday, or Sunday, the first few days of the year are defined as being in the last (52nd or 53rd) week of the previous year.
Unlike absolute week numbers, not every year will have a week 53. For example, the year 2000 does not have a week 53. Week 52 begins on Monday, 25-Dec, and ends on Sunday, 31-Dec. But the year 2004 does have a week 53, from Monday, 27-Dec , through Friday, 31-Dec.
Как определить дату начала недели по номеру недели |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Есть ли способ получить номер недели по заданной дате или извлечь диапазон дат из определенного номера недели и года в 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% и сокращает количество щелчков мышью на сотни каждый день!
На чтение 4 мин. Просмотров 158 Опубликовано 21.05.2021
Например, у вас есть дата 04.03.2015, и вам нужно узнать начало/начало недели по этой дате в Excel. Как быстро решить эту проблему? В этой статье будут представлены два решения:
- Найти начало/начало недели по заданной дате с помощью формул
- Найдите начало/начало недели по заданной дате с помощью Kutools for Excel
Вкладка Office позволяет редактировать и просматривать в Office с вкладками и упростить вашу работу …
Подробнее … Скачать бесплатно …
Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%.
- Повторное использование чего-либо: добавляйте наиболее часто используемые или сложные формулы, диаграммы и все остальное в избранное и быстро используйте их в будущем.
- Более 20 текстовых функций: извлечение числа из текстовой строки; Извлечь или удалить часть текстов; Преобразование чисел и валют в английские слова.
- Инструменты слияния: несколько книг и листов в одну; Объединить несколько ячеек/строк/столбцов без потери данных; Объедините повторяющиеся строки и суммируйте.
- Инструменты разделения: разделение данных на несколько листов в зависимости от значения; Из одной книги в несколько файлов Excel, PDF или CSV; Один столбец в несколько столбцов.
- Вставить пропуск скрытых/отфильтрованных строк; Подсчет и сумма по цвету фона; Массовая отправка персонализированных писем нескольким получателям.
- Суперфильтр: создавайте расширенные схемы фильтров и применяйте их к любым листам; Сортировать по неделе, дню, частоте и т. Д. Фильтр жирным шрифтом, формулами, комментарием …
- Более 300 мощных функций; Работает с Office 2007-2019 и 365; Поддерживает все языки; Простое развертывание на вашем предприятии или в организации.
Подробнее … Бесплатная загрузка …
->
Содержание
- Найти начало/начало недели по заданной дате с помощью формул
- Найти начало/начало недели по заданной дате с помощью Kutools for Excel
- С легкостью комбинируйте несколько листов/книг/ Файлы CSV в один лист/книгу
Найти начало/начало недели по заданной дате с помощью формул
Потрясающе! Использование эффективных вкладок в Excel, таких как Chrome, Firefox и Safari!
Сэкономьте 50% своего времени и сократите тысячи щелчков мышью каждый день!
->
Этот метод представит некоторые формулы для определения начала/начала недели по любой заданной дате в Excel легко.
Формула: = A2-WEEKDAY (A2,2) +1
Выберите пустую ячейку, в которой вы вернет начало недели и введите в нее формулу = A2-WEEKDAY (A2,2) +1 (A2 – ячейка с заданной датой) и перетащите маркер заполнения в нужный диапазон. См. Скриншоты:
Примечание. Эта формула = A2-WEEKDAY (A2,2) +1 вернет понедельник как начало недели в зависимости от заданной даты.
Формулы: = A2-MOD (A2-2,7) или = A2-MOD (A2-1,7)
Выберите пустую ячейку, в которую вы вернете начало недели, и введите в нее формулу = A2-MOD (A2-2,7) (A2 – ячейка с заданной датой), а затем перетащите маркер заполнения в диапазон, как вам нужно. См. скриншоты:
Примечания :
(1) Эта формула = A2-MOD (A2-2,7) вернет понедельник как начало недели на основе заданного дата. Чтобы вернуть воскресенье в качестве начала недели, примените эту формулу = A2-MOD (A2-1,7).
(2) Если возвращается понедельник или воскресенье, не отображается как дату, продолжайте выбирать даты и нажимайте раскрывающийся список Home > Числовой формат > Краткая дата . См. Снимок экрана:
Найти начало/начало недели по заданной дате с помощью Kutools for Excel
Обычно мы можем легко узнать начало/начало недели по заданной дате в календаре. Kutools for Excel’s Insert Date утилита подготавливает такой календарь для легкого поиска и вставки дат.
Kutools for Excel – Включает в себя больше более 300 удобных инструментов для Excel. Полнофункциональная 30-дневная бесплатная пробная версия, кредитная карта не требуется! Получить сейчас
1 . Нажмите Kutools > Вставить > Вставить дату , чтобы открыть диалоговое окно «Вставить дату». См. Снимок экрана:
2 . В открывшемся диалоговом окне «Вставить дату» найдите данную дату в календаре, а затем вы увидите начало этой недели (как воскресенье, так и понедельник), как показано на скриншоте ниже.
Выберите пустое поле ячейку на текущем листе и дважды щелкните найденный понедельник или воскресенье, чтобы вставить в ячейку.
Примечание . Эта утилита поддерживает вставку дат со специальным форматированием даты: установите флажок Использование формата , щелкните, чтобы выделить форматирование даты на правой панели, а затем дважды щелкните найденный понедельник или воскресенье.
3 . Закройте диалоговое окно «Вставить дату».
Kutools for Excel – включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная 30-дневная пробная версия, кредитная карта не требуется! Получить сейчас
С легкостью комбинируйте несколько листов/книг/ Файлы CSV в один лист/книгу
Объединение десятков листов из разных книг на одном листе может быть утомительным.. Но с помощью утилиты Combine (рабочие листы и книги) в Kutools for Excel, вы можете сделать это всего за несколько щелчков мышью! 30-дневная бесплатная пробная версия полнофункциональной версии!
If you are looking for the opposite to get a date from a weeknumber i found a solution online and changed it slightly:
Function fnDateFromWeek(iYear As Integer, iWeek As Integer, iWeekDday As Integer)
' get the date from a certain day in a certain week in a certain year
fnDateFromWeek = DateSerial(iYear, 1, (iWeek * 7) _
+ iWeekDday - Weekday(DateSerial(iYear, 1, 1)) + 1)
End Function
I took the formular from asap-utilities.com/ and changed
DateSerial(iYear, 1, ((iWeek - 1) * 7)
to
DateSerial(iYear, 1, (iWeek * 7)
Update
It seems that at least for germany the formular works not as expected for the leap year 2016 so i changed it to this
Function fnDateFromWeek(iYear As Integer, iWeek As Integer, iWeekDday As Integer)
' get the date from a certain day in a certain week in a certain year
If isLeapYear(iYear) Then
curDate = DateSerial(iYear, 1, ((iWeek) * 7) _
+ iWeekDday - Weekday(DateSerial(iYear, 1, 1)) + 1)
Else
curDate = DateSerial(iYear, 1, ((iWeek - 1) * 7) _
+ iWeekDday - Weekday(DateSerial(iYear, 1, 1)) + 1)
End If
fnDateFromWeek = curDate
End Function
Since 2016 hardcoded is not ideal you could check if a year is a leap year with this function
Function isLeapYear(iYear As Integer) As Boolean
If (Month(DateSerial(iYear, 2, 29)) = 2) Then
isLeapYear = True
Else
isLeapYear = False
End If
End Function
For a non-leap-year DateSerial(iYear,2 ,29)
returns 1st of march
This may still be wrong but my limited test gave the expected results:
Sub TestExample()
Debug.Print Format(fnDateFromWeek(2014, 48, 2), "ddd dd mmm yyyy") ' mo 24 Nov 2014
Debug.Print Format(fnDateFromWeek(2015, 11, 6), "ddd dd-mmm-yyyy") ' fr 13 Mar 2015
Debug.Print Format(fnDateFromWeek(2016, 36, 2), "ddd dd-mmm-yyyy") ' Mo 05 Sep 2015
End Sub