Номер недели в Excel противоречивые результаты


18

Я использую электронную таблицу, в которой указан номер недели на определенную дату. После некоторых исследований я обнаружил функцию ISOWEEKNUM (), которую можно применить к столбцу дат, и это, похоже, работает нормально. Выдержка из этой таблицы приведена в ссылке ниже:

выдержка из таблицы

Тем не менее, я заметил, что эта функция перестает работать в 2018 году, когда она показывает номер недели для 31/12/2018 как неделю 1, когда она всегда отображалась как неделя 52 или неделя 53 в предыдущие годы (что имеет смысл для меня) ,

Для этой функции нет других параметров, кроме даты, поэтому она выглядит довольно просто. Есть мысли, как заставить это работать?


4
Неделя считается частью года, в котором находится большая часть этой недели.
CodesInChaos

Ответы:


33

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

=WEEKNUM(serial_num, [return_type])

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

Позвольте мне объяснить далее:

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

Функция WEEKNUM (date, start_day) начинает отсчет с недели, содержащей 1 января. Таким образом, 01 января - это первый день недели 1. По умолчанию новые недели начинаются в воскресенье, поэтому неделя 2 начинается в первое воскресенье после 01 января. Вы можете изменить день начала, используя второй параметр в функции. Другими словами, первая неделя может иметь 1 день, если 01 января - суббота и используется начальный день по умолчанию. <- это ключевое понимание функции WEEKNUM ().

Я создал небольшую электронную таблицу, которая содержит ваши значения дат и добавляет еще несколько, чтобы продемонстрировать разницу:

введите описание изображения здесь

Обратите внимание, что не только в 2018 году последний день в году приходится на первую неделю следующего года. Функция ISOWEEKNUM () работает нормально, она просто по-разному интерпретирует начало первой недели.

Еще один способ убедиться в этом - посмотреть на 2 функции в течение дня, который охватывает первое января:

введите описание изображения здесь

В 2015 году первое января - четверг. Поэтому недельная функция ISOWEEKNUM () включает последние 3 дня в декабре, а функция WEEKNUM () запускает неделю первого января, но в первую неделю будет только 3 дня для начального дня воскресенья по умолчанию.

Я надеюсь, что это объясняет разницу.


1
Спасибо вам обоим за ваши отзывы. Оба ответа помогли понять, почему полученный ответ был правильным. Действительно, мне нужна была функция weeknum () для моей таблицы, и поэтому я выбрал @Clinton в качестве принятого ответа. Это дало мне четкое понимание различий в функциях.
WPDavid

17

Похоже, что функция выходит из строя в 2018 году, когда в качестве недели 1 отображается номер недели для 31/12/2018.

Это правильно, так как 31 декабря 2018 года - понедельник.

Если 31 декабря - понедельник, вторник или среда, то это будет неделя 01 следующего года. Если это четверг, то это на 53 неделе года, который только заканчивается; если в пятницу это на 52 неделе (или 53, если год, который только что закончился, является високосным); если в субботу или в воскресенье, это на 52 неделе года, который только заканчивается.

Исходная дата недели ISO - Википедия


Виноват Шанхай я говорю.
Raystafarian
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.