usto-excel

блог об Excel и не только

Html

СЕГОДНЯ(), ДЕНЬНЕД()

Комментариев нет :
Вспомним наш пример, когда мы с помощью функции СЦЕПИТЬ() соединяли текст с датой. Тогда нам удалось сделать так, чтобы при изменении дат в ячейках "H2" и "I2", значения в других ячейках содержащих дату автоматически изменялись.



Теперь пойдём дальше, и сделаем так, чтобы даты в ячейках "H2" и "I2" автоматически менялись каждый день.
Для начала вставим в ячейку "I2" формулу "=СЕГОДНЯ()". Теперь, каждый день дата в этой ячейке будет меняться автоматически. 
Далее в ячейку "H2" вставим формулу "=СЕГОДНЯ()-1". То есть формула будет отнимать один день от сегодняшней даты и показывать предыдущий день. Однако, так как у нас в неделе 5 рабочих дней, следовательно нам нужно, чтобы в понедельник формула показывала нам в качестве предыдущего дня не воскресную дату а пятничную.Узнать на какой день недели приходится та или иная дата мы можем с помощью функции ДЕНЬНЕД(дата; тип). Как видим у фунции ДЕНЬНЕД() два аргумента и если с аргументом "дата" всё понятно, то для определения подходящего аргумента "тип" нужно свериться со справочной таблицей (скриншот №2). Для простоты используем тип №2 в котором неделя начинается с понедельника "=ДЕНЬНЕД(СЕГОДНЯ()-1;2)".


Далее с помощью функции ЕСЛИ() зададим условие, чтобы когда значение формулы "=ДЕНЬНЕД(СЕГОДНЯ()-1;2)" равняется 7 (воскресенье) в ячейке "H2" отображалась дата приходящаяся на пятницу (СЕГОДНЯ()-3).
В итоге получаем формулу "=ЕСЛИ(ДЕНЬНЕД(СЕГОДНЯ()-1;2)=7;СЕГОДНЯ()-3;СЕГОДНЯ()-1)".


Теперь, даты в ячейках "H2" и "I2" будут автоматически меняться в соответствии с днями недели.