Создание интерактивного календаря в Excel с выделением событий

Одним из распространенных способов использования Excel является создание списков событий, встреч и других мероприятий, связанных с календарем. В то время как Excel способен с легкостью обрабатывать эти данные, он не имеет быстрого способа визуализировать эту информацию. Нам потребуется немного творчества, условного форматирования, несколько формул и 3 строки кода VBA, чтобы создать симпатичный, интерактивный календарь. Рассмотрим, как можем все это реализовать.

Я нашел этот пример на сайте Chandoo.org и делюсь им с вами.

Интерактивный календарь в Excel

На выходе у нас должно получиться что-то вроде этого:

Интерактивный календарь

Создаем таблицу с событиями

На листе Расчеты создаем таблицу со всеми событиями

Исходные данные

Настраиваем календарь

Так как все события происходят в рамках двух месяцев, я просто ввел первую дату первого месяца, протянул вниз и отформатировал так, чтобы было похоже на календарь. На данном этапе он должен выглядеть следующим образом.

Календарь excel

Задаем имя диапазону дат в календаре

Это просто, выделяем весь диапазон дат нашего календаря и в поле Имя задаем «Календарь»

имя календаря

Определяем ячейку с выделенной датой

На листе Расчеты выбираем пустую ячейку и задаем ей имя «ВыделеннаяЯчейка». Мы будем использовать ее для определения даты, которую выбрал пользователь. В нашем случае, это ячейка G3.

Добавляем макрос на событие Worksheet_selectionchange()

Описанный ниже код поможет идентифицировать, когда пользователь выбрал ячейку в диапазоне “Календарь”. Добавьте этот код на лист с календарем. Для этого открываем редактор VBA, нажатием Alt+F11. Копируем код ниже и вставляем его Лист1.

1
2
3
4
5
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("calendar")) Is Nothing Then
[selectedCell] = ActiveCell.Value
End If
End Sub

VBA редактор

Настраиваем формулы для отображения деталей при выборе даты

Изменение даты на календаре ведет за собой изменение 4-х параметров отображения в анонсе: название, дата, место и описание. Зная, что дата находится в ячейке «ВыделеннаяЯчейка», воспользуемся формулами ВПР, ЕСЛИ и ЕСЛИОШИБКА для определения этих параметров. Логика формул следующая: если на выбранную дату существует событие, возвращает данные этого события, иначе возвращает пустую ячейку. Формулы с определением параметров события находятся на листе Расчеты, в ячейках G10:G13.

Добавление анонса

Наконец добавляем в лист Календарь 4 элемента Надпись и привязываем их к данным, находящихся в ячейках G10:G13 листа Расчеты.

Совет: для того, чтобы привязать значение ячейки к элементу Надпись, просто выделите элемент, в строке формул наберите G10 и щелкните Enter.

Настраиваем условное форматирование для выделенной даты

Наконец, добавьте условное форматирование, чтобы выделить даты с событиями в календаре.

Выберите диапазон дат в календаре

Переходим на вкладке Главная в группу Стили –> Условное форматирование –> Создать правило

В диалоговом окне Создание правила форматирования, выберите тип правила Использовать формулу для определения форматируемых ячеек.

Задаем правила выделения как на рисунке

Условное форматирование

Форматируем

Подчищаем рабочий лист, форматируем наш календарь и получаем классную визуализацию.

Оформление календаря

Пример рабочей книги с интерактивным календарем.

 


4 комментария

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *