Количество определенных дней недели в месяце

Автор dvi73, 16.09.2014, 21:06

« назад - далее »

dvi73

Подскажите пожалуйста, как определить количество, например, вторников в текущем месяце в Excel 2003. Заранее благодарю за ответы.

MCH


vikttur

А у меня такое родилось:
=ИЛИ(ДЕНЬНЕД(КОНМЕСЯЦА(A1;0)-{0;1;2};2)*(ДЕНЬ(КОНМЕСЯЦА(A1;0))>{28;29;30})=B1)+4
A1 - дата, B1 - день недели (число)

MCH

Выложу повторно в xls, т.к. просили для 2003

Ссылка на похожую тему http://www.excelworld.ru/forum/2-4348-1

zs

=ЕСЛИ(ДЕНЬ(КОНМЕСЯЦА(C1;0))-ДЕНЬ(C1)+1-(ЦЕЛОЕ((ДЕНЬ(КОНМЕСЯЦА(C1;0))-ДЕНЬ(C1)+1)/7)*7)>=2;ЦЕЛОЕ((ДЕНЬ(КОНМЕСЯЦА(C1;0))-ДЕНЬ(C1)+1)/7)+1;ЦЕЛОЕ((ДЕНЬ(КОНМЕСЯЦА(C1;0))-ДЕНЬ(C1)+1)/7))
где С1-начальная дата
С уважением, ZS5

IKor

С учетом того, что в любом месяце (даже в феврале) может быть либо 4, либо 5 "вторников" в зависимости от того, с какого дня недели начинается месяц и каким днем недели он заканчивается, то решение задачи можно решить "в лоб":

=3+(ДЕНЬНЕД(КОНМЕСЯЦА(B1;-1)+1;2)<=A1)+(ДЕНЬНЕД(КОНМЕСЯЦА(B1;0);2)>=A1)

здесь:
- в ячейке А1 записано число от 1 до 7 (1 =>  ПН)
- в ячейке B1 записана любая дата интересующего нас месяца, например =СЕГОДНЯ()
- функции ДЕНЬНЕД(КОНМЕСЯЦА(...);2) - возвращают порядковые номера первого и последнего дня выбранного месяца
- функция сравнения возвращает значение ИСТИНА при выполнении соответствующего условия или ЛОЖЬ в противном случае. В математических выражениях этим значениям соответствуют значения 1 и 0.

vikttur

IKor, формула не учитывает вариант, когда три последних дня месяца Сб, Вс и Пн (в 2014 это март и июнь)

IKor

Согласен...
Придется модифицировать функцию...
=4+(ДЕНЬНЕД(КОНМЕСЯЦА(B1;-1)+1;2)<=A1)*(ДЕНЬНЕД(КОНМЕСЯЦА(B1;0);2)>=A1)

dvi73

Огромное спасибо всем за ответы, буду с этим разбираться!
Но, к сожалению, я неправильно сформулировал мою задачу. :( Мне надо узнать сколько вторников осталось до конца месяца начиная с текущего дня. Может быть поможете мне найти решение. Заранее благодарю всех за советы.

vikttur

IKor, в такой редакции не всегда правильно определяются понедельник и суббота.

MCH

в A1 дата, в B1 - день недели (от1 до 7)
=СУММПРОИЗВ(--(ДЕНЬНЕД(СТРОКА(ИНДЕКС(A:A;A1):ИНДЕКС(A:A;ДАТА(ГОД(A1);МЕСЯЦ(A1)+1;)));2)=B1))

dvi73

MCH, огромное спасибо! Все работает.

MCH

Еще вариант (более предпочтительный)
=ЦЕЛОЕ((ДАТА(ГОД(A1);МЕСЯЦ(A1)+1;7)-A1-ОСТАТ(B1-A1+1;7))/7)

zs

=ЕСЛИ(ДЕНЬ(КОНМЕСЯЦА(ТДАТА();0))-ДЕНЬ(ТДАТА())+1-(ЦЕЛОЕ((ДЕНЬ(КОНМЕСЯЦА(ТДАТА();0))-ДЕНЬ(ТДАТА())+1)/7)*7)>=B1;ЦЕЛОЕ((ДЕНЬ(КОНМЕСЯЦА(ТДАТА();0))-ДЕНЬ(ТДАТА())+1)/7)+1;ЦЕЛОЕ((ДЕНЬ(КОНМЕСЯЦА(ТДАТА();0))-ДЕНЬ(ТДАТА())+1)/7))
или
=ЦЕЛОЕ((ДАТА(ГОД(ТДАТА());МЕСЯЦ(ТДАТА())+1;7)-ТДАТА()-ОСТАТ(КОНМЕСЯЦА(ТДАТА();0)-B1+1;7))/7)
где В1- день недели

IKor

Цитата: vikttur от 17.09.2014, 20:52
IKor, в такой редакции не всегда правильно определяются понедельник и суббота.
Ну так ведь спрашивали про вторники же!!! :)
К сожалению, для учета второй области возможных пятых_дней_недели приходится значительно увеличивать количество символов формулы... поэтому красивого решения пока не получается. Жаль :(