Таблица праздников для excel

Microsoft Excel

трюки • приёмы • решения

Как в Excel рассчитать даты праздников

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

Например, чтобы вычислить день празднования Нового года (который всегда выпадает на 1 января) для конкретного года, хранящегося в ячейке А1, вы можете воспользоваться такой функцией: =ДАТА(А1;1;1) . Другие праздники, в свою очередь, отмечаются в определенный день недели и месяц. Например, День труда в США приходится на первый понедельник сентября.

Во всех формулах подразумевается, что ячейка А1 содержит значение года (например, 2010). Заметьте, что Новый год, День независимости, День ветеранов и Рождество — каждый этот праздник всегда отмечается в определенный день в году, поэтому дату можно вычислить с помощью простой функции ДАТА.

Новый год

Этот праздник всегда приходится на 1 января. Еще раз повторю формулу для его вычисления: =ДАТА(А1;1;1) .

День Мартина Лютера Кинга

Этот праздник приходится на третий понедельник января. Следующая формула рассчитывает дату Дня Мартина Лютера Кинга для года, указанного в ячейке А1:
=ДАТА(А1;1;1)+ЕСЛИ(2 .

День президента

День президента приходится на третий понедельник февраля. Формула для вычисления Дня президента для года из ячейки А1 такова:
=ДАТА(А1;2;1)+ЕСЛИ(2 .

Католическая Пасха

Нахождение даты Пасхи затрудняется из-за сложного метода расчета. Пасха — это первое воскресенье после полнолуния, случившегося после дня весеннего равноденствия. Я нашел эти формулы для вычисления дня католической Пасхи в Интернете, но понятия не имею, как они работают. Они не подойдут, если ваша книга использует систему дат 1904 (см. эту статью для получения более подробной информации о системе дат 1904).
=РУБЛЬ((«4/»&A1)/7+ОСТАТ(19*ОСТАТ(А1;19)-7;30)*14%;)*7-6 .
Вот еще одна формула — она короче, но не менее замысловатая:
=0КРВНИЗ(ДЕНЬ(МИНУТЫ(A1/38)/2+56)&/5/»&A1;7)-34

День памяти

Последним понедельником в мае является День памяти. Следующая формула вычисляет День памяти для года из ячейки А1:
=ДАТА(А1;6;1)+ЕСЛИ(2
Обратите внимание, что формула вычисляет первый понедельник в июне, а затем отнимает значение 7 от результата, возвращая таким образом последний понедельник мая.

День независимости

Праздник День независимости США всегда выпадает на 4 июля: =ДАТА(А1;7;4)

День труда

День труда отмечают в первый понедельник сентября. Следующая формула вычисляет День труда для года, указанного в ячейке А1:
=ДАТА(А1;9;1)+ЕСЛИ(2

День Колумба

Такой праздник, как День Колумба, выпадает на второй понедельник октября. Следующая формула вычисляет День Колумба для года из ячейки А1:
=ДАТА(А1;10;1)+ЕСЛИ(2

День ветеранов

Праздник День ветеранов всегда приходится на 11 ноября: =ДАТА(A1;11;11)

День благодарения

День благодарения отмечается в четвертый четверг ноября. Следующая формула вычисляет День благодарения для года, указанного в ячейке А1:
=ДАТА(А1;11;1)+ЕСЛИ(5

Рождество

Католическое Рождество всегда приходится на 25 декабря: =ДАТА(А1:12;25)

Источник статьи: http://excelexpert.ru/kak-v-excel-rasschitat-daty-prazdnikov

Шаблоны календарей в Excel

Многие шаблоны календарей можно использовать в Microsoft Excel. Шаблон представляет собой базовый макет календаря, который можно легко адаптировать для своих потребностей.

Шаблон календаря Excel может иметь одну или несколько из этих функций:

12 месяцев на одном или нескольких из них.

Тринадцать месяцев учебного года, начиная с июля или августа и заканчивая июлем или августом следующего года.

Печать календаря на одной или двенадцати страницах (тринадцать страниц для календарей учебного года).

Читайте также:  Накануне своего профессионального праздника

Отображение рабочих дней с понедельника по воскресенье или с понедельника по воскресенье.

К портретной или альбомной ориентации печатных страниц.

Столбец заметок с правилом.

Отслеживание расписания на день.

Скачивание шаблона календаря:

Просмотрите шаблоны календарей,выберите шаблон календаря Excel, который лучше всего вам больше всего интересует. Нажмите кнопку «Скачать» на странице шаблона, откройте файл шаблона в Excel, а затем отредактируете и сохраните календарь.

Примечание: По умолчанию скачаный файл шаблона попадает в папку «Загрузки» на компьютере. Файл шаблона можно скопировать в другое место, чтобы его было проще найти.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.

Источник статьи: http://support.microsoft.com/ru-ru/office/%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B-%D0%BA%D0%B0%D0%BB%D0%B5%D0%BD%D0%B4%D0%B0%D1%80%D0%B5%D0%B9-%D0%B2-excel-f2e7ffe9-41fa-4ce5-8278-cf92d3b66340

Производственный календарь в Excel

Производственный календарь, т.е. список дат, где соответствующим образом помечены все официальные рабочие и выходные дни — совершенно необходимая штука для любого пользователя 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 и новее — она уже встроена по умолчанию).

Логика действий будет такая:

  1. Делаем запрос для загрузки данных с сайта за один любой год
  2. Превращаем наш запрос в функцию
  3. Применяем эту функцию к списку всех имеющихся лет, начиная с 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 три аргумента: год, месяц и день, соответственно. После нажатия на ОК получаем требуемый столбец с нормальными датами выходных, а остальные столбцы удаляем как в п.2

Шаг 2. Превращаем запрос в функцию

Следующая наша задача — преобразовать созданный на 2020 год запрос в универсальную функцию для любого года (номер года будет её аргументом). Для этого делаем следующее:

1 . Разворачиваем (если ещё не развернута) панель Запросы (Queries) слева в окне Power Query:

2 . После преобразования запроса в функцию возможность видеть шаги, из которых состоит запрос и легко их редактировать, к сожалению, пропадает. Поэтому имеет смысл сделать копию нашего запроса и резвиться уже с ней, а оригинал оставить про запас. Для этого щелкаем правой кнопкой мыши в левой панели по нашему запросу calendar и выбираем команду Дублировать (Duplicate).

Читайте также:  Народные праздники рисунки карандашом простые

Щелкнув еще раз правой по получившейся копии calendar(2) выберем команду Переименовать (Rename) и введём новое имя — пусть будет, например, fxYear:

3 . Открываем исходный код запроса на внутреннем языке Power Query (он лаконично назвается «М») с помощью команды Расширенный редактор на вкладке Просмотр (View — Advanced Editor) и вносим туда небольшие правки для превращения нашего запроса в функцию на любой год.

Если интересны подробности, то здесь:

  • (year as number)=> — объявляем, что в нашей функции будет один числовой аргумент — переменная year
  • Подклеиваем переменную year в веб-ссылку на шаге Источник. Поскольку Power Query не позволяет склеивать числа и текст, то на лету преобразовываем номер года в текст с помощью функции Number.ToText
  • Подставляем переменную year вместо 2020 года на предпоследнем шаге #»Добавлен пользовательский объект«, где мы формировали дату из фрагментов.

После нажатия на Готово наш запрос превращается в функцию:

Шаг 3. Импортируем календари за все года

Осталась самая малость — сделать последний главный запрос, который будет закачивать данные за все имеющиеся года и складывать все полученные даты праздников в одну таблицу. Для этого:

1 . Щёлкаем в левой панели запросов в серое пустое место правой кнопкой мыши и выбираем последовательно Новый запрос — Другие источники — Пустой запрос (New Query — From other sources — Blank query) :

2 . Нам нужно сформировать список всех лет, для которых мы будем запрашивать календари, т.е. 2013, 2014 . 2020. Для этого в строке формул появившегося пустого запроса вводим команду:

. в Power Query формирует список целых чисел от А до Б. Например, выражение

. выдало бы список 1,2,3,4,5.

Ну, а чтобы не привязываться жёстко к 2020 году, мы используем функцию DateTime.LocalNow() — аналог экселевской функции СЕГОДНЯ (TODAY) в Power Query — и извлекаем из неё, в свою очередь, текущий год функцией Date.Year.

3 . Полученный набор лет хоть и выглядит вполне адекватно, но для Power Query представляет собой не таблицу, а особый объект — список (List) . Но преобразовать его в таблицу — не проблема: достаточно нажать кнопку В таблицу (To Table) в левом верхнем углу:

4 . Финишная прямая! Применяем созданную нами ранее функцию fxYear к полученному списку лет. Для этого на вкладке Добавление столбца жмём кнопку Вызвать настраиваемую функцию (Add Column — Invoke Custom Function) и задаём её единственный аргумент — колонку Column1 с годами:

После нажатия на ОК наша функция fxYear по очереди отработает импорт для каждого года и мы получим столбец, где в каждой ячейке будет содержаться таблица с датами нерабочих дней (содержимое таблицы хорошо видно, если щёлкнуть мышью в фон ячейки рядом со словом Table):

Останется развернуть содержимое вложенных таблиц, щёлкнув по значку с двойными стрелками в шапке столбца Даты (галочку Использовать исходное имя столбца как префикс при этом можно снять):

. и после нажатия на ОК мы получим то, что хотели — список всех праздников с 2013 и до текущего года:

Первый, ненужный уже столбец, можно удалить, а для второго задать тип данных Дата (Date) в выпадающем списке в шапке столбца:

Сам запрос можно переименовать как-нибудь более осмысленно, чем Запрос1 и выгрузить затем результаты на лист в виде динамической «умной» таблицы с помощью команды Закрыть и загрузить на вкладке Главная (Home — Close & Load) :

Обновлять созданный календарь в будущем можно щелчком правой кнопки мыши по таблице или запросу в правой панели через команду Обновить. Или же использовать кнопку Обновить все на вкладке Данные (Date — Refresh All) или сочетание клавиш Ctrl + Alt + F5 .

Источник статьи: http://www.planetaexcel.ru/techniques/6/13289/

Оцените статью
Adblock
detector