Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/календарь - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
календарь
Tviga Дата: Понедельник, 12.03.2012, 12:00 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 147
Репутация: 20 ±
Замечаний: 0% ±

Добрый день.
Помогите разобраться.
Объясните, пожалуйста, как работает эта формула..

=ДАТАЗНАЧ(СЦЕПИТЬ("01.01."; $A$1))-ДЕНЬНЕД(ДАТАЗНАЧ(СЦЕПИТЬ("01.01."; $A$1));3)

Никак не могу понять почему на понедельник ставится 26 декабря)))) Понимаю, что это правильно. А вот почему так вычисляется понять не могу.
Т.е что от чего отнимается.. в результате чего получается 26 декабря...
К сообщению приложен файл: 9012184.xls (17.0 Kb)
 
Ответить
СообщениеДобрый день.
Помогите разобраться.
Объясните, пожалуйста, как работает эта формула..

=ДАТАЗНАЧ(СЦЕПИТЬ("01.01."; $A$1))-ДЕНЬНЕД(ДАТАЗНАЧ(СЦЕПИТЬ("01.01."; $A$1));3)

Никак не могу понять почему на понедельник ставится 26 декабря)))) Понимаю, что это правильно. А вот почему так вычисляется понять не могу.
Т.е что от чего отнимается.. в результате чего получается 26 декабря...

Автор - Tviga
Дата добавления - 12.03.2012 в 12:00
Формуляр Дата: Понедельник, 12.03.2012, 12:31 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 832
Репутация: 255 ±
Замечаний: 0% ±

Excel 2003, 2013
Из даты 1го дня 2012 года вычитается количество дней, прошедших после понедельника.
Как ни удивительно, полученная, таким образом дата (какой день ни бери за исходный) всегда выпадает на понедельник! biggrin


Excel 2003 EN, 2013 EN
 
Ответить
СообщениеИз даты 1го дня 2012 года вычитается количество дней, прошедших после понедельника.
Как ни удивительно, полученная, таким образом дата (какой день ни бери за исходный) всегда выпадает на понедельник! biggrin

Автор - Формуляр
Дата добавления - 12.03.2012 в 12:31
Tviga Дата: Понедельник, 12.03.2012, 12:36 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 147
Репутация: 20 ±
Замечаний: 0% ±

т.е если как будто 01.01.2012 это понедельник, то предыдущий понедельник это 26 декабря?? так??
 
Ответить
Сообщениет.е если как будто 01.01.2012 это понедельник, то предыдущий понедельник это 26 декабря?? так??

Автор - Tviga
Дата добавления - 12.03.2012 в 12:36
Формуляр Дата: Понедельник, 12.03.2012, 12:54 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 832
Репутация: 255 ±
Замечаний: 0% ±

Excel 2003, 2013
Quote (Tviga)
т.е если как будто 01.01.2012 это понедельник, то предыдущий понедельник это 26 декабря?? так??

Нет.
Если бы это был понедельник, результат был бы равен исходной дате 01.01.2012, поскольку после понедельника прошло 0 дней.


Excel 2003 EN, 2013 EN
 
Ответить
Сообщение
Quote (Tviga)
т.е если как будто 01.01.2012 это понедельник, то предыдущий понедельник это 26 декабря?? так??

Нет.
Если бы это был понедельник, результат был бы равен исходной дате 01.01.2012, поскольку после понедельника прошло 0 дней.

Автор - Формуляр
Дата добавления - 12.03.2012 в 12:54
_Boroda_ Дата: Понедельник, 12.03.2012, 13:20 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 16715
Репутация: 6504 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
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_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
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_
Дата добавления - 12.03.2012 в 13:20
Tviga Дата: Понедельник, 12.03.2012, 13:55 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 147
Репутация: 20 ±
Замечаний: 0% ±

понимаю, что вопрос глупый...но все же)))

получается что... 01.01.2012 - первый день года

ДЕНЬНЕД("1.1."& $A$1;3) получается 6

значит выходит 01.01.12 - 6 и получается 26.12.11

т.е от первого дня года отнимаем неделю???

А если я захочу просчитать последний вторник прошлого года? То тогда как? Может в сравнении до меня быстрее дойдет
 
Ответить
Сообщениепонимаю, что вопрос глупый...но все же)))

получается что... 01.01.2012 - первый день года

ДЕНЬНЕД("1.1."& $A$1;3) получается 6

значит выходит 01.01.12 - 6 и получается 26.12.11

т.е от первого дня года отнимаем неделю???

А если я захочу просчитать последний вторник прошлого года? То тогда как? Может в сравнении до меня быстрее дойдет

Автор - Tviga
Дата добавления - 12.03.2012 в 13:55
Tviga Дата: Понедельник, 12.03.2012, 14:32 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 147
Репутация: 20 ±
Замечаний: 0% ±

да))))) как всегда спасибо!!!
очень доступно))) для "особо одаренных"

значит Excel заведомо знает.. что 01/01/12 это воскресенье?????!!!!! если да... то страшно спросить откуда..
 
Ответить
Сообщениеда))))) как всегда спасибо!!!
очень доступно))) для "особо одаренных"

значит Excel заведомо знает.. что 01/01/12 это воскресенье?????!!!!! если да... то страшно спросить откуда..

Автор - Tviga
Дата добавления - 12.03.2012 в 14:32
Формуляр Дата: Понедельник, 12.03.2012, 14:34 | Сообщение № 8
Группа: Друзья
Ранг: Ветеран
Сообщений: 832
Репутация: 255 ±
Замечаний: 0% ±

Excel 2003, 2013
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)
К сообщению приложен файл: 4140925.xls (23.5 Kb)


Excel 2003 EN, 2013 EN
 
Ответить
Сообщение
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)

Автор - Формуляр
Дата добавления - 12.03.2012 в 14:34
Serge_007 Дата: Понедельник, 12.03.2012, 14:40 | Сообщение № 9
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (Tviga)
значит Excel заведомо знает.. что 01/01/12 это воскресенье?????!!!!! если да... то страшно спросить откуда..
В Excel заложен календарь. Причём очень простой. Читайте здесь о том как Excel хранит даты


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (Tviga)
значит Excel заведомо знает.. что 01/01/12 это воскресенье?????!!!!! если да... то страшно спросить откуда..
В Excel заложен календарь. Причём очень простой. Читайте здесь о том как Excel хранит даты

Автор - Serge_007
Дата добавления - 12.03.2012 в 14:40
Tviga Дата: Понедельник, 12.03.2012, 14:47 | Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 147
Репутация: 20 ±
Замечаний: 0% ±

Ребята, огромное спасибо))

я поняла, в каком месте мне было не понятно... Именно в том месте "откуда он знает" что 01/01/12 это воскресенье. Теперь все встало на свои места))) и формула понятна в полном объеме.
Остается сказать одно - нет предела совершенству)))!!
 
Ответить
СообщениеРебята, огромное спасибо))

я поняла, в каком месте мне было не понятно... Именно в том месте "откуда он знает" что 01/01/12 это воскресенье. Теперь все встало на свои места))) и формула понятна в полном объеме.
Остается сказать одно - нет предела совершенству)))!!

Автор - Tviga
Дата добавления - 12.03.2012 в 14:47
Формуляр Дата: Понедельник, 12.03.2012, 16:07 | Сообщение № 11
Группа: Друзья
Ранг: Ветеран
Сообщений: 832
Репутация: 255 ±
Замечаний: 0% ±

Excel 2003, 2013
Quote (Tviga)
Теперь все встало на свои места))) и формула понятна в полном объеме.

Ну, раз вы во всём разобрались, вот вам сокращённый вариант формулы для вторника:
Code
= DATE($A$1,1,1) - MOD( DATE($A$1,1,1) - 3, 7 )


Призовая игра smile
К сообщению приложен файл: 0921646.xls (23.5 Kb)


Excel 2003 EN, 2013 EN
 
Ответить
Сообщение
Quote (Tviga)
Теперь все встало на свои места))) и формула понятна в полном объеме.

Ну, раз вы во всём разобрались, вот вам сокращённый вариант формулы для вторника:
Code
= DATE($A$1,1,1) - MOD( DATE($A$1,1,1) - 3, 7 )


Призовая игра smile

Автор - Формуляр
Дата добавления - 12.03.2012 в 16:07
Tviga Дата: Понедельник, 12.03.2012, 16:21 | Сообщение № 12
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 147
Репутация: 20 ±
Замечаний: 0% ±

за призовую игру отдельное СПАСИБО.. только вот моя "приставка" на английском не понимает)))

надеюсь я правильно перевила??

= ДАТА($A$1;1;1) - ОСТАТ(ДАТА($A$1;1;1) - 3;7 )
 
Ответить
Сообщениеза призовую игру отдельное СПАСИБО.. только вот моя "приставка" на английском не понимает)))

надеюсь я правильно перевила??

= ДАТА($A$1;1;1) - ОСТАТ(ДАТА($A$1;1;1) - 3;7 )

Автор - Tviga
Дата добавления - 12.03.2012 в 16:21
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!