Номер недели в соответствии с ГОСТ ИСО 8601-2001
AndreTM
Дата: Пятница, 10.05.2013, 20:50 |
Сообщение № 41
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация:
501
±
Замечаний:
0% ±
2003 & 2010
Ага... Моя была такой:
Код
=ОТБР(ОСТАТ((A3-ОСТАТ(A3-2;7)+3);365,25)/7)+1
Ну и лучшая из действующих:
Код
=ОТБР(ОТБР((A3-2)/7)+(12-(1&-ГОД(7*ОТБР((A3-2)/7)+5)))/7)
Код
=INT(INT((A4-2)/7)+(12-(1&-YEAR(7*INT((A4-2)/7)+5)))/7)
Ну и код (уже
опубликованный )
[vba]
Код
Function ISOWeekNum(d As Date) As Long Dim d1 As Date, d2 As Date d2 = d - Weekday(d, vbMonday) + 3 d1 = DateSerial(Year(d2), 1, 1) ISOWeekNum = (d2 - d1) \ 7 + 1 End Function
[/vba]
Ага... Моя была такой:
Код
=ОТБР(ОСТАТ((A3-ОСТАТ(A3-2;7)+3);365,25)/7)+1
Ну и лучшая из действующих:
Код
=ОТБР(ОТБР((A3-2)/7)+(12-(1&-ГОД(7*ОТБР((A3-2)/7)+5)))/7)
Код
=INT(INT((A4-2)/7)+(12-(1&-YEAR(7*INT((A4-2)/7)+5)))/7)
Ну и код (уже
опубликованный )
[vba]
Код
Function ISOWeekNum(d As Date) As Long Dim d1 As Date, d2 As Date d2 = d - Weekday(d, vbMonday) + 3 d1 = DateSerial(Year(d2), 1, 1) ISOWeekNum = (d2 - d1) \ 7 + 1 End Function
[/vba]
AndreTM
Skype: andre.tm.007 Donate: Q iwi: 9517375010
Сообщение отредактировал AndreTM - Пятница, 10.05.2013, 21:15
Ответить
Сообщение Ага... Моя была такой:
Код
=ОТБР(ОСТАТ((A3-ОСТАТ(A3-2;7)+3);365,25)/7)+1
Ну и лучшая из действующих:
Код
=ОТБР(ОТБР((A3-2)/7)+(12-(1&-ГОД(7*ОТБР((A3-2)/7)+5)))/7)
Код
=INT(INT((A4-2)/7)+(12-(1&-YEAR(7*INT((A4-2)/7)+5)))/7)
Ну и код (уже
опубликованный )
[vba]
Код
Function ISOWeekNum(d As Date) As Long Dim d1 As Date, d2 As Date d2 = d - Weekday(d, vbMonday) + 3 d1 = DateSerial(Year(d2), 1, 1) ISOWeekNum = (d2 - d1) \ 7 + 1 End Function
[/vba]
Автор - AndreTM Дата добавления - 10.05.2013 в 20:50
MCH
Дата: Суббота, 11.05.2013, 00:25 |
Сообщение № 42
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация:
752
±
Замечаний:
±
ну и моя:
Код
=ОТБР((A2+5)/7-ОТБР(ДАТА(ГОД(A2-ОСТАТ(A2-2;7)+3);1;2)/7))
можно немного сократить
Код
=ОТБР((A2+5)/7-ОТБР((2&-1&-ГОД(A2-ОСТАТ(A2-2;7)+3))/7))
ну и моя:
Код
=ОТБР((A2+5)/7-ОТБР(ДАТА(ГОД(A2-ОСТАТ(A2-2;7)+3);1;2)/7))
можно немного сократить
Код
=ОТБР((A2+5)/7-ОТБР((2&-1&-ГОД(A2-ОСТАТ(A2-2;7)+3))/7))
MCH
Ответить
Сообщение ну и моя:
Код
=ОТБР((A2+5)/7-ОТБР(ДАТА(ГОД(A2-ОСТАТ(A2-2;7)+3);1;2)/7))
можно немного сократить
Код
=ОТБР((A2+5)/7-ОТБР((2&-1&-ГОД(A2-ОСТАТ(A2-2;7)+3))/7))
Автор - MCH Дата добавления - 11.05.2013 в 00:25
DV
Дата: Суббота, 11.05.2013, 04:34 |
Сообщение № 43
Группа: Друзья
Ранг: Обитатель
Сообщений: 286
Репутация:
194
±
Замечаний:
0% ±
Excel 2010 RUS
Цитата (AndreTM )
Я по вашей "подсказке" придумал формулу на 45/40 знаков, но работает она нормально только в промежутке 2000-2099.
+1 за скобками, поэтому и не работала с диапазоном до 2000 года.
Цитата (AndreTM )
Я по вашей "подсказке" придумал формулу на 45/40 знаков, но работает она нормально только в промежутке 2000-2099.
+1 за скобками, поэтому и не работала с диапазоном до 2000 года.DV
Ответить
Сообщение Цитата (AndreTM )
Я по вашей "подсказке" придумал формулу на 45/40 знаков, но работает она нормально только в промежутке 2000-2099.
+1 за скобками, поэтому и не работала с диапазоном до 2000 года.Автор - DV Дата добавления - 11.05.2013 в 04:34
MCH
Дата: Суббота, 11.05.2013, 08:24 |
Сообщение № 44
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация:
752
±
Замечаний:
±
Цитата (AndreTM )
d2 = d - Weekday(d, vbMonday) + 3
должно быть [vba]Код
d2 = d - Weekday(d, vbMonday) + 4
[/vba]
Цитата (AndreTM )
d2 = d - Weekday(d, vbMonday) + 3
должно быть [vba]Код
d2 = d - Weekday(d, vbMonday) + 4
[/vba]MCH
Ответить
Сообщение Цитата (AndreTM )
d2 = d - Weekday(d, vbMonday) + 3
должно быть [vba]Код
d2 = d - Weekday(d, vbMonday) + 4
[/vba]Автор - MCH Дата добавления - 11.05.2013 в 08:24
AndreTM
Дата: Суббота, 11.05.2013, 17:06 |
Сообщение № 45
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация:
501
±
Замечаний:
0% ±
2003 & 2010
Цитата (MCH )
должно быть d2 = d - Weekday(d, vbMonday) + 4
Уверен? Проверил?
Цитата (MCH )
должно быть d2 = d - Weekday(d, vbMonday) + 4
Уверен? Проверил? AndreTM
Skype: andre.tm.007 Donate: Q iwi: 9517375010
Ответить
Сообщение Цитата (MCH )
должно быть d2 = d - Weekday(d, vbMonday) + 4
Уверен? Проверил? Автор - AndreTM Дата добавления - 11.05.2013 в 17:06
Rustem
Дата: Суббота, 11.05.2013, 17:21 |
Сообщение № 46
Группа: Проверенные
Ранг: Обитатель
Сообщений: 281
Репутация:
48
±
Замечаний:
0% ±
Excel 2013
Моя такая: Код
=1+ОТБР((A2-("5.1."&ГОД(A2-1))+ДЕНЬНЕД("3.1."&ГОД(A2-1)))/7)
Даты приведенные в файле МСН находит, на других не проверял.
Моя такая: Код
=1+ОТБР((A2-("5.1."&ГОД(A2-1))+ДЕНЬНЕД("3.1."&ГОД(A2-1)))/7)
Даты приведенные в файле МСН находит, на других не проверял. Rustem
WMR: R183220163895
Ответить
Сообщение Моя такая: Код
=1+ОТБР((A2-("5.1."&ГОД(A2-1))+ДЕНЬНЕД("3.1."&ГОД(A2-1)))/7)
Даты приведенные в файле МСН находит, на других не проверял. Автор - Rustem Дата добавления - 11.05.2013 в 17:21
MCH
Дата: Суббота, 11.05.2013, 18:58 |
Сообщение № 47
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация:
752
±
Замечаний:
±
Цитата (AndreTM )
Уверен? Проверил?
Обижаешь, конечно проверил В формуле используется ДЕНЬНЕД(A3;3), которая возвращает значения 0(Пн) - 6(Вс) А в UDF - Weekday(d, vbMonday), возвращающая 1(Пн) - 7(Вс)
Цитата (AndreTM )
Уверен? Проверил?
Обижаешь, конечно проверил В формуле используется ДЕНЬНЕД(A3;3), которая возвращает значения 0(Пн) - 6(Вс) А в UDF - Weekday(d, vbMonday), возвращающая 1(Пн) - 7(Вс)MCH
Ответить
Сообщение Цитата (AndreTM )
Уверен? Проверил?
Обижаешь, конечно проверил В формуле используется ДЕНЬНЕД(A3;3), которая возвращает значения 0(Пн) - 6(Вс) А в UDF - Weekday(d, vbMonday), возвращающая 1(Пн) - 7(Вс)Автор - MCH Дата добавления - 11.05.2013 в 18:58
AndreTM
Дата: Четверг, 16.05.2013, 04:47 |
Сообщение № 48
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация:
501
±
Замечаний:
0% ±
2003 & 2010
А, да, чего-то это я туплю... Ведь изначальный вариант был именно с +4, но где-то я потом при проверках изменил - так и осталось. Даже странно, что не всплыло у меня при тестировании. А, точно, нашел - скопипастил из разработки (там-то на текущем годе считало правильно) на Планету, затем скопировал с Планеты сюда...
А, да, чего-то это я туплю... Ведь изначальный вариант был именно с +4, но где-то я потом при проверках изменил - так и осталось. Даже странно, что не всплыло у меня при тестировании. А, точно, нашел - скопипастил из разработки (там-то на текущем годе считало правильно) на Планету, затем скопировал с Планеты сюда... AndreTM
Skype: andre.tm.007 Donate: Q iwi: 9517375010
Сообщение отредактировал AndreTM - Четверг, 16.05.2013, 05:06
Ответить
Сообщение А, да, чего-то это я туплю... Ведь изначальный вариант был именно с +4, но где-то я потом при проверках изменил - так и осталось. Даже странно, что не всплыло у меня при тестировании. А, точно, нашел - скопипастил из разработки (там-то на текущем годе считало правильно) на Планету, затем скопировал с Планеты сюда... Автор - AndreTM Дата добавления - 16.05.2013 в 04:47