Как в Excel создать универсальный календарь при помощи простой формулы

Если вам нужен календарь на листе Microsoft Excel, то у вас есть много разных способов – от кропотливого вбивания дат вручную до подключения всплывающих календарей из различных надстроек и макросов. Еще один вариант – реализовать универсальный календарь на любую дату с помощью всего одной (правда, весьма страшной с непривычки) формулы массива.

Чтобы ее использовать, создайте на листе заготовку вот такого вида.

Создайте на листе заготовку

Создайте на листе заготовку

Дата в ячейке B2 может быть любой, тут важен только месяц и год. В ячейках диапазона B3:H3 могут быть названия дней недели в любом подходящем формате.
Теперь выделите диапазон B4:H9 и введите туда вот такую формулу:

=ЕСЛИ(МЕСЯЦ(ДАТА(ГОД(B2);МЕСЯЦ(B2);1)) <>МЕСЯЦ(ДАТА(ГОД(B2);МЕСЯЦ(B2);1)- (ДЕНЬНЕД(ДАТА(ГОД(B2);МЕСЯЦ(B2);1);2)-1) +{0:1:2:3:4:5}*7+{1;2;3;4;5;6;7}-1);" "; ДАТА(ГОД(B2);МЕСЯЦ(B2);1)- (ДЕНЬНЕД(ДАТА(ГОД(B2);МЕСЯЦ(B2);1);2)-1) +{0:1:2:3:4:5}*7+{1;2;3;4;5;6;7}-1)

В английском варианте это будет:

=IF(MONTH(DATE(YEAR(B2);MONTH(B2);1)) <>MONTH(DATE(YEAR(B2);MONTH(B2);1)- (WEEKDAY(DATE(YEAR(B2);MONTH(B2);1))-1)+{0;1;2;3;4;5}*7+{1,2,3,4,5,6,7}-1);””; DATE(YEAR(B2);MONTH(B2);1)- (WEEKDAY(DATE(YEAR(B2);MONTH(B2);1))-1)+{0;1;2;3;4;5}*7+{1,2,3,4,5,6,7}-1)

Затем нажмите сочетание Ctrl+Shift+Enter, чтобы ввести эту формулу как формулу массива. Все выделенные ячейки должны заполниться датами заданного в B2 месяца.

Нажмите сочетание Ctrl+Shift+Enter

Нажмите сочетание Ctrl+Shift+Enter

Останется только навести внешний блеск, добавив форматирование и скрыв день в заголовке B2 и месяц и год в остальных ячейках с помощью окна Формат ячеек (Ctrl+1).

Наведите внешний блеск

Наведите внешний блеск

Top