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.
Содержание
- 0.1 P.S.
- 0.2 Ссылки по теме
- 1 Добавить «Всплывающий календарь» в Excel 2016, 2013, 2010, 2007
- 2 Как работать с надстройкой:
- 3 Как задать формат даты в Excel 2007/2010?
- 4 Как задать свой собственный формат даты? Как преобразовать дату в год, месяц либо день недели?
- 5 Как установить систему дат 1904?
- 6 Как вводить дату в ячейку?
- 7 Как в Excel вводить даты при помощи надстройки?
- 8 Как вставить в ячейку статическую, фиксированную, не обновляемую дату?
- 9 Как вставить в ячейку текущую автоматически обновляемую дату?
- 9.1 Другие материалы по теме:
- 9.2 Интерактивный календарь в Excel
- 9.3 Создаем таблицу с событиями
- 9.4 Настраиваем календарь
- 9.5 Задаем имя диапазону дат в календаре
- 9.6 Определяем ячейку с выделенной датой
- 9.7 Добавляем макрос на событие Worksheet_selectionchange()
- 9.8 Настраиваем формулы для отображения деталей при выборе даты
- 9.9 Добавление анонса
- 9.10 Настраиваем условное форматирование для выделенной даты
- 9.11 Форматируем
Если вам часто приходится вводить даты в ячейки листа, то делать это вручную неудобно. Для ввода именно сегодняшней даты можно воспользоваться функцией СЕГОДНЯ (TODAY), сочетанием клавиш Ctrl+; или макросом, но если нужны разные даты из прошлого или будущего, то вбивать их руками долго.
К сожалению, в стандартном арсенале средств Excel нет встроенного выпадающего календаря (в отличие от Word), да еще и в последних версиях, начиная с Excel 2007, Microsoft зачем-то убрала из стандартного комплекта поставки библиотеку mscalc.osx, которая позволяла быстро создать пользовательскую форму с календарем.
Естественно, это «узкое место» не осталось без внимания опытных пользователей и экспертов Excel MVP, которые оперативно создали несколько интерактивных календарей на макросах для удобного ввода дат. Вот подборка неплохих, на мой взгляд, бесплатных вариантов:
Windows Date Picker Автор: Ron de Bruin Цена: бесплатно Ссылка
|
|
Excel Date Picker Автор: Jim Cone Цена: бесплатно Ссылка
|
|
Mini Calendar and Date Picker Автор: VERTEX Цена: бесплатно. Ссылка в Office Apps Store
|
|
Date Picker Автор: Sam Radakovitz, руководитель команды программистов Excel в Microsoft Цена: бесплатно Сайт автора умер, ссылки не работают, но можно скачать заботливо сохраненную мной когда-то копию здесь.
|
P.S.
Установка надстроек:
- в Excel 2003 и старше — меню Сервис — Надстройки — Обзор (Tools — Add-ins — Browse)
- в Excel 2007 и новее — Файл — Параметры — Надстройки — Перейти — Обзор (File — Options — Add-ins — Go To — Browse)
Ссылки по теме
- Всплывающий календарь из надстройки PLEX
- Автоматический ввод даты при изменении ячейки
Каждый раз при вводе даты в ячейку возникают вопросы: печатать ДД-ММ-ГГГГ или в другом порядке? Использовать «-» или «/» в качестве разделителя? Распознает ли Excel введённое значение как дату и отобразит ли её в нужном формате? Именно в этих случаях пригодится всплывающий, или выпадающий, календарь. Он незаменим для работы с личными и рабочими списками дел, расписаниями и планами, графиками выполнения проектов и финансовыми отчётами в Excel.
«Всплывающий календарь» — это надёжный и проверенный инструмент выбора дат, которому доверяют 30 000+ пользователей Excel:
- Интуитивен в использовании: выберите ячейки — вставьте дату
- Выпадает рядом с ячейкой, отображает номера недель, дни недели, текущую дату
- Заполняет датами столбцы, строки и любые диапазоны в секунды
- Множество вариантов формата даты по умолчанию
- Работает в 64- и 32-разрядных версиях Excel
Язык видео: английский. Субтитры: русский, английский. (Внимание: видео может не отражать последние обновления. Используйте инструкцию ниже.)
Добавить «Всплывающий календарь» в Excel 2016, 2013, 2010, 2007
Подходит для: Microsoft Excel 2016 – 2007, desktop Office 365 (32-бит и 64-бит).
Скачать надстройку XLTools
Как работать с надстройкой:
- Как вставить или изменить дату в ячейке с помощью «Всплывающего календаря»
- Как из календаря вставить текущую дату в ячейку
- Как заполнить датами целый столбец, строку или несмежные диапазоны
- Как заполнить диапазон последовательными датами
- Как вставить сразу и дату и время в ячейку
- Как вставить только время (без даты) в ячейку
- Как изменить формат даты по умолчанию для «Всплывающего календаря»
- Как изменить комбинацию горячих клавиш для «Всплывающего календаря»
- Как добавить/удалить иконку «Всплывающего календаря»
- Как добавить/удалить «Всплывающий календарь» из контекстного меню
- Как встроить всплывающий календарь в книгу Excel
Внимание: отмена последнего действия (UNDO) невозможна. Рекомендуем сохранять резервную копию файлов или использовать «Контроль версий» XLTools для отслеживания изменений.
Как вставить или изменить дату в ячейке с помощью «Всплывающего календаря»
- Выберите ячейку.
- В группе Дата/Время нажмите на кнопку «Вставить дату» > Календарь всплывёт рядом с ячейкой.
Или: по правому клику мыши выберите пункт «Вставить дату».
Или: используйте сочетание клавиш Ctrl+; (точка с запятой на английской раскладке). - Выберите нужную дату из календаря > Готово.
Обратите внимание на формат: это то, что вам нужно? Вы можете изменить формат даты по умолчанию. - Чтобы изменить значение даты, нажмите на иконку календаря справа от ячейки > Измените дату.
«Всплывающий календарь» запоминает последнюю использованную дату, чтобы вам было проще вводить следующую дату.
Внимание: после ввода даты, ячейке автоматически присваивается формат Число/Дата. Если вы позднее удалите значение из ячейки, сама ячейка сохранит свой формат Дата, а иконка календаря для этой пустой ячейки останется доступной. Чтобы убрать иконку, измените формат ячейки на Общий.
Как из календаря вставить текущую дату в ячейку
- Выберите ячейку, в которую нужно вставить текущую дату.
- В группе Дата/Время нажмите на кнопку «Вставить дату» > Календарь появится рядом с ячейкой.
Или: по правому клику мыши выберите пункт «Вставить дату».
Или: используйте сочетание клавиш Ctrl+; (точка с запятой на английской раскладке). - Нажмите по надписи «Сегодня» в нижней части календаря > Готово.
Как заполнить датами целый столбец, строку или несмежные диапазоны
С помощью «Всплывающего календаря» вы можете заполнить значениями дат целый диапазон (ограничение до 4000 ячеек). Даты можно вставить в столбцы таблицы, строки, объединённые ячейки или любой произвольный диапазон точно так же, как одну ячейку:
- Выберите диапазон.
- В группе Дата/Время нажмите на кнопку «Вставить дату» > Появится всплывающий календарь.
Или: по правому клику мыши выберите пункт «Вставить дату».
Или: используйте сочетание клавиш Ctrl+; (точка с запятой на английской раскладке). - Выберите дату > Готово. Весь диапазон заполнен значением выбранной даты.
Совет: узнайте, как заполнить ячейки последовательными датами. - Чтобы изменить значение даты, нажмите на иконку календаря справа от ячейки > Измените дату.
Внимание: после ввода даты, ячейкам автоматически присваивается формат Число/Дата. Если вы позднее удалите значения из ячеек, сами ячейки сохранят свой формат Дата, а иконка календаря для этих пустых ячеек останется доступной. Чтобы убрать иконку, измените формат ячеек на Общий.
Как заполнить диапазон последовательными датами
С надстройкой «Всплывающий календарь» вы можете быстро заполнить диапазон последовательными датами (дни по порядку):
- Вкладка XLTools > Кнопка «Настройки» > Вкладка Дата/Время > Отметьте флажком «Включить автоувеличение дат при заполнении диапазона ячеек» > OK.
- Выберите диапазон.
- В группе Дата/Время нажмите на кнопку «Вставить дату» > Всплывающий календарь появятся рядом с ячейкой.
Или: по правому клику мыши выберите пункт «Вставить дату».
Или: используйте сочетание клавиш Ctrl+; (точка с запятой на английской раскладке). - Выберите начальную дату > Готово, весь диапазон будет автоматически заполнен последовательными значениями дат с шагом в 1 день.
Как вставить сразу и дату и время в ячейку
- Выберите ячейку.
- В группе Дата/Время нажмите на кнопку «Вставить дату и время» > Всплывающий календарь с часами появятся рядом с ячейкой.
Или: по правому клику мыши выберите пункт «Вставить дату и время».
Или: используйте сочетание клавиш: нажмите Ctrl+; (точка с запятой на английской раскладке), затем отпустите клавиши и нажмите Ctrl+Shift+; (точка с запятой на английской раскладке). - Установите время при помощи колеса прокрутки мыши или стрелок Вверх/Вниз > Выберите дату из всплывающего календаря > Готово.
Обратите внимание на формат: это то, что вам нужно? Вы можете задать другой формат по умолчанию для Всплывающего Календаря и Часов. - Чтобы изменить значение, нажмите на иконку справа от ячейки > Измените дату и время.
Внимание: после ввода даты и времени, ячейке автоматически присваивается формат Число/Дата. Если вы позднее удалите значение из ячейки, сама ячейка сохранит свой формат Дата, а иконка календаря с часами для этой пустой ячейки останется доступной. Чтобы убрать иконку, измените формат ячейки на Общий.
Как вставить только время (без даты) в ячейку
Используйте надстройку «Всплывающие часы» для установки и вставки времени в ячейки и диапазоны:
- Выберите ячейку или диапазон.
- В группе Дата/Время нажмите на кнопку «Вставить время» > Всплывающие часы появятся рядом с ячейкой.
Или: по правому клику мыши выберите пункт «Вставить время».
Или: используйте сочетание клавиш Ctrl+Shift+; (точка с запятой на английской раскладке). - Установите время при помощи колеса прокрутки мыши или стрелок Вверх/Вниз > Нажмите Ввод (Enter) > Готово.
Как изменить формат даты по умолчанию для «Всплывающего календаря»
Чтобы изменить формат, заданный по умолчанию для «Всплывающего Календаря»:
- Нажмите кнопку «Настройки» на панели XLTools > Вкладка Дата/Время.
- Отметьте флажком «По умолчанию использовать формат даты и времени, установленный ниже».
Внимание: при снятии флажка Всплывающий календарь будет использовать формат, установленный в ваших системных настройках. - Выберите подходящий формат, напр., принятый в вашей стране или на вашем языке.
Или: задайте «Свой формат». - Нажмите OK > Готово.
Вы можете обнаружить, что некоторые ячейки не подчиняются заданному формату Календаря. Это означает, что ячейкам ранее был присвоен другой формат даты. В этом случае, измените формат ячеек:
- Выберите ячейки > По правому клику мыши выберите «Формат ячеек».
- Вкладка «Число» > Формат «Дата» > Установите нужный формат даты.
Изначально Всплывающий календарь использует ваши системные настройки формата даты и времени по умолчанию. Вы можете полностью изменить настройки системы. Обратите внимание, это поменяет настройки всех учётных записей на компьютере:
- Панель управления > Часы, язык и регион > Изменение форматов даты.
- Вкладка Форматы > Установите форматы дат и времени, первого дня недели.
- Вкладка Местоположение > Укажите страну местонахождения.
- Вкладка Дополнительно > Измените язык системы > Перезагрузите компьютер.
Для вашего удобства, для «Всплывающего календаря» по умолчанию задано сочетание клавиш Ctrl+; (точка с запятой на английской раскладке) – это та же комбинация, которая используется в Excel для вставки текущей даты. Вы можете изменить горячие клавиши для «Всплывающих часов» в любое время:
Вкладка XLTools > Кнопка «Настройки» > Вкладка «Горячие клавиши» > Задайте другое сочетание > OK.
Как добавить/удалить иконку «Всплывающего календаря»
Пиктограмма (иконка) календаря появляется справа от выбранной ячейки, если для ячейки задан формат Дата. Нажатие на иконку открывает инструмент выбора даты.
- Чтобы отключить отображение иконки Календаря:
- Нажмите кнопку «Настройки» на панели XLTools > Вкладка Дата/Время.
- Снимите флажок с опции «Отображать пиктограммы Всплывающего Календаря и Часов» > OK.
- Готово! Пиктограммы перестанут отображаться, Календарь и Часы будут по-прежнему доступны для использования. Иконки можно вернуть в любое время.
- Чтобы настроить появление иконки рядом с пустыми ячейками, столбцами, строками или произвольным диапазоном:
- Выберите пустую ячейку или диапазон.
- Вкладка «Главная» > Группа «Число» > Дата > OK. Так, ячейкам будет присвоен формат даты.
Или: вставьте любую дату с помощью «Всплывающего календаря» > Нажмите кнопку Delete. Это удалит непосредственно значения, и присвоит выбранным ячейкам формат даты. - Готово! Теперь, если вы выберите какую-либо ячейку в этом диапазоне, рядом с ней появится иконка Календаря.
- Чтобы убрать иконку Календаря с пустых ячеек:
Если ячейка пуста, но иконка по-прежнему появляется, значит, что ячейке присвоен формат даты или времени. Чтобы убрать иконку с пустых ячеек, измените их формат на Общий:
- Выберите пустую ячейку или диапазон.
- Вкладка «Главная» > Группа «Редактирование» > Очистить форматы.
Или: вкладка «Главная» > Группа «Число» > Выберите «Общий» из выпадающего списка.
Или: по правому клику «Формат ячеек» > Вкладка «Число» > Выберите формат «Общий» > OK.
- Нажмите кнопку «Настройки» на панели XLTools > Вкладка Дата/Время.
- Установите или снимите флажки соответствующих опций:
- «Добавить пункт «Вставить дату» в контекстное меню»
- «Добавить пункт «Вставить время» в контекстное меню»
- «Добавить пункт «Вставить дату и время» в контекстное меню»
- Нажмите OK > Готово.
Как встроить всплывающий календарь в книгу Excel
Надстройка XLTools «Всплывающий календарь» не может быть встроена в книгу. «Всплывающий календарь» будет видим и доступен только тем пользователям, у кого установлена надстройка XLTools.
Если вам нужно отправить книгу другим пользователям, попробуйте наш встраиваемый календарь — онлайн надстройка XLTools.net Календарь. Установка на компьютер не требуется: отправьте файл коллегам, и они тоже смогут воспользоваться календарём. Это веб-приложение удобно для рассылки расписаний, графиков, планов, т.д.
Появились вопросы или предложения? Оставьте комментарий ниже.
Для гарантии правильности ввода дат пользователями элемент управления Excel Календарь (Calendar) может упростить ситуацию как для вас, так и для пользователей, работающих с вашей электронной таблицей. При помощи этого трюка можно добавить элемент управления Календарь (Calendar) в любую рабочую книгу Excel.
Если дата введена неправильно, Excel не сможет ее распознать. Иногда это означает, что вы не можете выполнять вычисления с числами, выглядящими как даты, но датами не являющимися. Кроме того, это означает, что любые диаграммы или сводные таблицы, которые основываются на этих данных, будут неверными. Хотя решить эту проблему может весьма разностороннее средство проверки данных Excel, оно также далеко от совершенства.
При помощи этого трюка можно добавить элемент управления Календарь (Calendar) в любую рабочую книгу Excel. Для начала откройте рабочую книгу, куда собираетесь добавить календарь. Лучше использовать ваш файл Personal.xls, который можно открыть командой Файл → Открыть (File → Open). Если этот пункт меню недоступен, значит, у вас пока нет файла Personal.xls. Можно создать его, записав пустой макрос. Для этого выберите команду Разработчик → Начать запись (Developer → Record New Macro) и в поле Сохранить в (Store Macro In) выберите вариант Личная книга макросов (Personal Macro Workbook). Затем щелкните на кнопке ОК, выделите любую ячейку и остановите запись. Excel автоматически создаст файл Personal.xls.
Выберите команду Разработчик → Редактор Visual Basic (Developer → Visual Basic Editor) (сочетание клавиш Alt/Option+Fll) и в VBE выберите команду Insert → UserForm. Должна появиться панель инструментов Control. (Если панель не открылась, выберите команду View → Toolbox.) Правой кнопкой мыши щелкните панель инструментов Control и в контекстном меню выберите команду Additional Controls. Прокрутите список до флажка Элемент управления Календарь 10.0 (Calendar Control 10.0) (номер версии зависит от версии Excel). Установите этот флажок и щелкните на кнопке ОК. Щелкните календарь, который теперь представляет собой часть панели инструментов, а затем щелкните форму UserForm, которую добавили ранее. При помощи маркеров изменения размера формы UserForm и элемента управления Календарь (Calendar) отрегулируйте их размер.
Удостоверьтесь, что форма UserForm выделена, и выберите команду View → Properties Window (клавиша F4). В окне Properties выберите Caption и замените слово UserForml словом Calendar. Теперь выберите команду View → Code (клавиша F7) и в частном модуле введите код, приведенный в листинге 7.14.
1 2 3 4 5 6 7 8 |
//Листинг 7.14 Private Sub Calendar1_Click() ActiveCell = Calendar1.Value End Sub Private Sub UserForm_Activate() Me.Calendar1.Value = Date End Sub |
//Листинг 7.14 Private Sub Calendar1_Click() ActiveCell = Calendar1.Value End Sub Private Sub UserForm_Activate() Me.Calendar1.Value = Date End Sub
Выберите команду Insert → Module и в общем модуле введите код из листинга 7.15.
1 2 3 4 |
//Листинг 7.15 Sub ShowIt() UserForm1.Show End Sub |
//Листинг 7.15 Sub ShowIt() UserForm1.Show End Sub
Закройте окно, чтобы вернуться в Excel. Выберите команду Разработчик > Макрос → Макросы (Developer > Macro → Macros) (сочетание клавиш Alt+F8) и затем выберите ShowIt. Щелкните кнопку Параметры (Options) и назначьте макросу клавишное сочетание — все готово. Нажмите выбранное сочетание клавиш, раскроется календарь с выбранной сегодняшней датой. Щелкните любую дату, и она будет вставлена в активную ячейку.
Формат даты используется для отображения дат и времени, представленных числами, в виде дат. Система дат в Excel устроена так, что дату 01.01.1900 года приняли за отправную точку и обозначили числом 1, таким образом, любая дата представляет собой число дней, пройденных с 1 января 1900 года до этой даты. Значение времени является составной частью даты и хранится в виде десятичной дроби. Со значениями даты и времени можно производить математические действия, так как они являются числами.
Как задать формат даты в Excel 2007/2010?
Для задания формата даты необходимо выделить нужные ячейки, после чего перейти на вкладку «Главная», в группу «Число» и раскрыть список форматов в поле «Числовой формат».
В раскрывшемся списке доступны два числовых формата: «Краткая дата» и «Длинный формат даты». В первом случае дата отображается числами, а во втором — числами и словами. Если предложенные форматы не подходят, выбираем пункт «Другие числовые форматы…», в результате чего появляется окно «Формат ячеек».
Это окно также можно вызвать щелчком левой кнопки мыши на правый нижний уголок группы,
либо просто кликнуть правой кнопкой мыши в области выделенных ячеек и выбрать из контекстного меню пункт «Формат ячеек».
В появившемся окне «Формат ячеек» переходим на вкладку «Число» и в группе «Числовые форматы» выбираем пункт «Дата»
В правой части окна отображаются возможности данного формата, в группе «Тип» выбераем нужный способ отображения даты. Форматы даты, перед которыми стоит значок *(звездочка), зависят от даты операционной системы, форматы, перед которыми этого значка нет – не зависят.
Как задать свой собственный формат даты? Как преобразовать дату в год, месяц либо день недели?
Выделяем нужные ячейки в окне открытого листа и вызываем окно «Формат ячеек» любым из перечисленных выше способов. В окне «Формат ячеек» выбираем вкладку «Число» и в группе «Числовые форматы» выбираем пункт «Все форматы». После этого помещаем курсор в поле «Тип» и набираем код числового формата в русской раскладке клавиатуры:
— М – для отображения месяцев в виде числа от 1 до 12;
— ММ — для отображения месяцев в виде числа от 01 до 12;
— МММ – для отображения месяцев в виде «янв» — «дек»;
— ММММ — для отображения месяцев в виде «январь» — «декабрь»;
— МММММ – для отображения месяцев виде первой буквы месяца;
Форматы с кодом «М» можно использовать для преобразования даты в месяц.
— д – для отображения дней в виде числа от 1 до 31;
— дд – для отображения дней в виде числа от 01 до 31;
— ддд – для отображения дней в виде «Пн» — «Вс»;
— дддд – для отображения дней в виде «понедельник» — «воскресенье»;
Форматы с кодом «д» используются для преобразования даты в день.
— гг – для отображения лет в виде чисел от 00 до 99;
-гггг – для отображения лет в виде чисел от 1900 до 9999.
Форматы с кодом «г» используются для преобразования даты в год.
Как установить систему дат 1904?
Кроме вышеописанной системы дат, Excel поддерживает еще одну систему – 1904 года, которая используется на компьютерах Macintosh. Excel автоматически производит смену системы дат, но при необходимости, это можно сделать самостоятельно вручную. Для этого нажимаем кнопку «Office», выбираем кнопку «Параметры Excel», заходим в раздел «Дополнительно» и находим группу «При пересчете этой книги». Смена системы дат производится установкой/снятием флажка перед пунктом «Использовать систему дат 1904».
Как вводить дату в ячейку?
Для того, чтобы Excel воспринимал информацию, вводимую в ячейку, как дату, необходимо использовать в качестве разделителя точку, тире либо наклонную черту «/». При этом все введенные числа, меньшие 31.12, 31-12 либо 31/12 будут автоматически восприниматься как даты, а большие — как текст. Как уже говорилось выше, ячейки с датами могут использоваться в расчетах.
Для тех, кто активно работает с датами в своих таблицах, были созданы надстройки, представляющие собой календарь в Excel. Пример такой надстройки – календарь samradDatePicker. Скажем спасибо создателям этой надстройки и тем, кто доработал ее и перевел на русский язык! Надстройка упрощает ввод дат в ячейки листа Excel. После установки этой надстройки в контекстное меню (щелчок правой кнопки мыши) добавляется новый пункт «Выбрать из календаря», а при выделении ячеек, содержащих дату, справа от ячейки отображается значок календаря.
бесплатно скачать надстройку samradDatePicker для быстрого ввода дат
Как устанавливаются надстройки в Excel, уже описывалось в одной из статей на этом сайте, поэтому не буду повторяться. Добавлю лишь только, что Вы можете бесплатно скачать эту надстройку, а также ознакомиться с другими полезными надстройками для Excel.
Как вставить в ячейку статическую, фиксированную, не обновляемую дату?
Выделите в окне открытого листа ячейку, в которую требуется вставить текущую дату, и нажмите сочетание клавиш Ctrl+; (точка с запятой). При нажатии этого сочетания клавиш делается своего рода «снимок» с текущей даты и вставляется в ячейку. Введенная таким способом дата не изменяется с течением времени, а остается фиксированной.
Как вставить в ячейку текущую автоматически обновляемую дату?
Выберите нужную ячейку на листе Excel и введите в нее, как показано ниже, функцию «Сегодня», использующую значение системных часов компьютера.
Функцию можно вписать в ячейку вручную с клавиатуры, а можно воспользоваться мастером функций.
Другие материалы по теме:
Одним из распространенных способов использования Excel является создание списков событий, встреч и других мероприятий, связанных с календарем. В то время как Excel способен с легкостью обрабатывать эти данные, он не имеет быстрого способа визуализировать эту информацию. Нам потребуется немного творчества, условного форматирования, несколько формул и 3 строки кода VBA, чтобы создать симпатичный, интерактивный календарь. Рассмотрим, как можем все это реализовать.
Я нашел этот пример на сайте Chandoo.org и делюсь им с вами.
Интерактивный календарь в Excel
На выходе у нас должно получиться что-то вроде этого:
Создаем таблицу с событиями
На листе Расчеты создаем таблицу со всеми событиями
Настраиваем календарь
Так как все события происходят в рамках двух месяцев, я просто ввел первую дату первого месяца, протянул вниз и отформатировал так, чтобы было похоже на календарь. На данном этапе он должен выглядеть следующим образом.
Задаем имя диапазону дат в календаре
Это просто, выделяем весь диапазон дат нашего календаря и в поле Имя задаем «Календарь»
Определяем ячейку с выделенной датой
На листе Расчеты выбираем пустую ячейку и задаем ей имя «ВыделеннаяЯчейка». Мы будем использовать ее для определения даты, которую выбрал пользователь. В нашем случае, это ячейка G3.
Добавляем макрос на событие Worksheet_selectionchange()
Описанный ниже код поможет идентифицировать, когда пользователь выбрал ячейку в диапазоне “Календарь”. Добавьте этот код на лист с календарем. Для этого открываем редактор VBA, нажатием Alt+F11. Копируем код ниже и вставляем его Лист1.
1 |
Private Sub Worksheet_SelectionChange(ByVal Target As Range) |
Настраиваем формулы для отображения деталей при выборе даты
Изменение даты на календаре ведет за собой изменение 4-х параметров отображения в анонсе: название, дата, место и описание. Зная, что дата находится в ячейке «ВыделеннаяЯчейка», воспользуемся формулами ВПР, ЕСЛИ и ЕСЛИОШИБКА для определения этих параметров. Логика формул следующая: если на выбранную дату существует событие, возвращает данные этого события, иначе возвращает пустую ячейку. Формулы с определением параметров события находятся на листе Расчеты, в ячейках G10:G13.
Добавление анонса
Наконец добавляем в лист Календарь 4 элемента Надпись и привязываем их к данным, находящихся в ячейках G10:G13 листа Расчеты.
Совет: для того, чтобы привязать значение ячейки к элементу Надпись, просто выделите элемент, в строке формул наберите G10 и щелкните Enter.
Настраиваем условное форматирование для выделенной даты
Наконец, добавьте условное форматирование, чтобы выделить даты с событиями в календаре.
Выберите диапазон дат в календаре
Переходим на вкладке Главная в группу Стили –> Условное форматирование –> Создать правило
В диалоговом окне Создание правила форматирования, выберите тип правила Использовать формулу для определения форматируемых ячеек.
Задаем правила выделения как на рисунке
Форматируем
Подчищаем рабочий лист, форматируем наш календарь и получаем классную визуализацию.
Пример рабочей книги с интерактивным календарем.
Working with Excel can be daunting for beginners. Even those who have experience with the program can often find it confusing and tedious. However, it’s one of the best and most widely used spreadsheet programs. To be on top of your own cells in Excel, it’s best if you have all the help you can get. And you can have this with XLTools’ suite of Excel add-ins, one of which is XLTools.net Calendar. The XLTools.net Calendar is a very useful add-in that helps extend Excel’s functionality, making it more intuitive and easy to use.
Easily Edit and Format Data in Excel with XLTools.net
Whether you’re working on a project timeline, leads list, contact list, or appointments using Excel, it’s always great if your information has the same format. Data can also be easily manipulated and analyzed when their formatting is done correctly.
When it comes to dates, especially, there are many formats that can make your spreadsheet look cluttered if you don’t create a standard. Different date formats, or even formatting a date wrong, can also cause in discrepancies by the time you analyze your data.
Conveniently Pick a Date and Time
With XLTools.net Calendar, you can have a convenient drop-down list for dates so you can easily choose the dates that you want off a calendar. You can just scroll through the years and months and pick the date that you want for every entry in Excel that requires a date.
The calendar drop-down also displays the week number and allows you to also easily pick the current date. Whatever your chosen date is in a cell will follow the format that you have set it. This can make it easier to format large amounts of data.
It’s also very useful whenever you want to make sure your dates are exact and you don’t make mistakes as you simply choose the days, months, and years from the drop-down list. The add-in will not recognize wrong dates or months, because it will only accept the right dates and years.
The add-in can also be used if you simply want to check for the date and time. It allows you to do this with the help of a pop-up calendar. Just use the shortcut key to populate the calendar.
Download this Convenient Excel Add-in
Having this XLTools.net add-in can save you a lot of time, from thinking about the date and time, looking at an actual calendar or on a separate calendar tool. Everything you need to be on top of your schedule or to write the correct dates and times is just right within Excel.
What’s also great about having Excel add-ins such as this calendar is that you don’t have to open a new window or a new app, or even leave Excel–not even your own desk–in order to work. The most essential and widely used tools you need, such as this calendar, can already be found within Excel, using the right add-in, thanks to the Microsoft AppSource.
Once you install an Office add-in, such as the XLTools.net Calendar, in any of the corresponding Office programs, in any device, you can expect that the same add-ins can be found whenever you use Office programs in any of your other devices. This is because when you use your Office credentials to download and install an Office add-in through one device, it will also be available in your other devices as long as you’re logged into Office.
Go to XLTools.Net Calendar
Содержание
- Выполняйте запланированные задачи в Excel в заданное время и с указанным интервалом
- Перед началом работы добавьте инструмент «Планировщик задач» в Excel
- Как управлять запланированными задачами в «Планировщике задач» для Excel
- Встраивайте календарь для вставки дат в книги Excel, и он будет доступен другим пользователям
- Перед началом работы добавьте «Встроенный календарь» в Excel
- Как встроить календарь в рабочую книгу Excel
- Как изменить настройки Встроенного календаря
- Как удалить Встроенный календарь из книги
- Если я отправлю книгу другим людям, календарь будет им доступен?
- О чем важно помнить, отправляя книгу другим людям
- Появляется предупреждение системы безопасности, что это значит?
- Встраивайте календарь для вставки дат в книги Excel, и он будет доступен другим пользователям
- Создание календаря в Excel
- Формирование календаря в Excel
- Способ 1: Календарь на год вручную
- Способ 2: С применением формул
- Способ 3: Использование специального шаблона
- Готовый результат
- Пример дашборда с интерактивным календарем в Excel
- Специализированный календарь для работы и дежурств
- Интерактивная визуализация данных в Excel без макросов
- Скачать шаблон примера с интерактивным календарем в Excel
- Get expert help now
- Простой календарь
- Как установить систему дат 1904?
- Производственный календарь
- Как задать свой собственный формат даты? Как преобразовать дату в год, месяц либо день недели?
- Платежный календарь
- Если я отправлю книгу другим людям, календарь будет им доступен?
Выполняйте запланированные задачи в Excel в заданное время и с указанным интервалом
Иногда в Excel может быть необходимо выполнять запланированные задачи, например, обновлять рабочую книгу каждые несколько часов или генерировать отчет каждое утро понедельника. Возможно, вы уже пробовали создать повторяющийся макрос или настроить выполнение макроса через Планировщик заданий Windows. Если так, то вы знаете, что это не так просто.
Инструмент XLTools «Планировщик задач» позволяет создать и автоматически выполнить задачи в заданное время гораздо удобнее. Как это работает:
Перед началом работы добавьте инструмент «Планировщик задач» в Excel
«Планировщик задач» – это один из 20+ инструментов в составе надстройки XLTools для Excel. Работает в Excel 2019, 2016, 2013, 2010, десктоп Office 365.
Как управлять запланированными задачами в «Планировщике задач» для Excel
Вы всегда можете посмотреть список запланированных задач в «Планировщике задач» XLTools, отредактировать, удалить или создать новые.
Откройте любую книгу Excel Откройте вкладку XLTools В группе Автоматизация нажмите Планировщик задач Откроется окно.
Источник
Встраивайте календарь для вставки дат в книги Excel, и он будет доступен другим пользователям
Когда вы создаете какие-то документы или шаблоны в Excel и потом отправляете их своим коллегам, клиентам или партнерам для заполнения, вам хочется упростить им задачу. Вам также нужно сократить возможные ошибки ввода данных вручную, чтобы не тратить много времени на их очистку, когда вам вернут заполненные документы. А когда дело доходит до ввода дат – здесь люди бывают особенно «креативны».
Встроенный календарь можно добавить в рабочие книги и помочь пользователями со вводом дат и времени в ячейки:
Людям, которым вы отправляете файл, НЕ нужно устанавливать XLTools, чтобы использовать календарь. Он встроен в рабочую книгу в виде легкого макроса. Рабочую книгу требуется сохранить как файл с поддержкой макросов *.XLSM.
Перед началом работы добавьте «Встроенный календарь» в Excel
«Встроенный календарь» – это один из 20+ инструментов в составе надстройки XLTools для Excel. Работает в Excel 2019, 2016, 2013, 2010, десктоп Office 365.
Как встроить календарь в рабочую книгу Excel
Убедитесь, что у вас включены параметры макросов для разработчика:
Вкладка «Разработчик» Безопасность макросов Отметьте флажком Доверять доступ к объектной модели проектов VBA .
Откройте книгу, в которую нужно встроить календарь для вставки дат.
Вкладка XLTools В группе «Дата и Время» откройте выпадающий список Нажмите Встроить в эту книгу .
Если будет предложено сохранить книгу, нажмите Сохранить Сохраните файл в формате *.XLSM.
Как изменить настройки Встроенного календаря
Настройки Встроенного календаря определяют, как календарь будет отображаться и работать в конкретной рабочей книге – как на вашем компьютере, так и на комьютерах других пользователей, которым вы отправите эту книгу.
Когда вы встраиваете календарь в рабочую книгу впервые, он унаследует настройки, заданные вами по умолчанию для Всплывающего календаря.
Чтобы изменить настройки Встроенного календаря в книге:
Откройте вкладку XLTools Настройки Вкладка «Дата/Время».
Задайте нужные настройки.
Нажмите ОК Готово!
Как удалить Встроенный календарь из книги
Если я отправлю книгу другим людям, календарь будет им доступен?
Когда вы встроите календарь в рабочую книгу и отправите ее другим пользователям, они смогут применять календарь в этой книге. Им НЕ потребуется устанавливать XLTools на свои компьютеры.
Встроенный календарь будет доступен большинству пользователей, но есть некоторые ограничения. Он будет доступен, если у пользователей:
О чем важно помнить, отправляя книгу другим людям
Вы можете отправить рабочую книгу со Встроенным календарем по электронной почте или загрузить на облачный диск, напр., Яндекс.Диск, Microsoft OneNote, Google Drive, Dropbox. Так же, как вы делитесь любым другим файлом.
Когда пользователи откроют рабочую книгу на своих компьютерах, она откроется в режиме защищенного просмотра. Чтобы редактировать книгу и использовать календарь, пользователям нужно Разрешить редактирование :
Мы предпринимаем все меры, чтобы обеспечить безопасность макроса Встроенного календаря, но обратите внимание:
Появляется предупреждение системы безопасности, что это значит?
Когда вы открыли Excel файл и видите на панели сообщений «Предупреждение системы безопасности: запуск макросов отключен», значит, в этой рабочей книге содержатся макросы, и Excel их отключил. Макрос – это набор команд, который служит для автоматизации задач.
Встроенный календарь – это по сути макрос, который добавляет функционал календаря для вставки дат в рабочую книгу. Чтобы использовать календарь в книге, пользователям нужно включить макросы в Excel.
Чтобы включить все макросы, откройте Файл Параметры Центр управления безопасностью Параметры центра управления безопасностью Параметры макросов Выберите Включить все макросы :
Источник
Встраивайте календарь для вставки дат в книги Excel, и он будет доступен другим пользователям
Beta Это новый инструмент, и мы очень ждем ваших отзывов. Он вам полезен? С ним удобно работать? Напишите нам черезсайтили поemail. Обратите внимание: в бета версии инструмента могут быть баги и недочёты. Чтобы протестировать, начнитепробный периодилиобновитеXLTools до версии 5.3.1.
Когда вы создаете какие-то документы или шаблоны в Excel и потом отправляете их своим коллегам, клиентам или партнерам для заполнения, вам хочется упростить им задачу. Вам также нужно сократить возможные ошибки ввода данных вручную, чтобы не тратить много времени на их очистку, когда вам вернут заполненные документы. А когда дело доходит до ввода дат – здесь люди бывают особенно «креативны».
Встроенный календарь можно добавить в рабочие книги и помочь пользователями со вводом дат и времени в ячейки:
- Встраивайте календарь в конкретные книги, которые будете отправлять
- Задавайте формат даты/времени и другие настройки для контроля ввода данных
- Календарь понятен в применении: нажмите на ячейку – выберите дату
Людям, которым вы отправляете файл, НЕ нужно устанавливать XLTools, чтобы использовать календарь. Он встроен в рабочую книгу в виде легкого макроса. Рабочую книгу требуется сохранить как файл с поддержкой макросов *.XLSM.
Создание календаря в Excel
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.
Источник
Время на прочтение
8 мин
Количество просмотров 4.4K
В разговорах об Office Add-ins (надстройки Office) часто упоминается «продуктивность». Это логично, ведь главная цель разработчиков – повышение продуктивности в работе конечных пользователей. Но продуктивность важна и для самих разработчиков. Эта статья о продуктивности в разработке. Речь пойдёт о новом JavaScript API для Office и о том, какие инструменты мы применяем для создания новых решений.
Office Add-in за 1 день
В декабре 2015 года меня пригласили поучаствовать в рабочей сессии по Office 365 как консультанта по созданию надстроек Office. На мероприятии собрались команды, интересующиеся продвижением своих продуктов в Office Store. Цель – за два дня погрузиться в тонкости JavaScript API для Office, сформировать концепты будущих решений и реализовать прототипы.
На второй день в промежутках между ответами на вопросы участников у меня оставалось свободное время. Это позволило начать работу над новой идеей. В VSTO-версии расширения XLTools для Excel есть популярная среди пользователей функция – календарь для ввода дат. Мне давно хотелось реализовать её и для Office Store, но руки не доходили. А т.к. темой рабочей сессии была продуктивность, идея вписывалась как нельзя лучше, поскольку календарь в разы увеличивает скорость работы с документами, в которых требуется ввод дат.
Задуманная функциональность
Для примера возьмем стандартный шаблон для Excel из доступных онлайн – «Список дел»:
Чтобы создать такой документ, откройте в Excel меню Файл > Создать > Ввести в поле «Поиск шаблонов в сети» название шаблона «Список дел».
На экране выше видно, что в таблице присутствуют два поля с типом «Дата»: «Дата начала» и «Дата выполнения». Каждый, кому приходилось работать с датами в Excel, знает, что ввод дат сопряжён с некоторыми сложностями. Вот если бы можно было просто выбирать дату из календаря!
Так и родилась идея. Поразмыслив, я вывел следующий список требований:
- Ввод даты в выбранную ячейку в один клик;
- Автоматическое выделение даты в календаре при выборе ячейки со значением;
- Наглядное отображение информации о выбранной дате (день недели, номер недели);
- Локализация под форматы дат в разных регионах;
- «Встраивание» календаря непосредственно в документ без необходимости установки дополнительных компонент.
Реализация
Я использую Visual Studio. Подходят и другие инструменты, такие как Napa или другой редактора кода, но с точки зрения производительности и удобства, Visual Studio – лучший вариант, т.к. позволяет за минуту создать готовый к запуску и отладке проект надстройки Office. В Napa и других сторонних редакторах отладка Office Add-ins пока не представляется возможной.
Создание проекта
Открываем Visual Studio > File > New > Project > Templates > Office/SharePoint > Apps > Выбираем тип приложения «App for Office». Отмечу, что на момент написания статьи Microsoft заменила название «App» на «Add-in». Наверняка в будущем поменяется и название проекта.
Далее задаем тип приложения. Т.к. надстройка встраиваться в тело документа, выбираем тип «Content» – идеально подходит для решения поставленной задачи. Отличие типа Task pane от Content наглядно демонстрирует нижеприведённый рисунок.
На последнем шаге нам предлагается выбрать шаблон проекта (Basic App – базовый, Document Visualization App – посложнее) и набор поддерживаемых офисных программ: Access, Excel, PowerPoint. Выбираем Basic App и поддержку Excel. Нажимаем Finish. Проект создан и готов к запуску (F5) и отладке.
Проектирование и реализация UI
Давайте ещё раз пройдёмся по требованиям и подумаем, как реализовать каждое из них. Начать стоит с последнего – «встраивание». Тут кроется отличительная особенность нового типа Office Add-ins. По сравнению с традиционными VSTO они не требуют установки дополнительных компонент. Т.е. если создать Excel-документ, добавить в него надстройку из Office Store и отправить документ коллегам, им не потребуется ничего дополнительно устанавливать для работы надстройки. Это ровно то, чего так не хватало пользователям VSTO-версии календаря XLTools.
Календарь не предусматривает сложного UI. В интернете есть море свободно распространяемых JavaScript-библиотек, реализующих функционал отображения календаря. Я выбрал библиотеку Pikaday, удовлетворяющую остальным нашим требованиям на 100%. Библиотека позволяет:
- Отображать календарь непосредственно на веб-странице приложения;
- «Вешать» обработчик на событие «Выбор даты из календаря» (onSelect);
- Выставлять значение выбранной в календаре даты из кода (setDate);
- Переводить название дней недели и месяцев на нужные языки.
Конечно, зачастую мы решаем более сложные задачи, требующие уникального дизайна. Здесь стоит обратить внимание на вышедший недавно фреймворк Office UI Fabric, предоставляющий набор CSS-классов и UI-компонентов, заранее стилизованных под офисные приложения. Стили и компоненты адаптированы для работы под все платформы, поддерживаемые Office: Mobile Apps, Web, Desktop. Использование Office UI Fabric в разы упрощает проектирование и разработку UI. Это как Bootstrap, только специально для разработчиков Office Add-ins.
На UI ушло девять строк кода. Подключение CSS и JavaScript в файле Home.html:
<link href="pikaday.css" rel="stylesheet" type="text/css" />
<script src="pikaday.js" type="text/javascript"></script>
Инициализация календаря в методе Office.initialize в файле Home.js:
var calOptions = {
showWeekNumber: true, // календарь должен отображать номера недель
defaultDate: new Date() // по умолчанию выделяем в календаре текущую дату
};
var placeholder = $("body"); // в качестве «родительского элемента» берем body
var picker = new Pikaday(calOptions); // инициализируем объект календаря
placeholder.append(picker.el); // добавляем элемент календаря в body
Обработка выбора даты в календаре
Pikaday позволяет «навесить» обработчик на событие изменения даты в календаре. Получив дату, мы проставляем её в текущую выделенную ячейку, используя метод из Office API — setSelectedDataAsync:
calOptions.onSelect = function (date) { // задаем обработчик события изменения даты
date = getLocaleShortDateString(date); // преобразуем объект Date в строку
Office.context.document.setSelectedDataAsync(date, // передаем дату в виде строки
{
coercionType: Office.CoercionType.Text // тип значения – «Текст»
},
function (asyncResult) { // обработчик статуса изменения значения ячейки
if (asyncResult.status == "failed") {
app.showNotification("Failed", asyncResult.error.message, 'error');
}
}
);
};
В примере для работы с датой используется функция getLocaleShortDateString. Она необходима, т.к. Excel воспринимает даты как числа и отображает их в виде даты, только если у ячейки задан соответствующий формат. Проблема кроется в том, что число в ячейку мы записать можем, а вот изменить формат ячейки текущее JavaScript API не позволяет. К счастью, нашёлся обходной способ. Чтобы получить в ячейке именно дату, нужно проставить её в виде текста, соблюдая выбранный у пользователя формат региона (локали). Функция getLocaleShortDateString как раз используется для преобразования объекта Date в текстовый локализованный формат. Узнать, какой именно региональный стандарт выбран у пользователя, можно через свойство объекта context – Office.context.displayLanguage.
function getLocaleShortDateString(d) {
var f = getLocaleDateString(),
y = d.getFullYear(),
m = d.getMonth() + 1,
d = d.getDate();
function z(s) {
s = '' + s; return s.length > 1 ? s : '0' + s;
}
f = f.replace(/yyyy/, y); f = f.replace(/yy/, String(y).substr(2));
f = f.replace(/MM/, z(m)); f = f.replace(/M/, m);
f = f.replace(/dd/, z(d)); f = f.replace(/d/, d);
return f;
}
function getLocaleDateString() {
var formats = {
"en-US": "M/d/yyyy",
"ru-RU": "dd.MM.yyyy",
... // еще более 200 форматов
};
return formats[Office.context.displayLanguage] || 'dd/MM/yyyy';
}
Подсветка выбранной даты в календаре
JavaScript API для Excel позволяет обрабатывать событие изменения выделенной области ячеек. Используем это, чтобы отследить изменение пользователем выделенной ячейки:
// обработчик изменения выделения
Office.context.document.addHandlerAsync(Office.EventType.DocumentSelectionChanged,
function (eventArgs) {
// запрашиваем значение выделенной ячейки
Office.context.document.getSelectedDataAsync(Office.CoercionType.Text,
{
// говорим, что нам необходимо фактическое значение (число)
valueFormat: Office.ValueFormat.Unformatted
}, function (ufResult) {
if (ufResult.status != "failed") {
var value = ufResult.value;
// если не число - ничего не делаем
if (isInt(value) && value > 0)
{
// переводим число в дату
var date = getJsDateFromExcel(value);
// работаем только с датами +-50 лет от текущей даты
if (new String(date) != "InvalidDate" &&
date.getYear() > new Date().getYear() - 50 &&
date.getYear() < new Date().getYear() + 50)
{
// подсвечиваем значение в календаре
picker.setDate(date, true);
}
}
}
});
});
«Поймав» момент выделения новой ячейки пользователем, проверяем, является ли выбранное значение датой. Чтобы получить значение из выделенной ячейки, используем функцию Office.context.document.getSelectedDataAsync, говорим ей, что вернуть нужно не отформатированное значение. В случае с датой, значением будет целое число (даты со временем не рассматриваем). Далее идут проверки на соответствие значения дате. Определить на 100%, является ли значение в ячейке датой, не представляется возможным. Так, если пользователь выберет ячейку с числом, соответствующим числовому представлению даты – алгоритм посчитает, что это и есть дата. Чтобы минимизировать количество ложных срабатываний на числа, задаём ограничение: проверка даты на +-50 лет от текущего года. Если значение подходит по всем критериям, используем для подсветки метод setDate календаря Pikaday.
Локализация
Сейчас Office Store поддерживает 40 языков. В примерах выше уже показано, как локализовать значение даты. Помимо даты, локализации требует также UI. В случае с календарем Pikaday всё просто:
var myLanguage = Office.context.displayLanguage.split("-")[0];
if (myLanguage == "ru") {
calOptions.firstDay = 1;
calOptions.i18n = {
previousMonth: 'Предыдущий месяц',
nextMonth: 'Следующий месяц',
months: ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь',
'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],
weekdays: ['Воскресенье', 'Понедельник', 'Вторник', 'Среда',
'Четверг', 'Пятница', 'Суббота'],
weekdaysShort: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб']
};
}
Для начала поддерживаем 2 языка: русский и английский. Pikaday по умолчанию англоязычный. Для перевода на русский проверяем текущий регион пользователя и подставляем новые значения для текстовых надписей, если язык интерфейса русский.
Работа с XLTools.net Calendar
Выводы
Меньше чем за один день мне удалось создать Office Add-in, готовый к публикации в Office Store. Такая скорость возможна благодаря опыту и готовым решениям, накопленным годами в веб-разработке. Плюсом является простота JavaScript API для Office, так же как и наличие готового фреймворка Office UI Fabric для построения UI.
Из сложностей можно отметить, что отладка надстроек на разных платформах – неординарная задача. Уже после отправки приложения на проверку в Office Store мне пришлось побороться с отладкой, т.к. первая версия надстройки не прошла проверку из-за ошибок в работе на iPad и в Web-е. С проблемами отладки я справился и напишу об этом отдельную статью.
Недавно надстройка XLTools.net Calendar успешно прошла проверку и теперь доступна для скачивания в Office Store. За две недели мы набрали 1832 скачивания, получили 1 отзыв и 4 максимальных оценки в Office Store. Много положительных отзывов и запросов на доработку функциональности пришло по email. В ближайшее время планируем выпустим усовершенствованный календарь с новыми опциями. Следите за обновлениями!
Об авторе
Петр Ляпин -Технический директор ООО «ВейвПоинт»
Более 10 лет опыта внедрения проектов по автоматизации
бизнес-процессов. Работал со множеством российских и
зарубежных компаний. Основатель проекта XLTools.net.