Производственный календарь, т.е. список дат, где соответствующим образом помечены все официальные рабочие и выходные дни — совершенно необходимая штука для любого пользователя Microsoft Excel. На практике без него не обойтись:
- в бухгалтерских расчетах (зарплата, стаж, отпуска…)
- в логистике — для корректного определения сроков доставки с учётом выходных и праздников (помните классическое «давай уже после праздников?»)
- в управлении проектами — для правильной оценки сроков с учётом, опять же, рабочих-нерабочих дней
- при любом использовании функций типа РАБДЕНЬ (WORKDAY) или ЧИСТРАБДНИ (NETWORKDAYS), т.к. они требуют в качестве аргумента список праздников
- при использовании функций Time Intelligence (типа TOTALYTD, TOTALMTD, SAMEPERIODLASTYEAR и т.д.) в Power Pivot и Power BI
- … и т.д. и т.п. — примеров масса.
Тем, кто работает в корпоративных 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..5}
…выдало бы список 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)
- Поиск пересечения интервалов дат
Содержание
- Создание различных календарей
- Способ 1: создание календаря на год
- Способ 2: создание календаря с использованием формулы
- Способ 3: использование шаблона
- Вопросы и ответы
При создании таблиц с определенным типом данных иногда нужно применять календарь. Кроме того, некоторые пользователи просто хотят его создать, распечатать и использовать в бытовых целях. Программа Microsoft Office позволяет несколькими способами вставить календарь в таблицу или на лист. Давайте выясним, как это можно сделать.
Если инструкция по созданию календаря в Microsoft Excel вам покажется сложной, в качестве альтернативы рекомендуем рассмотреть веб-платформу Canva, доступную онлайн из любого браузера. Это сервис с огромной библиотекой редактируемых шаблонов различной направленности и стилистики, в числе которых есть и календари. Любой из них можно изменить на свое усмотрение либо создать таковой с нуля и затем сохранить на компьютер в предпочтительном формате или распечатать.
Создание различных календарей
Все календари, созданные в Excel, можно разделить на две большие группы: охватывающие определенный отрезок времени (например, год) и вечные, которые будут сами обновляться на актуальную дату. Соответственно и подходы к их созданию несколько отличаются. Кроме того, можно использовать уже готовый шаблон.
Способ 1: создание календаря на год
Прежде всего, рассмотрим, как создать календарь за определенный год.
- Разрабатываем план, как он будет выглядеть, где будет размещаться, какую ориентацию иметь (альбомную или книжную), определяем, где будут написаны дни недели (сбоку или сверху) и решаем другие организационные вопросы.
- Для того, чтобы сделать календарь на один месяц выделяем область, состоящую из 6 ячеек в высоту и 7 ячеек в ширину, если вы решили писать дни недели сверху. Если вы будете их писать слева, то, соответственно, наоборот. Находясь во вкладке «Главная», кликаем на ленте по кнопке «Границы», расположенной в блоке инструментов «Шрифт». В появившемся списке выбираем пункт «Все границы».
- Выравниваем ширину и высоту ячеек, чтобы они приняли квадратную форму. Для того, чтобы установить высоту строки кликаем на клавиатуре сочетание клавиш Ctrl+A. Таким образом, выделяется весь лист. Затем вызываем контекстное меню кликом левой кнопки мыши. Выбираем пункт «Высота строки».
Открывается окно, в котором нужно установить требуемую высоту строки. Ели вы впервые делаете подобную операцию и не знаете, какой размер установить, то ставьте 18. Потом жмите на кнопку «OK».
Теперь нужно установить ширину. Кликаем по панели, на которой указаны наименования столбцов буквами латинского алфавита. В появившемся меню выбираем пункт «Ширина столбцов».
В открывшемся окне установите нужный размер. Если не знаете, какой размер установить, можете поставить цифру 3. Жмите на кнопку «OK».
После этого, ячейки на листе приобретут квадратную форму.
- Теперь над расчерченным шаблоном нам нужно зарезервировать место для названия месяца. Выделяем ячейки, находящиеся выше строки первого элемента для календаря. Во вкладке «Главная» в блоке инструментов «Выравнивание» жмем на кнопку «Объединить и поместить в центре».
- Прописываем дни недели в первом ряду элемента календаря. Это можно сделать при помощи автозаполнения. Вы также можете на свое усмотрение отформатировать ячейки этой небольшой таблицы, чтобы потом не пришлось форматировать каждый месяц в отдельности. Например, можно столбец, предназначенный для воскресных дней залить красным цветом, а текст строки, в которой находятся наименования дней недели, сделать полужирным.
- Копируем элементы календаря ещё для двух месяцев. При этом не забываем, чтобы в область копирования также входила объединенная ячейка над элементами. Вставляем их в один ряд так, чтобы между элементами была дистанция в одну ячейку.
- Теперь выделяем все эти три элемента, и копируем их вниз ещё в три ряда. Таким образом, должно получиться в общей сложности 12 элементов для каждого месяца. Дистанцию между рядами делайте две ячейки (если используете книжную ориентацию) или одну (при использовании альбомной ориентации).
- Затем в объединенной ячейке пишем название месяца над шаблоном первого элемента календаря – «Январь». После этого, прописываем для каждого последующего элемента своё наименование месяца.
- На заключительном этапе проставляем в ячейки даты. При этом, можно значительно сократить время, воспользовавшись функцией автозаполнения, изучению которой посвящен отдельный урок.
После этого, можно считать, что календарь готов, хотя вы можете дополнительно отформатировать его на своё усмотрение.
Урок: Как сделать автозаполнение в Excel
Способ 2: создание календаря с использованием формулы
Но, все-таки у предыдущего способа создания есть один весомый недостаток: его каждый год придется делать заново. В то же время, существует способ вставить календарь в Excel с помощью формулы. Он будет каждый год сам обновляться. Посмотрим, как это можно сделать.
- В левую верхнюю ячейку листа вставляем функцию:
="Календарь на " & ГОД(СЕГОДНЯ()) & " год"
Таким образом, мы создаем заголовок календаря с текущим годом. - Чертим шаблоны для элементов календаря помесячно, так же как мы это делали в предыдущем способе с попутным изменением величины ячеек. Можно сразу провести форматирование этих элементов: заливка, шрифт и т.д.
- В место, где должно отображаться названия месяца «Январь», вставляем следующую формулу:
=ДАТА(ГОД(СЕГОДНЯ());1;1)
Но, как видим, в том месте, где должно отобразиться просто название месяца установилась дата. Для того, чтобы привести формат ячейки к нужному виду, кликаем по ней правой кнопкой мыши. В контекстном меню выбираем пункт «Формат ячеек…».
В открывшемся окне формата ячеек переходим во вкладку «Число» (если окно открылось в другой вкладке). В блоке «Числовые форматы» выделяем пункт «Дата». В блоке «Тип» выбираем значение «Март». Не беспокойтесь, это не значит, что в ячейке будет слово «Март», так как это всего лишь пример. Жмем на кнопку «OK».
- Как видим, наименование в шапке элемента календаря изменилось на «Январь». В шапку следующего элемента вставляем другую формулу:
=ДАТАМЕС(B4;1)
В нашем случае, B4 – это адрес ячейки с наименованием «Январь». Но в каждом конкретном случае координаты могут быть другими. Для следующего элемента уже ссылаемся не на «Январь», а на «Февраль», и т.д. Форматируем ячейки так же, как это было в предыдущем случае. Теперь мы имеем наименования месяцев во всех элементах календаря. - Нам следует заполнить поле для дат. Выделяем в элементе календаря за январь все ячейки, предназначенные для внесения дат. В Строку формул вбиваем следующее выражение:
=ДАТА(ГОД(D4);МЕСЯЦ(D4);1-1)-(ДЕНЬНЕД(ДАТА(ГОД(D4);МЕСЯЦ(D4);1-1))-1)+{0:1:2:3:4:5:6}*7+{1;2;3;4;5;6;7}
Жмем сочетание клавиш на клавиатуре Ctrl+Shift+Enter. - Но, как видим, поля заполнились непонятными числами. Для того, чтобы они приняли нужный нам вид. Форматируем их под дату, как это уже делали ранее. Но теперь в блоке «Числовые форматы» выбираем значение «Все форматы». В блоке «Тип» формат придется ввести вручную. Там ставим просто букву «Д». Жмем на кнопку «OK».
- Вбиваем аналогичные формулы в элементы календаря за другие месяцы. Только теперь вместо адреса ячейки D4 в формуле нужно будет проставить координаты с наименованием ячейки соответствующего месяца. Затем, выполняем форматирование тем же способом, о котором шла речь выше.
- Как видим, расположение дат в календаре все ещё не корректно. В одном месяце должно быть от 28 до 31 дня (в зависимости от месяца). У нас же в каждом элементе присутствуют также числа из предыдущего и последующего месяца. Их нужно убрать. Применим для этих целей условное форматирование.
Производим в блоке календаря за январь выделение ячеек, в которых содержатся числа. Кликаем по значку «Условное форматирование», размещенному на ленте во вкладке «Главная» в блоке инструментов «Стили». В появившемся перечне выбираем значение «Создать правило».
Открывается окно создания правила условного форматирования. Выбираем тип «Использовать формулу для определения форматируемых ячеек». В соответствующее поле вставляем формулу:
=И(МЕСЯЦ(D6)1+3*(ЧАСТНОЕ(СТРОКА(D6)-5;9))+ЧАСТНОЕ(СТОЛБЕЦ(D6);9))
D6 – это первая ячейка выделяемого массива, который содержит даты. В каждом конкретном случае её адрес может отличаться. Затем кликаем по кнопке «Формат».В открывшемся окне переходим во вкладку «Шрифт». В блоке «Цвет» выбираем белый или цвет фона, если у вас установлен цветной фон календаря. Жмем на кнопку «OK».
Вернувшись в окно создания правила, жмем на кнопку «OK».
- Используя аналогичный способ, проводим условное форматирование относительно других элементов календаря. Только вместо ячейки D6 в формуле нужно будет указывать адрес первой ячейки диапазона в соответствующем элементе.
- Как видим, числа, которые не входят в соответствующий месяц, слились с фоном. Но, кроме того, с ним слились и выходные дни. Это было сделано специально, так как ячейки, где содержаться числа выходных дней мы зальём красным цветом. Выделяем в январском блоке области, числа в которых выпадают на субботу и воскресение. При этом, исключаем те диапазоны, данные в которых были специально скрыты путем форматирования, так как они относятся к другому месяцу. На ленте во вкладке «Главная» в блоке инструментов «Шрифт» кликаем по значку «Цвет заливки» и выбираем красный цвет.
Точно такую же операцию проделываем и с другими элементами календаря.
- Произведем выделение текущей даты в календаре. Для этого, нам нужно будет опять произвести условное форматирование всех элементов таблицы. На этот раз выбираем тип правила «Форматировать только ячейки, которые содержат». В качестве условия устанавливаем, чтобы значение ячейки было равно текущему дню. Для этого вбиваем в соответствующее поля формулу (показано на иллюстрации ниже).
=СЕГОДНЯ()
В формате заливки выбираем любой цвет, отличающийся от общего фона, например зеленый. Жмем на кнопку «OK».
После этого, ячейка, соответствующая текущему числу, будет иметь зеленый цвет.
- Установим наименование «Календарь на 2017 год» посередине страницы. Для этого выделяем всю строку, где содержится это выражение. Жмем на кнопку «Объединить и поместить в центре» на ленте. Это название для общей презентабельности можно дополнительно отформатировать различными способами.
В целом работа над созданием «вечного» календаря завершена, хотя вы можете ещё долго проводить над ним различные косметические работы, редактируя внешний вид на свой вкус. Кроме того, отдельно можно будет выделить, например, праздничные дни.
Урок: Условное форматирование в Excel
Способ 3: использование шаблона
Те пользователи, которые ещё в недостаточной мере владеют Экселем или просто не хотят тратить время на создание уникального календаря, могут воспользоваться готовым шаблоном, закачанным из интернета. Таких шаблонов в сети довольно много, причем велико не только количество, но и разнообразие. Найти их можно, просто вбив соответствующий запрос в любую поисковую систему. Например, можно задать следующий запрос: «календарь шаблон Excel».
Примечание: В последних версиях пакета Microsoft Office огромный выбор шаблонов (в том числе и календарей) интегрирован в состав программных продуктов. Все они отображаются непосредственно при открытии программы (не конкретного документа) и, для большего удобства пользователя, разделены на тематические категории. Именно здесь можно выбрать подходящий шаблон, а если такового не найдется, его всегда можно скачать с официального сайта Office.com.
По сути, такой шаблон — уже готовый календарь, в котором вам только останется занести праздничные даты, дни рождения или другие важные события. Например, таким календарем является шаблон, который представлен на изображении ниже. Он представляет собой полностью готовую к использованию таблицу.
Вы можете в нем с помощью кнопки заливки во вкладке «Главная» закрасить различными цветами ячейки, в которых содержатся даты, в зависимости от их важности. Собственно, на этом вся работа с подобным календарем может считаться оконченной и им можно начинать пользоваться.
Мы разобрались, что календарь в Экселе можно сделать двумя основными способами. Первый из них предполагает выполнение практически всех действий вручную. Кроме того, календарь, сделанный этим способом, придется каждый год обновлять. Второй способ основан на применении формул. Он позволяет создать календарь, который будет обновляться сам. Но, для применения данного способа на практике нужно иметь больший багаж знаний, чем при использовании первого варианта. Особенно важны будут знания в сфере применения такого инструмента, как условное форматирование. Если же ваши знания в Excel минимальны, то можно воспользоваться готовым шаблоном, скачанным из интернета.
Очень часто во время создания в Excel отчетов необходимо воспользоваться графиком рабочих дней без выходных и праздничных. Таблица такого типа буде полезна для вычисления товарооборота за 1 рабочий день, денежный оборот по будням и т.д.
Как составить график рабочих дней в Excel?
Один из самых простых способов составить график рабочих дней без выходных и праздников, основан на использовании функции РАБДЕНЬ.МЕЖД.
Построение графика начнем от указания даты последнего рабочего дня прошлого года. Рядом составим список только праздничных (без выходных), которые являются нерабочими днями на вашей фирме для текущего года. Все значения должны иметь формат ячеек «Дата». Пример начала создания графика рабочих дней показан ниже на рисунке:
В ячейке A3 введите первую формулу, которая ссылается на ячейку B1 с датой последнего рабочего дня предыдущего года:
=РАБДЕНЬ.МЕЖД(B1;1;1;$B$3:$B$16)
А в ячейку A4 введите вторую формулу для последующего копирования в остальные ячейки:
=РАБДЕНЬ.МЕЖД(A3;1;1;$B$3:$B$16)
Теперь скопируйте эту формулу в остальные ячейки данного столбца ровно столько, сколько требуется получить рабочих дней для графика текущего года:
В результате получился персональный производственный календарь на 2019-й год для конкретной фирмы.
Функция РАБДЕНЬ.МЕЖД возвращает дату рабочего дня вычисленную на основе количества дней, на которое должна быть увеличенная задана дата. У функции имеется 2 обязательных аргумента и 2 опциональных:
=РАБДЕНЬ.МЕЖД(нач_дата;число_дней;выходные;праздники)
- Нач_дата: с какой даты следует начать выполнять вычисление.
- Число_дней: количество в днях, которое будет вычисляться от начальной даты.
- Выходные: по умолчанию если данный опциональный аргумент не заполнен, то функция считает за выходные дни недели субботу и воскресенье. Однако данный аргумент позволяет определить какие именно дни недели считать за выходные. Во время ввода функции вручную в строку формул или в ячейку Excel высверливается интерактивная подсказка с помощью, которой можно выбрать одну из 15-ти доступных вариаций для выходных. Или просто указать в третьем аргументе код вариации, то есть число от 1-го и до 15-ти. Изменение графика рабочего дня в Excel:
- Праздники: опциональный аргумент, в котором следует указать список дат праздников, чтобы они не использовались в вычислениях и были исключены из итогового результата.
Как устроен график рабочих дней в Excel?
В формуле данного примера Excel начинается вычисление от даты 31.12.2018. Во время копирования она увеличивается на 1 день. В такой способ определяется и возвращается следующий рабочий день. В опциональных аргументах указано, что субботы и воскресенья являются выходными днями так же, как и праздничные дни, предварительно записанные в отдельном диапазоне ячеек.
Важно отметить, что ссылка на адрес диапазона с датами праздников должна быть абсолютной. Благодаря этому адрес ссылки на диапазон будет неизменным во время копирования формулы в другие последующие ячейки.
Skip to content
Довольно распространенная задача: определить количество рабочих дней в период между двумя датами – это частный случай расчета числа дней, который мы уже рассматривали ранее. Тем не менее, в Excel для этого даже существуют специальные функции.
Не совсем правильно будет пользоваться простейшими методами вычитания одной даты из другой либо функцией РАЗНДАТ. Ведь мы при этом не учитываем наш график труда и отдыха, что весьма важно.
Microsoft Excel имеет две основных функции, специально предназначенных для расчета будних дней – РАБДЕНЬ (WORKDAY) и ЧИСТРАБДНИ (NETWORKDAYS). Мы также остановимся на дополнительных РАБДНИ.МЕЖД и ЧИСТРАБДНИ.МЕЖД, которые могут быть очень полезными.
Функция РАБДЕНЬ определяет момент времени, который наступит через какое-то количество рабочих дней в будущем или в прошлом. Вы можете использовать ее для добавления или вычитания рабочих дней к определенной точке времени.
Используя формулу ЧИСТРАБДНИ, вы можете рассчитать, сколько рабочих дней во временном интервале.
- Функция РАБДЕНЬ.
- Как добавить или вычесть рабочие дни.
- Настраиваем свой график выходных дней.
- Как рассчитать, сколько рабочих дней между двумя датами?
- А если у нас свой особенный график труда и отдыха?
- Как определить ближайший рабочий день?
- Возможные ошибки при расчетах.
А теперь давайте подробнее рассмотрим каждую их них отдельно и посмотрим, как можно использовать для расчета будних дней в ваших таблицах Excel.
Функция РАБДЕНЬ.
Она возвращает момент времени, который наступит через определенное число рабочих дней (или наступил ранее). Она не учитывает дни отдыха и любые праздники, которые вы отдельно укажете.
Она подходит для расчета производственных графиков и сроков исполнения на основе стандартного производственного календаря, причем суббота и воскресенье – это для нее всегда дни отдыха.
РАБДЕНЬ — это встроенная функция в Excel 2007, 2010, 2013 и 2016. Ее можно ввести руками либо при помощи мастера функций. В более ранних версиях вам нужно специально включать пакет инструментов анализа.
Вам необходимо использовать следующие аргументы:
РАБДЕНЬ(дата_начала; дни; [праздничные_дни])
Первые два обязательны, а последний – по желанию:
- Дата_начала – с нее начинается подсчет дней.
- Дни — рабочие дни, которые нужно добавить или вычесть из начальной точки отсчета. Положительное число возвращает будущий момент времени, отрицательное — возвращает в прошлое.
- Праздничные_дни — необязательный список дат, которые следует считать нерабочими днями. Это может быть либо диапазон ячеек, содержащих даты, которые вы хотите исключить из расчетов, либо константа массива.
Теперь, когда вы знаете основы, давайте посмотрим, как вы можете использовать РАБДЕНЬ в ваших таблицах Excel.
Как добавить или вычесть рабочие дни.
Чтобы рассчитать рабочие дни в Эксель, следуйте этим простым правилам:
- Чтобы добавить будние дни, введите положительное число в качестве аргумента дни в формуле РАБДЕНЬ.
- Чтобы вычесть будние дни, используйте там же отрицательное число.
Предположим, у вас в ячейке A10 указан начальный момент времени, а список праздников — в ячейках А2: А7. Вы хотите узнать, какое число будет через 90 рабочих дней в будущем и прошлом.
Вы можете сделать это, используя следующие формулы:
Чтобы добавить столько же к начальной точке, но учитывая праздничные дни в А2: А7:
=РАБДЕНЬ($A$10;90;$A$2:$A$7)
Чтобы вычесть 90 рабочих дней, исключая праздники:
=РАБДЕНЬ($A$10;-90;$A$2:$A$7)
Чтобы рассчитать сроки на основе текущей даты, используйте функцию СЕГОДНЯ() в качестве точки начала:
Чтобы добавить 90 рабочих дней:
=РАБДЕНЬ(СЕГОДНЯ();90;$A$2:$A$7)
Чтобы переместиться на такое же время назад по отношению к сегодня:
=РАБДЕНЬ(СЕГОДНЯ();-90)
Чтобы указать время начала непосредственно в формуле, используйте формулу ДАТА():
=РАБДЕНЬ(ДАТА(2020;1;7);90;$A$2:$A$7)
На следующем скриншоте показаны результаты всех этих и еще нескольких формул РАБДЕНЬ:
И, естественно, вы можете указать, сколько будних дней нужно добавить либо вычесть из точки начала в некоторой ячейке, а затем сослаться на эту ячейку в своей формуле. Например:
=РАБДЕНЬ($A$10;С1;$A$2:$A$7)
Где A10 — начальная датировка, а C1 — число рабочих дней до (отрицательные числа) или после (положительные числа) нее, без учета праздников.
Настраиваем свой график выходных дней.
В случае, если у вас применяется какой-то особенный график нерабочих дней (не суббота и воскресенье), то вам в помощь – формула РАБДЕНЬ.МЕЖД (WORKDAY.INTL в английской версии).
Она появилась в Excel 2010, в более старых версиях программы ее нет.
Дополнительно к своей предшественнице, она позволяет указывать, какие именно дни недели предназначены у вас для отдыха.
Синтаксис ее выглядит следующим образом:
РАБДЕНЬ.МЕЖД (дата_начала, дни, [выходные], [праздничные_дни])
Первые два аргумента являются обязательными и знакомыми нам:
Дата_начала – начальный момент времени.
Дни — будние дней до (отрицательное значение) или после (положительное значение) начальной точки. Если этот аргумент в результате каких-то расчетов передается в виде десятичного числа, то дробная часть отбрасывается.
Последние два аргумента являются необязательными:
Выходные — указывает, что именно следует считать днями отдыха. Это может быть либо число, либо текст, как показано ниже.
Число |
Выходные дни |
1 или отсутствует |
Суббота Воскресенье |
2 |
Воскресенье понедельник |
3 |
Понедельник вторник |
4 |
Вторник Среда |
5 |
Среда Четверг |
6 |
Четверг Пятница |
7 |
Пятница Суббота |
11 |
Только воскресенье |
12 |
Только понедельник |
13 |
Только вторник |
14 |
Только среда |
15 |
Только четверг |
16 |
Только в пятницу |
17 |
Только суббота |
Текст для указания выходного дня — серия цифр из семи нулей и единиц, представляющих семь дней недели, начиная с понедельника. 1 означает нерабочий день, и 0 — соответственно наоборот. Например:
- «0000010» — суббота — отдыхаем.
- «1000001» — понедельник и воскресенье — отдыхаем.
И вот как это может выглядеть на примере:
Я бы рекомендовал обратить внимание на конструкцию
=РАБДЕНЬ.МЕЖД($A$10;90;»1000001″;$A$2:$A$7)
Просто переставляя 0 и 1, можно прямо указать любой график труда и отдыха.
Все остальное, думаю, достаточно хорошо понятно из скриншота.
Замечание. Функции Excel РАБДЕНЬ и РАБДЕНЬ.МЕЖД возвращают порядковые номера (числа), представляющие даты. Чтобы они отображались как нужно, выделите нужные ячейки и нажмите Ctrl + 1, чтобы открыть диалоговое окно «Формат ячеек». На вкладке «Число» выберите «Дата» и определите нужный формат.
Как рассчитать, сколько рабочих дней между двумя датами?
В ситуациях, когда вам нужно получить число рабочих дней в каком-то временном промежутке, используйте формулу ЧИСТРАБДНИ() (в английском варианте – NETWORKDAYS) :
ЧИСТРАБДНИ (дата_начала; дата_окончания; [праздничные_дни])
Первые два аргумента должны уже быть вам знакомы, а третий (необязательный) аргумент позволяет исключить пользовательский список праздников из подсчета.
Чтобы узнать, сколько будних дней между двумя точками в столбцах A и B, используйте следующую формулу:
=ЧИСТРАБДНИ(A10;B10)
При желании вы можете ввести свой список праздников в отдельный диапазон и дополнить формулу, чтобы исключить эти дни:
=ЧИСТРАБДНИ(A10;B10;A2:A7)
В результате учитываются только будние дни.
А если у нас свой особенный график труда и отдыха?
Если вам нужно обрабатывать какие-то особенные нерабочие дни (например, отдыхаем только в воскресенье, в понедельник и воскресенье и т.д), используйте функцию ЧИСТРАБДНИ.МЕЖД, которая позволяет указать, какие дни недели предназначены для отдыха.
ЧИСТРАБДНИ.МЕЖД (WORKDAY.INTL в английском варианте) — более мощная модификация функции ЧИСТРАБДНИ, которая работает с пользовательскими параметрами выходных . Как и его предшественница, она возвращает число рабочих дней в будущем или в прошлом, но позволяет вам определить, какие именно дни недели в вашем графике нужно считать нерабочими.
Формула ЧИСТРАБДНИ.МЕЖД появилась впервые в Excel 2010, и поэтому недоступна в более ранних версиях программы.
Синтаксис ее выглядит следующим образом:
ЧИСТРАБДНИ.МЕЖД (дата_начала, дни, [выходные], [праздничные_дни])
Первые два аргумента являются обязательными и встречались нам уже неоднократно:
Дата_начала — начальная точка.
Дни — будние дней до (отрицательное значение) или после (положительное значение) точки начала. Если этот аргумент в результате каких-то расчетов предоставляется в виде десятичного числа, то он усекается до целого.
Последние два аргумента являются необязательными:
Выходные — указывает, в какие дни недели вы не работаете. Это может быть либо число, либо текст, как показано ниже.
Число |
Выходные дни |
1 или отсутствует |
Суббота Воскресенье |
2 |
Воскресенье понедельник |
3 |
Понедельник вторник |
4 |
Вторник Среда |
5 |
Среда Четверг |
6 |
Четверг Пятница |
7 |
Пятница Суббота |
11 |
Только воскресенье |
12 |
Только понедельник |
13 |
Только вторник |
14 |
Только среда |
15 |
Только четверг |
16 |
Только в пятницу |
17 |
Только суббота |
Текст для указания выходного дня — серия цифр из семи нулей и единиц, представляющих семь дней недели, начиная с понедельника. 1 означает день отдыха, а 0 — будний день. Например:
- «0000011» — суббота и воскресенье – не работаем.
- «1000001» — понедельник и воскресенье — отдыхаем.
На первый взгляд, такие конструкции могут показаться громоздкими и ненужными, но лично мне этот метод больше нравится, потому что вы можете создавать графики выходных «на лету», не запоминая никаких чисел.
Праздники — необязательный список дней, которые вы хотите исключить из своего календаря. Это может быть диапазон ячеек, содержащих даты, или константа массива из последовательных значений, представляющих их. Все, как и ранее.
А теперь несколько примеров.
=ЧИСТРАБДНИ.МЕЖД(A10;B10;1) – это знакомый нам вариант, когда нерабочими считаются суббота и воскресенье.
А вот =ЧИСТРАБДНИ(A10;B10;11) – отдых только в воскресенье,
=ЧИСТРАБДНИ.МЕЖД(A10;B10;2) – в воскресенье и понедельник. Такой расчет полезен, если в вашей организации свой график работы, не такой, как у всех.
=ЧИСТРАБДНИ.МЕЖД(A11;B11;»1100000″;$A$2:$A$7)
не работаем в понедельник и вторник, учитывается также список праздников.
Вы можете объединить полученное число со своим собственным сообщением, склеив их при помощи оператора &.
Например, давайте посмотрим, сколько нужно еще отработать до конца 2020 года. Для этого введем 31 декабря 2020 года в формате даты, и используем следующее выражение:
=»Осталось «&ЧИСТРАБДНИ(СЕГОДНЯ();ДАТА(2020;12;31);A2:A7)&» дн. до конца года!»
Ух, осталось всего 203 дня! Не так много, как я думал
Примечание. Чтобы учесть свой индивидуальный график работы, используйте ЧИСТРАБДНИ.МЕЖД().
Как определить ближайший рабочий день?
Предположим, мы должны определить, какого числа мы можем выставлять счета своим клиентам, а какого — нет. Думаю, вы согласитесь, что делать это в выходной день не стоит. Поэтому в зависимости от даты мы должны либо оставить ее неизменной, либо предложить другой день — рабочий.
Если выходными днями у нас традиционно считаются суббота и воскресенье, то ближайший рабочий день — это либо пятница, либо понедельник. Вот как это может выглядеть.
Для субботы подсчитать дату ближайшего понедельника можно двумя способами:
=РАБДЕНЬ(A2-1;1)
или
=ЕСЛИ(ДЕНЬНЕД(A3;2)>5;A3+(8-ДЕНЬНЕД(A3;2));A3)
Ближайший рабочий день в прошлом (то есть прошлая пятница) определяется так:
=ЕСЛИ(ДЕНЬНЕД(A4;2)>5;МИН(A4-(ДЕНЬНЕД(A4;2)-5);A4);A4)
Ну и если немного усложнить условие — если день попадает на субботу, тогда ближайший рабочий день — прошедшая пятница, а если на воскресенье — тогда предстоящий понедельник:
=ЕСЛИ(ДЕНЬНЕД(A6;2)>6;A6+(8-ДЕНЬНЕД(A6;2));МИН(A6-(ДЕНЬНЕД(A6;2)-5);A6))
Как видите, на слишком уж сложно.
Возможные ошибки при расчетах.
Если ваша формула РАБДЕНЬ, РАБДЕНЬ.МЕЖД, ЧИСТРАБДНИ или ЧИСТРАБДНИ.МЕЖД возвращает ошибку #ЧИСЛО! или #ЗНАЧ!, причина может быть одной из следующих:
- аргументы начала и конца временного отрезка передают неверные данные (не являются датой, записаны как текст скорее всего)
- аргумент «выходные» указан неверно (например, 22 или «000000011»).
Надеюсь, эти примеры и инструкции были вам полезны. Если еще остались вопросы — пишите в комментариях. Постараюсь ответить.
Также рекомендуем о работе с датами:
Beta Это новый инструмент, и мы очень ждем ваших отзывов. Он вам полезен? С ним удобно работать? Напишите нам черезсайтили поemail. Обратите внимание: в бета версии инструмента могут быть баги и недочёты. Чтобы протестировать, начнитепробный периодилиобновитеXLTools до версии 5.3.1.
Когда вы создаете какие-то документы или шаблоны в Excel и потом отправляете их своим коллегам, клиентам или партнерам для заполнения, вам хочется упростить им задачу. Вам также нужно сократить возможные ошибки ввода данных вручную, чтобы не тратить много времени на их очистку, когда вам вернут заполненные документы. А когда дело доходит до ввода дат – здесь люди бывают особенно «креативны».
Встроенный календарь можно добавить в рабочие книги и помочь пользователями со вводом дат и времени в ячейки:
- Встраивайте календарь в конкретные книги, которые будете отправлять
- Задавайте формат даты/времени и другие настройки для контроля ввода данных
- Календарь понятен в применении: нажмите на ячейку – выберите дату
Людям, которым вы отправляете файл, НЕ нужно устанавливать XLTools, чтобы использовать календарь. Он встроен в рабочую книгу в виде легкого макроса. Рабочую книгу требуется сохранить как файл с поддержкой макросов *.XLSM.
Excel — программа, часто используемая многими офисными работниками в повседневной жизни. С её помощью вы можете создавать таблицы, формировать диаграммы, быстро проводить сложные расчеты.
У нее есть различные аналоги, в том числе входящие в программные пакеты OpenOffice и LibreOffice. Но по функционалу полностью они ее заменить не в состоянии.
Формирование календаря в Excel
Иногда в процессе работы пользователю приходится создавать в офисных приложениях различные объекты. Для этого больше всего подходит именно Эксель, так как его функционал позволяет совместить расчёты, текстовую составляющую, графики и многое другое. Поэтому и для создания календаря он вполне подойдет.
Способ 1: Календарь на год вручную
- Запустите Эксель. Выберите «Пустую книгу».
Выделите ячейки, начиная с B2, заканчивая H8, зажав левую кнопку мыши.
Создайте сетку на выбранном диапазоне при помощи команды «Все границы».
Выделите ячейки с B2 по H2. Объедините их, воспользовавшись командой «Объединить и поместить в центре».
В получившейся большой ячейке расположите название месяца. В ячейки второй строки введите обозначения дней недели. Выглядеть должно примерно следующим образом.
Отредактируйте ширину ячеек. Для этого выделите используемые столбцы. Кликните правой кнопкой мыши (далее ПКМ). Затем, в выпадающем списке, выберите «Ширина столбца».
В поле ввода в открывшемся окне задайте ширину ячеек. Затем нажмите «OK».
Теперь выделите выходные дни.
При помощи инструмента «Заливка» выберите любой понравившийся вам цвет для выделения выходных дней.
Теперь выберите ячейку с месяцем и проведите те же манипуляции.
Выделите получившуюся заготовку для первого месяца. Скопируйте необходимое количество раз.
Осталось лишь заполнить даты и правильно обозначить месяцы. Календарь готов.
Способ 2: С применением формул
Теперь рассмотрим более сложный способ создания календаря. Он заключается в том, что вы, как при обычной работе с Эксель, формируете таблицу, затем объединяете некоторые ячейки, самостоятельно выбираете оформление для них, после чего в ячейках, в которых будут находиться календарные дни, прописываете соответствующую формулу. В примере создаем один месяц. Остальные можно будет сформировать по аналогии.
- Повторите первые четыре пункта, описанные в первом способе.
- В получившейся большой ячейке напишите название месяца. При стандартных настройках вместо «Январь 2017» в поле отобразится «янв.17». Это не совсем то, что нужно. Поэтому поменяйте формат ячейки. Для этого кликните по ней ПКМ, выберите соответствую строчку. В открывшемся окне выберите «Дата», нужный нам формат отображения и нажмите «OK».
Во второй строке в каждой из ячеек укажите краткое обозначение дней недели.
Выделите незаполненную часть таблицы. В строке формул напишите следующее: =ЕСЛИ(МЕСЯЦ(ДАТА(ГОД(B2);МЕСЯЦ(B2);1))МЕСЯЦ(ДАТА(ГОД(B2);МЕСЯЦ(B2);1)-(ДЕНЬНЕД(ДАТА(ГОД(B2);МЕСЯЦ(B2);1);2)-1) +*7+-1);» «;ДАТА(ГОД(B2);МЕСЯЦ(B2);1)-(ДЕНЬНЕД(ДАТА(ГОД(B2);МЕСЯЦ(B2);1);2)-1)+*7+-1) После этого нажмите сочетание клавиш «Ctrl», «Shift» и «Enter» на клавиатуре, чтобы изменения вступили в силу.
Вы получили заготовку для календаря на месяц, точно так же вы можете создать остальные месяца. Сделать это не так уж сложно.
Способ 3: Использование специального шаблона
Несмотря на то, что Эксель не является специализированной программой для создания календарей, справиться с этой задачей он может запросто. В современных версиях этого ПО существует множество шаблонов, которые очень удобно применять в ежедневной работе. Некоторые из них как раз подойдут для реализации поставленной задачи.
- Запустите программу Эксель. В открывшемся окне вы увидите предлагаемые для выбора типы шаблонов. Среди них вы найдете категорию Календари.
После этого вам предоставится возможность выбрать подкатегорию (на панели справа) и конкретный шаблон.
В данном случае был выбран шаблон под названием «На каждый год», так как он наиболее универсальный. В открывшемся окне вам остается лишь кликнуть на кнопку «Создать»
Кликните на год непосредственно на календаре. После этого соответствующее число появится в поле ввода данных, где вы можете его изменить. Также имеется возможность использования стрелок, расположенных справа от обозначения года, которые позволяют увеличить или уменьшить значение в ячейке.
При помощи панели «Шрифт» на вкладке «Главная» вы можете изменить шрифт, размер и другие параметры теста, точно так же вы можете поступить с любыми другими участками документа.
Выделите изображение и попробуйте изменить его, используя «Средства рисования». Например, вы можете добавить или изменить фигуры, отредактировать контур или выровнять картинку.
Если вам интересно, каким образом формируется календарь, вы можете кликнуть на любой его «день». В строке формул вы увидите формулу, которая определяет, какое число будет отображено в ячейке.
Изучив эти методы, можно заметить, что создание календаря в Excel — не такое уж сложное занятие.
Готовый результат
Для тех, кто просто хочет скачать календарь в Excel на текущий год, на картинке ниже показан как он выглядит. Красным отмечены праздничные дни, розовым – выходные. Текущий день, также автоматически выделяется заливкой.
Добавил календарь на 2020 год с праздниками и выходными в соответствии с постановлением правительства.
Пример дашборда с интерактивным календарем в Excel
В первую очередь важно отметить что данных шаблон интерактивного календаря с визуализацией данных для дашборда не содержит макросов. А это значит, что вы не ограничены корпоративной политикой безопасности и смело можете полноценно использовать все функции визуализации.
Также стоит подчеркнуть, что блок управления интерактивным календарем является главным, а все остальные блоки лишь для примера его использования как элемент на любом дашборде. Поэтому начнем обзор с главного верхнего блока интерактивного календаря:
В самом календаре и шаблоне примера в целом мы не используем макросы для генерации и расстановки чисел месяцев. Поэтому для решения данной задачи в данном примере применяется диапазон ячеек с формулами массива. А условное форматирование позволяет нам автоматически визуализировать выбранные периоды времени сразу при управлении интерактивным календарем.
Важней момент! В аргументах формул массива присутствуют ссылки на именные диапазоны Excel с формулами и некоторые из них в своих формулах ссылаются на другие имена. Чтобы посмотреть весь список используемых имен выберите инструмент: «ФОРМУЛЫ»-«Определенные имена»-«Диспетчер имен» (CTRL+F3):
Сам интерактивный календарь управляется с помощью элементов управления формами Excel. Все они доступны из инструментария: «РАЗРАБОТЧИК»-«Элементы управления»-«Вставить».
Рассмотрим 3 элемента управления интерактивным календарем на дашборде:
- Первый элемент «поле со списком» позволяет указывать на календаре число месяца на начало учетного периода, от которого будет начинаться выборка. В данном случае это седьмое мая, соответственно с этого числа будет начинаться учетный период времени для выборки данных из таблицы на листе «Data»:
- Второй элемент управления – «Счетчик». Его мы используем для указания продолжительности учетного периода. Например, 11 дней. При использовании счетчика автоматически задействуется условное форматирование для подсветки выбранного диапазона промежутка времени. В данном случае – это с 7-го по 17-ое число мая месяца. Такая визуализация повышает уровень юзабильности (удобства использования) календаря.
- В качестве третьего элемента управления также используется счетчик, но уже с целью выбора календарного месяца.
Чтобы на примере продемонстрировать как использовать интерактивный календарь в действии на схематический дашборд били добавлены еще 2 графика и 1-а диаграмма.
Специализированный календарь для работы и дежурств
Создание нового календаря каждый месяц — пустая трата времени, но многие люди делают это, так как думают, что им придется перестраивать его, чтобы получить правильные выходные и праздничные дни. Но на самом деле, с несколькими формулами, 2 условными правилами форматирования, 1 выпадающим списком и 5 строками кода VBA, вы можете создать автоматический календарь, который не придется менять.
Шаг 1. Создания списка месяцев. Начнем с написания имени сотрудников в столбце A.
Перед тем как переходить к следующему этапу убедитесь, что на вашей панели инструментов есть раздел «Разработчика». Если нет, добавьте его:
- Перейдите в меню «Файл»>«Параметры».
Шаг 2. Теперь выберите «Разработчик»> «Вставка»> «Поле со списком».
Шаг 3. Теперь нам нужно создать список месяцев в другом месте на нашем листе.
Шаг 4. Теперь подключите, ранее созданный элемент «Поле со списком» с этим списком месяцев:
- Выберите объект «Поле со списком».
Шаг 5. Поле со списком для каждого года.
Сделайте все точно так же, как и в предыдущем шаге, но вместо месяцев введите года, которые вам нужны. В разделе «Связь с ячейкой» укажите A2.
Шаг 6. Впишите первую дату посредством функции. Здесь мы собираемся повторно использовать элементы A1 (выбранный месяц) и A2 (выбранный год) и поместить их в функцию «DATE». Эта функция выглядит следующим образом: «=ДАТА(год; месяц; день)».
Итак, в качестве года указываем A2+2017 (A2 содержит цифру 1, чтобы получить 2020, нам нужно прибавить к ней 2017), а в качестве месяца — A1. Впишите получившуюся формулу в ячейку B6 «=ДАТА (A2+2017;A1;1).
Интерактивная визуализация данных в Excel без макросов
Первый график заполняется автоматически данными о доходах и расходах в зависимости от выборки под управлением диапазона чисел на интерактивном календаре:
То есть сколько календарных дней выбрано в учетный период, столько же показателей отображает график в виде гистограммы с группировкой. Все значения изменяются автоматически и соответственны изменениям на календаре.
В нижнем левом углу расположена диаграмма распределения долей остатков товаров в трех магазинах и одном складе фирмы:
Все значения зависят от выборки данных из таблицы по условию дат учетных периодов, которые задаются с помощью календаря.
Последний график наглядно показывает объем продаж по дням недели (с понедельника по воскресенье), которые включены интерактивным календарем только в учетный период:
Например, если учетный период продолжительностью менее чем 7 дней значит один из дней недели будет равен нулю.
Скачать шаблон примера с интерактивным календарем в Excel
В результате при управлении календарем все параметры на диаграмме и графиках дашборда обновляются автоматически и соответственно датам выбранного учетного периода:
Используя данный шаблон интерактивного календаря, вы можете добавлять его на свои дашборды просто выделив на листе DASHBOARD диапазон ячеек L2:T9, затем скопировать CTRL+C и вставить CTRL+V в свой шаблон дашборда. Настроить потребуется только ссылки на ячейки в формуле массива и в свойствах элементов управления. А именные диапазоны скопируются вместе со своими прописанными внутренними формулами – автоматически (для проверки наличия имен, жмите CTRL+F3). Календарь будет полноценно работать на вашем дашборде.
Get expert help now
Don’t have time to figure this out? Our expert partners at Excelchat can do it for you, 24/7.
При создании таблиц с определенным типом данных иногда нужно применять календарь. Кроме того, некоторые пользователи просто хотят его создать, распечатать и использовать в бытовых целях. Программа Microsoft Office позволяет несколькими способами вставить календарь в таблицу или на лист. Давайте выясним, как это можно сделать.
Простой календарь
Для начала разберемся, как сделать обычный календарь на месяц. Создаете таблицу с заголовками в виде дней недели по строке и количеству недель в одном месяце.
Воспользуемся одним из стандартных шаблонов оформления таблицы, чтобы календарь выглядел наглядно и красиво.
На заметку! Чтобы быстрее заполнить ячейки, используйте маркер автозаполнения.
Заполняете дни, начиная с первого января. В итоге получается такая таблица:
Форматируете ячейки, чтобы внутри стояла только одна цифра, а не полная дата. Можете создать свой собственный формат и задать для него образец.
Проводите окончательные настройки расположения цифр, а также делаете другим цветом числа другого месяца при помощи стандартных инструментов редактора.
Это самый простой календарь, который создается вручную на один месяц текущего года. Как видите, ничего сложного в этом нет. Рассмотрим более сложные варианты.
Как установить систему дат 1904?
Кроме вышеописанной системы дат, Excel поддерживает еще одну систему — 1904 года, которая используется на компьютерах Macintosh. Excel автоматически производит смену системы дат, но при необходимости, это можно сделать самостоятельно вручную. Для этого нажимаем кнопку «Office», выбираем кнопку «Параметры Excel», заходим в раздел «Дополнительно» и находим группу «При пересчете этой книги». Смена системы дат производится установкой/снятием флажка перед пунктом «Использовать систему дат 1904».
Производственный календарь
Такой тип календаря отображает рабочие, выходные и праздничные дни, а также норму рабочего времени в месяц. Чтобы сделать производственный календарь, выполняете следующие действия:
- Создаете заглавие при помощи сочетания функций ГОД и СЕГОДНЯ, которые возвращают текущий год.
- Чтобы вручную не записывать месяца, используйте функцию ДАТА, аргументы которой выводят в формате даты указанные числа.
- Форматируете ячейку так, чтобы отображалось только название месяца.
- Задействуйте еще одну формулу ДАТАМЕС, которая добавляет указанное число месяцев к текущей дате. Аналогичные действия производите для остальных заготовок.
- Для быстрого добавления чисел внутрь таблицы выделяете диапазон в пределах границ и в строку формул вставляете следующее:
Важно! Для применения формулы нажимаете Ctrl+Shift+Enter. В этом случае программа автоматически посчитает значения для выделенного диапазона.
- Результат работы функции с применением формата ячейки в виде одного числа.
- Копируете диапазон в остальные заготовки.
- Как видите, один месяц содержит дни других месяцев, чтобы убрать их, воспользуемся условным форматированием. Создаете правило с логическим И. При условии истинности выражения, редактор применит заданный формат.
- В поле Применяется к выделяете диапазоны каждого месяца, удерживая клавишу Ctrl.
- Чтобы обозначить текущую дату, задаете еще одно правило форматирования с применением функции СЕГОДНЯ для всего рабочего листа.
- Для того, чтобы учесть праздничные дни, необходимо создать для них отдельную умную таблицу и сделать на нее ссылку.
- Создаете правило форматирования и применяете ко всем месяцам.
На заметку! При изменении таблицы с праздниками таблица с числами автоматически отформатируется.
После проведения всех операции получаете полностью автоматизированный рабочий производственный календарь.
Как задать свой собственный формат даты? Как преобразовать дату в год, месяц либо день недели?
Выделяем нужные ячейки в окне открытого листа и вызываем окно «Формат ячеек» любым из перечисленных выше способов. В окне «Формат ячеек» выбираем вкладку «Число» и в группе «Числовые форматы» выбираем пункт «Все форматы». После этого помещаем курсор в поле «Тип» и набираем код числового формата в русской раскладке клавиатуры:
— М — для отображения месяцев в виде числа от 1 до 12;
— ММ — для отображения месяцев в виде числа от 01 до 12;
— МММ — для отображения месяцев в виде «янв» — «дек»;
— ММММ — для отображения месяцев в виде «январь» — «декабрь»;
— МММММ — для отображения месяцев виде первой буквы месяца;
Форматы с кодом «М» можно использовать для преобразования даты в месяц.
— д — для отображения дней в виде числа от 1 до 31;
— дд — для отображения дней в виде числа от 01 до 31;
— ддд — для отображения дней в виде «Пн» — «Вс»;
— дддд — для отображения дней в виде «понедельник» — «воскресенье»;
Форматы с кодом «д» используются для преобразования даты в день.
— гг — для отображения лет в виде чисел от 00 до 99;
-гггг — для отображения лет в виде чисел от 1900 до 9999.
Форматы с кодом «г» используются для преобразования даты в год.
Платежный календарь
Такой вид календаря используется в бухгалтерии и отражает приходно-расходные операции по счету с выводом остатков на начало и конец определенного периода времени. Создадим свой платежный календарь на неделю при помощи встроенных функций редактора.
- Делаете заготовку, заполняя строку заголовков и заглавный столбец.
- Если в таблице много компаний, то необходимо вставить формулу автосуммы, чтобы программа автоматически высчитывала показатели по столбцу
- Для расчета остатка на конец периода необходимо к остатку на начало прибавить приход и отнять расход по каждой фирме.
- Далее необходимо заполнить остальные колонки с помощью маркера автозаполнения, при этом остаток на начало следующего дня есть остаток на конец предыдущего.
- Добавим правило форматирования для отображения сегодняшнего дня и для выделения цветом отрицательных значений в таблице, чтобы сразу видеть перерасход имеющихся средств.
- Так выглядит календарь, если добавить еще одну фирму. Все значения посчитались автоматически, поскольку основные ячейки связаны формулами.
Как видите, создание календарей в excel требует определенных знаний в условном форматировании, а также понимания работы логических и временных функций. Такая задача под силу более опытным пользователям. Если нужно создать простой календарь, то базовых знаний основных инструментов форматирования будет достаточно.
Жми «Нравится» и получай только лучшие посты в Facebook ↓
Если я отправлю книгу другим людям, календарь будет им доступен?
Когда вы встроите календарь в рабочую книгу и отправите ее другим пользователям, они смогут применять календарь в этой книге. Им НЕ потребуется устанавливать XLTools на свои компьютеры.
- Другие люди смогут использовать Встроенный календарь в вашей конкретной книге
- Календарь будет работать именно так, как вы задали в настройках
- Пользователи не смогут менять настройки Встроенного календаря
Встроенный календарь будет доступен большинству пользователей, но есть некоторые ограничения. Он будет доступен, если у пользователей:
- Excel 2010 – 2020, установленные версии. Не подходит для мобильных и веб-версий Excel.
- Включены настройки макросов в Excel
- Microsoft .NET Framework 4.0 и выше. Это пререквизит Microsoft, необходимый для правильной работы Встроенного календаря. Он обычно уже установлен на компьютерах пользователей.
- Windows 7 – 10
Внимание:Встроенный Календарь не поддерживается на Mac.