Страницы: 1 2 След.
RSS
Номер недели. (формула, проблемка)
 
Добрый день!  
(прикр.файл)  
Хотел использовать формулу =номнедели() для сегодняшнего числа, но  что то неправильно показывает. В панели управлений все на Русском стоит, не Америка, метрическая система стоит. Вроде все норма.    
Не могу разобраться в чем проблема?  
Нужна, помощь. Спасибо заранее!
With my best regards,      Inter_E
 
Здравствуйте.  
 
А Вы справку по этой функции читали?  
 
"Функция НОМНЕДЕЛИ  
 
Описание  
Возвращает число, которое указывает, на какую неделю года приходится указанная дата.  
 
Важно.  В функции НОМНЕДЕЛИ предполагается, что неделя, на которую приходится 1 января, является первой неделей года. Однако по европейскому стандарту первой неделей года считается та, на которую в новом году приходится не менее четырех дней. Следовательно, если первая неделя января в новом году содержит меньше четырех дней, функция НОМНЕДЕЛИ возвращает для этого года номера недель, не соответствующие европейскому стандарту."
 
Добрый день всем!  
Пример во вложении.
 
{quote}{login=Vlad}{date=17.09.2010 09:16}{thema=}{post}Пример во вложении.{/post}{/quote}Vlad, 01.012010, это какая неделя?
 
..ответ  
конечно читал, но не полностью все детали.  
На мобильном телефоне вроде правильно показывает. А он как узнает?  
Просто я обрабатываю базу дат в 500 000 строк  
Здесь наверно мое быстрое решение ето просто отнимать цифру "1"? Или как то подругому можно настроить неделю?
With my best regards,      Inter_E
 
Если идти таким путём, то =НОМНЕДЕЛИ(дата;2)-1 попроще будет?
 
{quote}{login=Inter_E}{date=17.09.2010 09:20}{thema=..ответ}{post}  
Здесь наверно мое быстрое решение ето просто отнимать цифру "1"? Или как то подругому можно настроить неделю?{/post}{/quote}Думаю правильней будет определять день недели и считать их количество с начала года. Правда никогда этим не заморачивался...
 
{quote}{login=Serge 007}{date=17.09.2010 09:21}{thema=}{post}Если идти таким путём, то =НОМНЕДЕЛИ(дата;2)-1 попроще будет?{/post}{/quote}Это я Владу писал, в ответ на    
=ЕСЛИ(ДЕНЬНЕД(ДАТА(ГОД(A2);1;1);2)<5;НОМНЕДЕЛИ(A2;2);НОМНЕДЕЛИ(A2;2)-1)  
:)
 
{quote}{login=Serge 007}{date=17.09.2010 09:25}{thema=Re: ..ответ}{post}Думаю правильней будет определять день недели и считать их количество с начала года. Правда никогда этим не заморачивался...{/post}{/quote}Не, это я фигнню каку-то написал, это совсем не продуктивно...
 
Вот такой монстр получился. Зато универсально для любой даты любого года:  
=ЕСЛИ(ДЕНЬНЕД(ДАТА(ГОД(A2);1;1);2)<5;НОМНЕДЕЛИ(A2;2);ЕСЛИ(НОМНЕДЕЛИ(A2;2)-1=0;ЕСЛИ(ИЛИ(ДЕНЬНЕД(ДАТА(ГОД(A2);1;1);2)=5;ОСТАТ(ГОД(A2)-1;4)=0);53;52); НОМНЕДЕЛИ(A2;2)-1))  
См. пример
 
Извиняюсь, пропустил одно условие. Вот теперь точная формула (монстр подрос :-)  
 
=ЕСЛИ(ДЕНЬНЕД(ДАТА(ГОД(A2);1;1);2)<5;НОМНЕДЕЛИ(A2;2);ЕСЛИ(НОМНЕДЕЛИ(A2;2)-1=0;ЕСЛИ(ИЛИ(ДЕНЬНЕД(ДАТА(ГОД(A2);1;1);2)=5;И(ДЕНЬНЕД(ДАТА(ГОД(A2);1;1);2)=5;ОСТАТ(ГОД(A2)-1;4)=0));53;52);НОМНЕДЕЛИ(A2;2)-1))  
 
Смысл:  
- если 1.1.тек.года < пятницы, то № недели считает Excel, в противном случае:  
- если неделя первая по счёту Excel, то  
 - если  1.1.тек.года = пятница или 1.1.тек.года = суббота, а предыдущий год  
   високосный, то № недели 53, иначе 52;  
- № недели по Excel минус 1.
 
{quote}{login=The_Prist}{date=17.09.2010 10:37}{thema=}{post}Мой взгляд на решение проблемы:  
=НОМНЕДЕЛИ(A2;1)-(ДЕНЬНЕД(ДАТА(ГОД(A2);1;1);2)>4){/post}{/quote}  
Дмитрий, у меня таким же был первый взгляд, но Сергей сразу же правильно развенчал его примером 01.01.2010  - нулевая неделя.
 
Просто у меня перед глазами календарик в Excel на любой вводимый год с номерами всех недель.  
Я нашёл закономерность для № первой недели, слепил по ней формулу и для очистки совести протестировал её всеми годами с 2009 по 2040 - всё правильно считает.  
Синтаксис попытался описать в сообщении в 10:43.  
Наверняка можно короче, но это - к формулистам.
 
=СУММПРОИЗВ(--(ДЕНЬНЕД(СТРОКА(ИНДЕКС(A:A;ДАТА(ГОД(A1);1;1)):ИНДЕКС(A:A;A1));2)=7))+(ДЕНЬНЕД(A1;2)<>7)
 
Это я тоже не пропущу :)  
 
=ОКРУГЛ((A1-ДАТА(ГОД(A1-ДЕНЬНЕД(A1-1)+4);1;3)+ДЕНЬНЕД(ДАТА(ГОД(A1-ДЕНЬНЕД(A1-1)+4);1;3))+5)/7;0)
 
Добрый день!  
Извиняюсь, но по вышеприведённым формулам уважаемых kim и Diana Tailor получается, что сегодня 38-я неделя.  
Но по европейскому стандарту сегодня 37-я неделя, т.к. 1 янв. 2010г. было пятницей и это была не первая, а 52-я неделя.  
Честно говоря, не могу найти отличия результатов этих формул от НОМНЕДЕЛИ().
 
Прошу прощения, "техзадания" не читала :)  
В таком случае формула Влада действительно универсально работает. Написала другой вариант (но он в два с половиной раза длиннее, выкладывать не буду).
 
Интересно, а как даже в простеньких моб. телефонах номера недель всегда точно отображаются?  
Должен же быть там какой-то алгоритм и не думаю, что такой громоздкий.
 
ну их же делали Европейцы :) под свой лад подстроили :)
 
Да, наверно тупо забиты в программу телефона готовые номера недель до 2050 года и всё.  
Просто и без извратов:)
 
Интересно, что-то ZVI не отвечает.  
Он обычно всегда находит решения не в стандартных ситуациях :)
 
1 - "*Для этой функции могут использоваться две разные системы.  
Система 1  Неделя, на которую приходится 1 января, считается первой неделей года, и для нее возвращается число 1.  
Система 2  Неделя, на которую приходится первый четверг (!!!-Z) года, считается первой неделей, и для нее возвращается число 1."  
2 - Кто в какой стране-государстве, какая локаль и т.п. Недели ведь тоже разные:-)  
Z.  
89623
 
Вариант для Inter_E (Astana_KZ)- "=НОМНЕДЕЛИ(A2;21)".  
Z.  
97277
 
На всякий случай, велосипед уже изобретен - важно выбрать нужную модель :)  
 
http://www.cpearson.com/excel/WeekNumbers.aspx
KL
 
{quote}{login=KL}{date=18.09.2010 05:06}{thema=}{post}На всякий случай, велосипед уже изобретен - важно выбрать нужную модель :)  
 
http://www.cpearson.com/excel/WeekNumbers.aspx{/post}{/quote}  
 
Ну вот, скачала и приложила :) (вдруг кому лень) (92 КБ).  
Все говорим спасибо KL и сайту www.cpearson.com  
Тему, думаю, можно закрывать.
 
предлагаю продолжить тему: как сделать так чтобы и год для недели определялся? например 1015, т.е. 2010 год, 15 неделя.
 
{quote}{login=alexandr437}{date=28.09.2010 09:39}{thema=}{post}предлагаю продолжить тему: как сделать так чтобы и год для недели определялся? например 1015, т.е. 2010 год, 15 неделя.{/post}{/quote}  
ГОД()-2000&НОМНЕДЕЛИ()
 
думаю что не получится использовать ГОД()-2000&НОМНЕДЕЛИ()  
т.к. функция НОМНЕДЕЛИ некорректно работает
 
{quote}{login=vikttur}{date=28.09.2010 09:44}{thema=Re: }{post}{quote}{login=alexandr437}{date=28.09.2010 09:39}{thema=}{post}предлагаю продолжить тему: как сделать так чтобы и год для недели определялся? например 1015, т.е. 2010 год, 15 неделя.{/post}{/quote}  
ГОД()-2000&НОМНЕДЕЛИ(){/post}{/quote} Если было бы все так просто, то было бы не так грстно  :)
 
Это же просто. Типа СЦЕПИТЬ 2 правых символа года и функцию по определению номера недели.  
И будет сегодня 1039.
Страницы: 1 2 След.
Читают тему
Loading...