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

2101
WPDavid

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

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

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

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

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

2 ответа на вопрос

33
Clinton

В вашей формуле нет ничего плохого, но, возможно, это не та формула, которую вы хотите использовать. Есть другая формула 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 дня для начального дня воскресенья по умолчанию.

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

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

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

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

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

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

Обвинение [Шанхай] (https://stackoverflow.com/questions/6841333/why-is-subtracting-these-two-times-in-1927-giving-a-strange-result/6841479#6841479) Я говорю. Raystafarian 5 лет назад 0

Похожие вопросы