Я использую электронную таблицу, в которой указан номер недели на определенную дату. После некоторых исследований я обнаружил функцию ISOWEEKNUM (), которую можно применить к столбцу дат, и это, похоже, работает нормально. Выдержка из этой таблицы приведена в ссылке ниже:
Тем не менее, я заметил, что эта функция перестает работать в 2018 году, когда она показывает номер недели для 31/12/2018 как неделю 1, когда она всегда отображалась как неделя 52 или неделя 53 в предыдущие годы (что имеет смысл для меня) ,
Для этой функции нет других параметров, кроме даты, поэтому она выглядит довольно просто. Есть мысли, как заставить это работать?
Ответы:
В вашей формуле нет ничего плохого, но, возможно, это не та формула, которую вы хотите использовать. Есть другая формула Excel:
Это вернет результаты, которые вы ожидаете получить. Тем не менее, вы должны сначала проверить, какой тип номера недели больше подходит для вашего приложения.
Позвольте мне объяснить далее:
Функция ISOWEEKNUM (дата) работает на основе того, что неделя всегда начинается в понедельник и заканчивается в воскресенье, а затем устанавливает стандарт, согласно которому первая неделя года - это та неделя, которая содержит первый четверг года в этой неделе. Это означает, что последние несколько дней предыдущего года могут быть помечены как первая неделя следующего года.
Функция WEEKNUM (date, start_day) начинает отсчет с недели, содержащей 1 января. Таким образом, 01 января - это первый день недели 1. По умолчанию новые недели начинаются в воскресенье, поэтому неделя 2 начинается в первое воскресенье после 01 января. Вы можете изменить день начала, используя второй параметр в функции. Другими словами, первая неделя может иметь 1 день, если 01 января - суббота и используется начальный день по умолчанию. <- это ключевое понимание функции WEEKNUM ().
Я создал небольшую электронную таблицу, которая содержит ваши значения дат и добавляет еще несколько, чтобы продемонстрировать разницу:
Обратите внимание, что не только в 2018 году последний день в году приходится на первую неделю следующего года. Функция ISOWEEKNUM () работает нормально, она просто по-разному интерпретирует начало первой недели.
Еще один способ убедиться в этом - посмотреть на 2 функции в течение дня, который охватывает первое января:
В 2015 году первое января - четверг. Поэтому недельная функция ISOWEEKNUM () включает последние 3 дня в декабре, а функция WEEKNUM () запускает неделю первого января, но в первую неделю будет только 3 дня для начального дня воскресенья по умолчанию.
Я надеюсь, что это объясняет разницу.
источник
Похоже, что функция выходит из строя в 2018 году, когда в качестве недели 1 отображается номер недели для 31/12/2018.
Это правильно, так как 31 декабря 2018 года - понедельник.
Исходная дата недели ISO - Википедия
источник