Никак не могу понять почему на понедельник ставится 26 декабря)))) Понимаю, что это правильно. А вот почему так вычисляется понять не могу. Т.е что от чего отнимается.. в результате чего получается 26 декабря...
Добрый день. Помогите разобраться. Объясните, пожалуйста, как работает эта формула..
Никак не могу понять почему на понедельник ставится 26 декабря)))) Понимаю, что это правильно. А вот почему так вычисляется понять не могу. Т.е что от чего отнимается.. в результате чего получается 26 декабря...Tviga
Из даты 1го дня 2012 года вычитается количество дней, прошедших после понедельника. Как ни удивительно, полученная, таким образом дата (какой день ни бери за исходный) всегда выпадает на понедельник!
Из даты 1го дня 2012 года вычитается количество дней, прошедших после понедельника. Как ни удивительно, полученная, таким образом дата (какой день ни бери за исходный) всегда выпадает на понедельник! Формуляр
Объясните, пожалуйста, как работает эта формула.. =ДАТАЗНАЧ(СЦЕПИТЬ("01.01."; $A$1))-ДЕНЬНЕД(ДАТАЗНАЧ(СЦЕПИТЬ("01.01."; $A$1));3)
Вообще-то, все намного проще - =("1.1."& $A$1)-ДЕНЬНЕД("1.1."& $A$1;3) объяснялка 1) "1.1."& $A$1 - сцепляет 1.1. и год в ячейке А1 - получаем 1.1.2012 или, что то же самое, 01.01.2012 - первый день года 2) Функция ДЕНЬНЕД возвращает день недели, соответствующий датею Тип возвращаемого числа (у нас это 3 - ДЕНЬНЕД(...,3)) показывает, от какого дня начинаем считать и каким числом считается первый день. 3 - это "Число от 0 (понедельник) до 6 (воскресенье)" (см. справку в Excel) 3) Если от 1) отнять 2) - то получим последний понедельник прошлого года (или первое число текущего, если это понедельник)
Quote
А если я захочу просчитать последний вторник прошлого года
Для календаря нам последний вторник не нужен. Нам нужен именно понедельник той недели, в которую входит 01 января. ДЕНЬНЕД("1.1."& $A$1;3) дает 0 для понедельника, 1 для вторника, ... следовательно, если первое января будет понедельником, то ДЕНЬНЕД будет нулем и общая формула (которая показывает дату понедельника той недели, в которую входит первое января) даст нам именно первое января если первое января - вторник, то ДЕНЬНЕД даст нам единицу, а 01/01/2012 минус 1 день будет 31/12/2011 - это понедельник той недели, в которую входит первое января ... если первое января - суббота, то ДЕНЬНЕД даст нам 6 (и действительно, от понедельника субботу отделяет 6 дней), а 01/01/2012 минус 6 дней будет 26/12/2011 - это понедельник той недели, в которую входит первое января Так понятнее?
Quote
Объясните, пожалуйста, как работает эта формула.. =ДАТАЗНАЧ(СЦЕПИТЬ("01.01."; $A$1))-ДЕНЬНЕД(ДАТАЗНАЧ(СЦЕПИТЬ("01.01."; $A$1));3)
Вообще-то, все намного проще - =("1.1."& $A$1)-ДЕНЬНЕД("1.1."& $A$1;3) объяснялка 1) "1.1."& $A$1 - сцепляет 1.1. и год в ячейке А1 - получаем 1.1.2012 или, что то же самое, 01.01.2012 - первый день года 2) Функция ДЕНЬНЕД возвращает день недели, соответствующий датею Тип возвращаемого числа (у нас это 3 - ДЕНЬНЕД(...,3)) показывает, от какого дня начинаем считать и каким числом считается первый день. 3 - это "Число от 0 (понедельник) до 6 (воскресенье)" (см. справку в Excel) 3) Если от 1) отнять 2) - то получим последний понедельник прошлого года (или первое число текущего, если это понедельник)
Quote
А если я захочу просчитать последний вторник прошлого года
Для календаря нам последний вторник не нужен. Нам нужен именно понедельник той недели, в которую входит 01 января. ДЕНЬНЕД("1.1."& $A$1;3) дает 0 для понедельника, 1 для вторника, ... следовательно, если первое января будет понедельником, то ДЕНЬНЕД будет нулем и общая формула (которая показывает дату понедельника той недели, в которую входит первое января) даст нам именно первое января если первое января - вторник, то ДЕНЬНЕД даст нам единицу, а 01/01/2012 минус 1 день будет 31/12/2011 - это понедельник той недели, в которую входит первое января ... если первое января - суббота, то ДЕНЬНЕД даст нам 6 (и действительно, от понедельника субботу отделяет 6 дней), а 01/01/2012 минус 6 дней будет 26/12/2011 - это понедельник той недели, в которую входит первое января Так понятнее?_Boroda_
А если я захочу просчитать последний вторник прошлого года?
Со Вторником сложнее маненько: WEEKDAY(x,3) для вторника даст 1, чтобы при этом вычетался 0 нужно прибавить +1, диапазон значений для (1-WEEKDAY(x,3)) получится от -5 до 1, а +1 это уже не предыдущий Вт, а следующий. Так что, вместо этого придётся взять -MOD(6 + WEEKDAY(x,3), 7)
Quote (Tviga)
значит выходит 01.01.12 - 6 и получается 26.12.11
Выходит, что так:)
Quote (Tviga)
т.е от первого дня года отнимаем неделю???
Почему неделю-то? Неделя, вроде, 7 дней?
Quote (Tviga)
А если я захочу просчитать последний вторник прошлого года?
Со Вторником сложнее маненько: WEEKDAY(x,3) для вторника даст 1, чтобы при этом вычетался 0 нужно прибавить +1, диапазон значений для (1-WEEKDAY(x,3)) получится от -5 до 1, а +1 это уже не предыдущий Вт, а следующий. Так что, вместо этого придётся взять -MOD(6 + WEEKDAY(x,3), 7) Формуляр
я поняла, в каком месте мне было не понятно... Именно в том месте "откуда он знает" что 01/01/12 это воскресенье. Теперь все встало на свои места))) и формула понятна в полном объеме. Остается сказать одно - нет предела совершенству)))!!
Ребята, огромное спасибо))
я поняла, в каком месте мне было не понятно... Именно в том месте "откуда он знает" что 01/01/12 это воскресенье. Теперь все встало на свои места))) и формула понятна в полном объеме. Остается сказать одно - нет предела совершенству)))!!Tviga