Создание календаря в Excel на год
Создание календаря в Excel на целый год с указанием праздничных и выходных дней. Вы можете сразу скачать календарь в Excel или же потратить 15 минут и научиться делать его самостоятельно, параллельно открыв для себя новые возможности Excel.
Готовый результат
Для тех, кто просто хочет скачать календарь в Excel на текущий год, на картинке ниже показан как он выглядит. Красным отмечены праздничные дни, розовым — выходные. Текущий день, также автоматически выделяется заливкой.
Добавил календарь на 2021 год с праздниками и выходными в соответствии с постановлением правительства.
Пошаговая инструкция создания календаря в Excel
Сейчас мы создадим автоматический календарь который пригодится не только на текущий год, но и на все последующие года. И для этого нам не понадобятся макросы и программирование. Все что я покажу — сделано с использованием стандартных возможностей Excel.
Делаем заголовки
В ячейку A1 вбиваем следующую формулу: =»Календарь на » & ГОД(СЕГОДНЯ()) & » год». Функция СЕГОДНЯ() возвращает текущую дату (мы часто будем ей пользоваться). Соответственно связка функций ГОД(СЕГОДНЯ()) возвратит нам текущий год.
Теперь создадим заголовки месяцев. В ячейку где стоит Январь запишем следующую формулу =ДАТА(ГОД(СЕГОДНЯ());1;1). Эта функция возвращает первое января текущего года (01.01.2015 в моем случае). Применим к этой ячейке такой формат, чтобы отображалось только название месяца. Для этого откроем формат ячеек сочетанием клавиш Ctrl + 1 и выберем соответствующий формат (см. рисунок).
Для создания заголовков последующих месяцев будем использовать еще одну очень полезную функцию =ДАТАМЕС(B3;1). Эта функция возвращает дату отстоящую от указанной на заданное число месяцев (в нашем случае на один). Таким образом, у нас получается следующая картина (дополнительно я добавил немного форматирования):
Проставляем числа
Для автоматического проставления чисел в календаре мы будем использовать всего одну формулу — формулу массива. На вид звучит страшновато, но если разобраться — все легко и просто. Выделяем ячейки B5:H10 и вводим следующую формулу (не спешим жать Enter):
=ДАТА(ГОД(B3);МЕСЯЦ(B3);1-1)-(ДЕНЬНЕД(ДАТА(ГОД(B3);МЕСЯЦ(B3);1-1))-1)+*7+
Вместо Enter нажимаем сочетание клавиш Ctrl+Shift+Enter, вставляя таким образом формула массива. В результате в выделенном диапазоне получаем числа указанного в ячейке B3 месяца.
Аналогичную операцию проводим с другими месяцами или просто копируем диапазон дат января в следующие месяца. Получаем следующую картину:
Форматируем
Отформатируем ячейки таким образом, чтобы они содержали только числа (а не полностью даты). Выделяем даты, открываем формат ячеек (Ctrl+1) и вводим вручную следующий формат:
Календарь принимает все более привычный вид.
Добавляем условного форматирования
Сейчас в январе календарь содержит даты 29, 30, 31 декабря, а также часть дат февраля. Давайте немного скроем эти числа. Для этого будем использовать условное форматирование. Выделяем ячейки B5:H10 и создаем правило условного форматирования. Форматироваться будут ячейки, для которых следующая формула будет являться ИСТИНОЙ:
=И(МЕСЯЦ(B5)<>1+3*(ЧАСТНОЕ(СТРОКА(B5)-5;9))+ЧАСТНОЕ(СТОЛБЕЦ(B5);9))
В качестве формата я выбрал серый текст шрифта и получил следующую картину:
Автоматически выделяем текущую дату в календаре
Для этого создаем еще одно правило условного форматирования. Ячейка будет форматироваться только в том случае, если ее значение будет равно текущей дате (=СЕГОДНЯ()):
Выделим выходные дни в календаре Excel
На этот раз обойдемся обычной заливкой ячеек. Выбирайте на свой вкус. У меня получилось так:
Добавляем праздничные дни
Создадим новый лист Excel (Праздники) и добавим на него умную таблицу со столбцом Праздничные дни. В этот столбец занесем все праздничные дни. Я это уже сделал, можете спокойно копировать и использовать.
Вернемся в наш календарь и создадим еще одно правило условного форматирования. Формула условного форматирования будет проверять является ли дата праздником. И в случае если формула вернет ИСТИНА ячейка будет форматироваться. Вот эта формула:
=НЕ(ЕОШИБКА(ПОИСКПОЗ(B5;ДВССЫЛ(«Праздники[Праздничные дни]»);0))). Стоит отметить, что при добавлении или изменении праздничных дней, календарь будет автоматически форматироваться.
Осталось скопировать ячейки B5:H10 в другие месяца и наш автоматический календарь готов и может служить нам не один год.
Изменение цветовой гаммы календаря Excel
Если при создании календаря использовать цвета темы, то потом их можно будет изменить одним простым движением. Просто сменив цвета темы на вкладке Разметка страницы. Выбирайте понравившийся.
P.S.
В архив для скачивания помимо моего календаря, буду складывать календари других пользователей. Поблагодарить их можно ниже в комментариях. Если у вас также есть чем поделиться, укажите ссылку на свой вариант календаря в комментарии, я с удовольствием его добавлю.
Создание календаря на основе шаблона
Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Excel для Mac 2011 Еще. Меньше
Многие шаблоны календарей можно использовать в Excel. Шаблон содержит базовый макет календаря, который можно легко адаптировать под свои нужды.
Вы можете скачать шаблоны календарей с полезными и творческими темами при нажатии кнопки Файл >в Excel .

- Выберите Поиск шаблонов в Сети,введите календарьи выберите увеличительное стекло.
- Щелкните шаблон, который вас интересует, и нажмите кнопку Создать.
Какую версию Excel вы используете?
- Какую версию Excel вы используете?
- Более новые версии
- Excel для Mac 2011
- В меню Файл выберите команду Создать из шаблона.
- В правой части окна поиска Поиск по всем шаблонам введите Календарь.
- Выберите нужный шаблон календаря и нажмите кнопку Создать. Вы можете легко применить собственный внешний вид к календарю. Шаблоны календарей отформатированы с помощью тем, позволяющих применить шрифты, цвета и эффекты форматирования рисунков во всей книге одним щелчком мыши. На вкладке Разметка страницы в области Темы выберите один из десятков встроенных тем, доступных в коллекции Темы, или найдите параметры, чтобы изменить только шрифты темы или цвета темы.
Важно: Формулы существуют во всех ячейках, которые отображают дату, а также в ячейках в строках дат, которые отображаются пустыми. Эти формулы позволяют календарю обновляться автоматически. Если вручную изменить данные в этих ячейках, календарь больше не сможет обновляться автоматически.
Совет: Вы также можете искать другие шаблоны календарей в Интернете. Шаблоны скачиваются во временную папку на компьютере. Вы можете сразу сохранить шаблон в другом месте, чтобы его было проще найти. Чтобы быстро найти все шаблоны календарей, доступные на сайте Office.com или на компьютере, в поле поиска Excel коллекции книг введите календарь.
Вы можете легко применить собственный внешний вид к календарю. Шаблоны календарей отформатированы с помощью тем, позволяющих применить шрифты, цвета и эффекты форматирования рисунков во всей книге одним щелчком мыши. На вкладке Главная в областиТемы выберите из десятков встроенных тем, доступных в коллекции Темы, или найдите параметры, чтобы изменить только шрифты темы или цвета темы.
Важно: Формулы существуют во всех ячейках, которые отображают дату, а также в ячейках в строках дат, которые отображаются пустыми. Эти формулы позволяют календарю обновляться автоматически. Если вручную изменить данные в этих ячейках, календарь больше не сможет обновляться автоматически.
Создание ежегодного календаря на одну страницу
Важно: Формулы существуют во всех ячейках, включая ячейки, которые отображаются пустыми. Эти формулы позволяют календарю обновляться автоматически. Если вручную изменить данные в ячейках, календарь больше не сможет обновляться автоматически.
- В меню Файл выберите команду Создать из шаблона.
- В области навигации слева в области шаблоновщелкните Управление временем.
- Дважды щелкните шаблон «Календарь на одну страницу». Excel открывает новый лист, основанный на шаблоне ежегодного календаря на одну страницу.
- Щелкните ячейку с отображением года, а затем во всплываемом списке выберите нужный год. При выборе нужного изменения лист календаря автоматически обновляется.
Примечание: Чтобы изменить год, доступный в списке, измените данные на листе «Список подытогов».
Создание многослойного ежемесячного календаря
Многоэтапная книга календаря содержит двенадцать месяцев в одной книге, что удобно для личного планирования или ссылки на даты на любой год. Вы можете добавить собственный текст в более высокие ячейки под каждой ячейкой даты.
- В меню Файл выберите команду Создать из шаблона.
- В области навигации слева в области шаблоновщелкните Управление временем.
- Дважды щелкните шаблон Много страниц календаря. Excel открывает новую книгу, основанную на шаблоне ежемесячного календаря на несколько листов.
- Щелкните ячейку K1 и во всплываемом списке выберите нужный календарный год. При выборе окне автоматически обновляются листы календарей для всех месяцев в книге.
Примечание: Чтобы изменить год, доступный в списке, измените данные на листе «Список подытогов».
Примечание: При изменении года в календаре, который содержит настраиваемые сведения, пользовательские сведения, которые существовали в календаре, не изменяют расположение ячейки при изменении дат.
См. также
Создавать письма в Интернете можно быстро и легко.
Выберите один из шаблонов календарей иоткройте его в программе Office в Интернете, чтобы сделать его своим (некоторые календари можно редактировать в Excel в Интернете, другие — в Word в Интернете, а другие — в Веб-приложение PowerPoint ).
Совет: Если вы уже Excel в Интернете, чтобы увидеть все шаблоны календаря, перейдите в файл > New, а затем под изображениями шаблонов щелкните Ссылки на Office.com.

Вы будете на странице Шаблоны для Excel. В списке категорий выберите Календари.
В процессе работы над письмом, возможно, понадобится переименовать его.
Предоставление доступа к календарю
Когда все будет готово, распечатайте письмо или отправьте его в электронном виде. Это можно сделать, если календарь по-прежнему открыт в Excel в Интернете. Нет необходимости предварительно сохранять его (это уже сделано за вас).
печать
Чтобы напечатать его, нажмите клавиши CTRL+P и нажмите кнопку Печать для предварительного просмотра. Нажмите кнопку Печать еще раз, чтобы распечатать лист.
Совет: Чтобы напечатать все листы в шаблоне, щелкните каждый ярлычок листа и напечатайте их по одному.
Общий доступ
Чтобы поделиться календарем в Интернете, отправьте ссылку на него.
- В верхней части экрана нажмите кнопку Общий доступ.
- В разделе Общий доступ щелкните элемент Получить ссылку.

- В списке Выберите один из вариантов выберите пункт Только просмотр.

- Нажмите кнопку Создать ссылку.
- Щелкните веб-адрес, чтобы выделить его, а затем скопируйте и вставьте его в сообщение электронной почты, текстовое сообщение или запись блога.
Совет: Если у вас есть блог или веб-сайт, вы можете внедрить в него представление календаря.
Простейший способ создать календарь в Excel
Современная жизнь насыщена событиями. Уследить за всем: от постоянных собраний, проектов и срочных заданий до того, что происходит в личной жизни, — может быть нелегко.
Календари имеют важное значение для организации всех ваших задач, собраний, встреч и мероприятий. Возможности календарей широки: их можно использовать для учёта рабочего времени, составления распорядка работы или расписания занятий, отслеживания проекта и многого другого.
Составить календарь на месяц или год можно несколькими разными способами. Его можно создать вручную с нуля с помощью Excel, однако это может потребовать много времени и усилий. Вы также можете использовать готовый шаблон календаря в Excel с уже настроенным форматированием. Для Excel имеется множество шаблонов календарей: календари на год, календари по месяцам, представления по дням недели и календари с заметками. Это готовые, уже отформатированные календари, в которые можно сразу же добавлять события.
Как же выбрать из такого многообразия самый удобный шаблон? Мы изучили все варианты и нашли наилучший шаблон Excel для создания календаря как на месяц, так и на год.
Каким способом вы хотите создать календарь?
Время выполнения: 3 минуты
Производственный календарь в Excel
Тем, кто работает в корпоративных ERP-системах типа 1С или SAP — проще, в них производственный календарь встроен. Но что делать пользователям Excel?
Можно, конечно, вести такой календарь вручную. Но тогда придется как минимум раз в год (а то и чаще, как в «весёлом» 2020 году) его актуализировать, аккуратно внося туда все выходные, переносы и нерабочие дни, придуманные нашим правительством. А потом повторять эту процедуру каждый следующий год. Скукота.
А как насчёт чуть напрячься и сделать «вечный» производственный календарь в Excel? Такой, чтобы сам обновлялся, брал данные из интернета и формировал всегда актуальный список нерабочих дней для последующего использования в любых расчетах? Заманчиво?
Сделать такое, на самом деле, совсем не сложно.
Источник данных
Главный вопрос — а где брать данные? В поисках подходящего источника я перебрал несколько вариантов:
- Оригинальные указы публикуются на сайте правительства в формате PDF (вот, один из них, например) и отпадают сразу — полезную информацию из них не вытащить.
- Заманчивым вариантом, на первый взгляд, казался «Портал открытых данных РФ», где есть соответствующий набор данных, но, при ближайшем изучении всё оказалось печально. Для импорта в Excel сайт жутко неудобен, техподдержка не отвечает (самоизолировались?), да и сами данные там давно устарели — производственный календарь на 2020 год обновлялся последний раз в ноябре 2019 (позорище!) и, само-собой, не содержит наших «коронавирусных» и «голосовательных» выходных 2020 года, например.
Разочаровавшись в официальных источниках, я стал рыть неофициальные. Их в интернете множество, но большинство из них, опять же, совершенно неприспособлены для импорта в Excel и выдают производственный календарь в виде красивых картинок. Но нам-то с вами не на стенку его вешать, правильно?
И вот в процессе поисков случайно обнаружилось прекрасное — сайт http://xmlcalendar.ru/
Без лишних «рюшечек», простой, легкий и быстрый сайт, заточенный под одну задачу — отдавать всем желающим производственный календарь за нужный год в XML-формате. Отлично!
Если, вдруг, вы не в курсе, то XML — это текстовый формат с разметкой содержимого специальными . Легкий, удобный и читаемый большинством современных программ, включая Excel.
Я, на всякий случай, связался с авторами сайта и они подтвердили, что сайт существует уже 7 лет, данные на нем постоянно актуализируются (у них для этого даже ветка на github есть) и закрывать его они не собираются. И совершенно не против, чтобы мы с вами с него грузили данные для любых наших проектов и расчётов в Excel. Бесплатно. Как же приятно, что есть еще такие люди! Респектище!
Осталось загрузить эти данные в Excel с помощью надстройки Power Query (для версий Excel 2010-2013 её можно бесплатно скачать с сайта Microsoft, а в версиях Excel 2016 и новее — она уже встроена по умолчанию).
Логика действий будет такая:
- Делаем запрос для загрузки данных с сайта за один любой год
- Превращаем наш запрос в функцию
- Применяем эту функцию к списку всех имеющихся лет, начиная с 2013 и до текущего года — и получаем «вечный» производственный календарь с автоматическим обновлением. Вуаля!
Шаг 1. Импортируем календарь за один год
Сначала загрузим производственный календарь за один любой год, например, за 2020. Для этого в Excel идём на вкладку Данные (или Power Query, если вы установили её как отдельную надстройку) и выбираем Из интернета (From Web) . В открывшееся окно вставляем ссылку на соответствующий год, скопированную с сайта:
После нажатия на ОК появляется окно предварительного просмотра, в котором нужно нажать кнопку Преобразовать данные (Transform data) или Изменить данные (Edit data) и мы попадем в окно редактора запросов Power Query, где и продолжим работу с данными:

Сразу же можно смело удалить в правой панели Параметры запроса (Query settings) шаг Измененный тип (Changed Type) — он нам не нужен.
Таблица в столбце holidays содержит коды и описания нерабочих дней — увидеть её содержимое можно, дважды «провалившись» в неё щелчком мыши по зелёному слову Table :
Для возврата назад придется удалить в правой панели все появившиеся шаги обратно до Источника (Source) .
Вторая таблица, куда можно зайти аналогичным образом, содержит как раз то, что нам нужно — даты всех нерабочих дней:
Останется эту табличку обработать, а именно:
1 . Отфильтровать только даты праздников (т.е. единички) по второму столбцу Attribute:t

2 . Удалить все столбцы, кроме первого — щелчком правой кнопкой мыши по заголовку первого столбца и выбором команды Удалить другие столбцы (Remove Other Columns) :
3 . Разделить первый столбец по точке отдельно на месяц и день с помощью команды Разделить столбец — По разделителю на вкладке Преобразование (Transform — Split column — By delimiter) :
4 . И, наконец, создать вычисляемый столбец с нормальными датами. Для этого на вкладке Добавление столбца жмём на кнопку Настраиваемый столбец (Add Column — Custom Column) и вводим в появившееся окно следующую формулу:
=#date(2020, [#»Attribute:d.1″], [#»Attribute:d.2″])
Здесь у оператора #date три аргумента: год, месяц и день, соответственно. После нажатия на ОК получаем требуемый столбец с нормальными датами выходных, а остальные столбцы удаляем как в п.2
Шаг 2. Превращаем запрос в функцию
Следующая наша задача — преобразовать созданный на 2020 год запрос в универсальную функцию для любого года (номер года будет её аргументом). Для этого делаем следующее:
1 . Разворачиваем (если ещё не развернута) панель Запросы (Queries) слева в окне Power Query:
2 . После преобразования запроса в функцию возможность видеть шаги, из которых состоит запрос и легко их редактировать, к сожалению, пропадает. Поэтому имеет смысл сделать копию нашего запроса и резвиться уже с ней, а оригинал оставить про запас. Для этого щелкаем правой кнопкой мыши в левой панели по нашему запросу calendar и выбираем команду Дублировать (Duplicate).
Щелкнув еще раз правой по получившейся копии calendar(2) выберем команду Переименовать (Rename) и введём новое имя — пусть будет, например, fxYear:
3 . Открываем исходный код запроса на внутреннем языке Power Query (он лаконично назвается «М») с помощью команды Расширенный редактор на вкладке Просмотр (View — Advanced Editor) и вносим туда небольшие правки для превращения нашего запроса в функцию на любой год.
Если интересны подробности, то здесь:
- (year as number)=> — объявляем, что в нашей функции будет один числовой аргумент — переменная year
- Подклеиваем переменную year в веб-ссылку на шаге Источник. Поскольку Power Query не позволяет склеивать числа и текст, то на лету преобразовываем номер года в текст с помощью функции Number.ToText
- Подставляем переменную year вместо 2020 года на предпоследнем шаге #»Добавлен пользовательский объект«, где мы формировали дату из фрагментов.
После нажатия на Готово наш запрос превращается в функцию:
Шаг 3. Импортируем календари за все года
Осталась самая малость — сделать последний главный запрос, который будет закачивать данные за все имеющиеся года и складывать все полученные даты праздников в одну таблицу. Для этого:
1 . Щёлкаем в левой панели запросов в серое пустое место правой кнопкой мыши и выбираем последовательно Новый запрос — Другие источники — Пустой запрос (New Query — From other sources — Blank query) :
2 . Нам нужно сформировать список всех лет, для которых мы будем запрашивать календари, т.е. 2013, 2014 . 2020. Для этого в строке формул появившегося пустого запроса вводим команду:
. в Power Query формирует список целых чисел от А до Б. Например, выражение
. выдало бы список 1,2,3,4,5.
Ну, а чтобы не привязываться жёстко к 2020 году, мы используем функцию DateTime.LocalNow() — аналог экселевской функции СЕГОДНЯ (TODAY) в Power Query — и извлекаем из неё, в свою очередь, текущий год функцией Date.Year.
3 . Полученный набор лет хоть и выглядит вполне адекватно, но для Power Query представляет собой не таблицу, а особый объект — список (List) . Но преобразовать его в таблицу — не проблема: достаточно нажать кнопку В таблицу (To Table) в левом верхнем углу:
4 . Финишная прямая! Применяем созданную нами ранее функцию fxYear к полученному списку лет. Для этого на вкладке Добавление столбца жмём кнопку Вызвать настраиваемую функцию (Add Column — Invoke Custom Function) и задаём её единственный аргумент — колонку Column1 с годами:
После нажатия на ОК наша функция fxYear по очереди отработает импорт для каждого года и мы получим столбец, где в каждой ячейке будет содержаться таблица с датами нерабочих дней (содержимое таблицы хорошо видно, если щёлкнуть мышью в фон ячейки рядом со словом Table):
Останется развернуть содержимое вложенных таблиц, щёлкнув по значку с двойными стрелками в шапке столбца Даты (галочку Использовать исходное имя столбца как префикс при этом можно снять):
. и после нажатия на ОК мы получим то, что хотели — список всех праздников с 2013 и до текущего года:
Первый, ненужный уже столбец, можно удалить, а для второго задать тип данных Дата (Date) в выпадающем списке в шапке столбца:

Сам запрос можно переименовать как-нибудь более осмысленно, чем Запрос1 и выгрузить затем результаты на лист в виде динамической «умной» таблицы с помощью команды Закрыть и загрузить на вкладке Главная (Home — Close & Load) :
Обновлять созданный календарь в будущем можно щелчком правой кнопки мыши по таблице или запросу в правой панели через команду Обновить. Или же использовать кнопку Обновить все на вкладке Данные (Date — Refresh All) или сочетание клавиш Ctrl + Alt + F5 .
Теперь вам больше никогда не нужно тратить время и мыслетопливо на поиски и актуализацию списка праздничных дней — теперь у вас есть «вечный» производственный календарь. Во всяком случае, до тех пор, пока авторы сайта http://xmlcalendar.ru/ поддерживают своё детище, что, я надеюсь, будет ещё очень и очень долго (спасибо им еще раз!).
Ссылки по теме
- Импорт курса биткойна в Excel из интернета через Power Query
- Поиск ближайшего рабочего дня функцией РАБДЕНЬ (WORKDAY)
- Поиск пересечения интервалов дат
