1

Я использую следующую формулу для расчета календарной недели, если ссылка на ячейку с датой:

=INT((A1-DATE(YEAR(A1);1;1)-WEEKDAY(A1))/7)+2

но это не работает должным образом. Если я вхожу 24.08.2012 я получаю календарную неделю 35, но на самом деле это 34.

Кто-нибудь знает, что идет не так?

4 ответа4

1

Я предполагаю, что приведенная выше формула работает только с датами в США, поскольку первая календарная неделя всегда начинается 1 января. В Европе все иначе (в терминологии VB: первые четыре дня).

В VBA это можно сделать так:

Format(datefield, "ww", vbMonday, vbFirstFourDays)

Excel 2010 поставляется со встроенной функцией календарной недели.

1

Эта формула даст вам номер недели ISO [где неделя 1 каждого года начинается в первый понедельник 29 декабря или после этой даты, а каждая неделя имеет 7 дней]

=INT((A1-WEEKDAY(A1;2)-DATE(YEAR(A1+4-WEEKDAY(A1;2));1;4))/7)+2

как говорит Андреас в Excel 2010, вы можете получить то же самое с помощью функции WEEKNUM, используя

=WEEKNUM(A1;21)

0

Для Excel 2007 =WEEKNUM(A1,1) и =WEEKNUM(A1) возвращают 34 тогда как =WEEKNUM(A1,2) возвращает 35 , когда A1 равен 24.08.12 (см. Рон де Брюин).

-1

Ваша формула дала мне ошибку с точкой с запятой при выборе даты и года. Вместо этого должен использовать запятые. Кроме того, я не знаю, есть ли у вас определенное форматирование на А1, но 24.8.2012 по умолчанию в Excel 2013 не является допустимой датой. Однако ваша формула работает с новой книгой Excel после изменения формата даты и запятых.

=INT((A1-DATE(YEAR(A1),1,1)-WEEKDAY(A1))/7)+2

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .