Прескочи на основното съдържание

Как да проверя дали дадена дата е официален празник и да броим дни с изключение на празниците в Excel?

Автор: Кели Последна промяна: 2020-04-30

Например, имате списък с дати и искате да проверите дали има официални празници в списъка, как можете да го направите бързо? В тази статия ще ви покажа начините за изчисляване на всички дати на американски официални празници в рамките на дадени години и след това ще проверя дали дадена дата е американски празник лесно в Excel.


Част 1: Изчисляване на официални празници с дадена година в Excel

Преди да проверите дали дадена дата е официален празник, трябва да изброите всички празници в дадени години в Excel. Следователно подготовката на таблица, както е показана следната екранна снимка, ще улесни работата ви.

doc провери дали е официален празник 1

Има три вида американски официални празници:

(1) Първият вид е официален празник на определена дата, като например Нова година е на 1 януари. можем лесно да изчислим деня на Нова година с формулата =ДАТА(Дадена година,1,1);

(2) Вторият вид е официален празник в определен делничен ден, като например Деня на президента. Лесно можем да изчислим деня на президента с формулата =ДАТА(Дадена година,1,1)+14+ИЗБОР(ДЕН ДЕЛНИЦА(ДАТА(Дадена година,1,1)),1,0,6,5,4,3,2);

(3) И последният вид е Денят на паметта, можем лесно да изчислим деня на паметта с формулата =ДАТА(Дадена година,6,1)-ДЕЛНИЦА(ДАТА(Дадена година,6,6)).

Тук изброявам формули за изчисляване на всички официални празници в следната таблица. Просто въведете формулите в правилната клетка и натиснете Въведете ключ един по един.

Празник Клетка формули
Нова година C2 =ДАТА(C1,1,1;XNUMX;XNUMX)
Ден на Мартин Лутър Кинг C3 =ДАТА(C1,1,1)+14+ИЗБОР(ДЕЛНИЦА(ДАТА(C1,1,1)),1,0,6,5,4,3,2)
Ден на президента C4 =ДАТА(C1,2,1)+14+ИЗБОР(ДЕЛНИЦА(ДАТА(C1,2,1)),1,0,6,5,4,3,2)
Ден на загиналите във войните C5 =ДАТА(C1,6,1)-ДЕЛНИЦА(ДАТА(C1,6,6))
Ден на Независимостта C6 =ДАТА(C1,7,4;XNUMX;XNUMX)
Ден на труда C7 =ДАТА(C1,9,1)+ИЗБЕРИ(ДЕЛНИЦА(ДАТА(C1,9,1)),1,0,6,5,4,3,2)
Денят на Колумб C8 =ДАТА(C1,10,1)+7+ИЗБОР(ДЕЛНИЦА(ДАТА(C1,10,1)),1,0,6,5,4,3,2)
Ден на ветераните C9 =ДАТА(C1,11,11;XNUMX;XNUMX)
Ден на благодарността C10 =ДАТА(C1,11,1)+21+ИЗБОР(ДЕЛНИЦА(ДАТА(C1,11,1)),4,3,2,1,0,6,5)
Коледа C11 =ДАТА(C1,12,25;XNUMX;XNUMX)

Забележка: Във формулите в горната таблица C1 е референтната клетка, която намира дадената година. В нашия пример това означава година 2015 и можете да го промените според вашите нужди.

С тези формули можете лесно да изчислите датите на официалните празници с дадени години. Вижте екранна снимка по-долу:

doc провери дали е официален празник 2

Запазете диапазон като запис в автоматичен текст (останалите клетъчни формати и формули) за повторно използване в бъдеще

Трябва да е много досадно да препращате клетки и да прилагате формули за изчисляване на всеки празник. Kutools за Excel предоставя сладко решение на автотекст помощна програма за запазване на диапазона като запис в автоматичен текст, който може да запази клетъчните формати и формулите в диапазона. И тогава ще използвате повторно този диапазон само с едно кликване. Работата става лесна само с едно кликване, за да вмъкнете тази таблица и да промените годината в тази таблица!


реклама автомобилни американски празници 1

Kutools за Excel - Заредете Excel с над 300 основни инструмента. Насладете се на пълнофункционален 30-дневен БЕЗПЛАТЕН пробен период без кредитна карта! Вземи Го Сега

Част 2: Проверете дали дадена дата е официален празник в Excel

След като изброим всички дати на официални празници за определени години, можем лесно да проверим дали дадена дата е празнична или не с формули в Excel. Да предположим, че имате списък с дати, както е показано на следната екранна снимка, и аз ще ви представя начините да го направите лесно.

Изберете празна клетка освен списъка с дати, казва Cell B18, въведете формулата =АКО(COUNTIF($C$2:$D$11,A18),"Ваканция","Не") в него и след това плъзнете манипулатора за запълване до диапазона, от който се нуждаете. Вижте екранната снимка по-горе:

бележки:

(1) Във формулата =IF(COUNTIF($C$2:$D$11,A18),"Holiday","No"), $C$2:$D$11 е диапазонът от официални празници през определени години и A18 е клетката с дата, която искате да проверите дали е официален празник, и можете да ги промените според вашите нужди. И тази формула ще върне „Празник“, ако конкретната дата е официален празник, и ще върне „Не“, ако не е.

(2) Можете също да приложите тази формула за масив =АКО(ИЛИ($C$2:$D$11=A18),"Ваканция","НЕ") за да проверите дали съответната дата е празнична или не.


Част 3: Преброяване на дни между два дни с изключение на почивните дни и празниците в Excel

В част 1 сме изброили всички празници в дадена година и сега този метод ще ви насочи да преброите броя на дните с изключение на всички почивни дни и празници в даден период от време.

Изберете празна клетка, която ще върне броя на дните, и въведете формулата =МРЕЖИ ДНИ(E1,E2,B2:B10) в него и натиснете Въведете ключ.

Забележка: В горните клетки E1 е началната дата на определен период от време, E2 е крайната дата и B2:B10 е списъкът с празници, който изчисляваме в част 1.

doc провери дали е официален празник 6

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

Копирайте формулите точно/статично, без да променяте препратките към клетки в Excel

Kutools за Excel Точно копие помощната програма може да ви помогне лесно да копирате множество формули точно, без да променяте препратките към клетки в Excel, предотвратявайки автоматичното актуализиране на относителните препратки към клетки.


формули за точно копиране на реклама 3

Kutools за Excel - Заредете Excel с над 300 основни инструмента. Насладете се на пълнофункционален 30-дневен БЕЗПЛАТЕН пробен период без кредитна карта! Вземи Го Сега

Най-добрите инструменти за продуктивност в офиса

🤖 Kutools AI помощник: Революционизирайте анализа на данни въз основа на: Интелигентно изпълнение   |  Генериране на код  |  Създаване на персонализирани формули  |  Анализирайте данни и генерирайте диаграми  |  Извикване на функциите на Kutools...
Популярни функции: Намерете, маркирайте или идентифицирайте дубликати   |  Изтриване на празни редове   |  Комбинирайте колони или клетки без загуба на данни   |   Кръг без формула ...
Супер търсене: VLookup с множество критерии    VLookup с множество стойности  |   VLookup в няколко листа   |   Размито търсене ....
Разширен падащ списък: Бързо създаване на падащ списък   |  Зависим падащ списък   |  Падащ списък с множество избори ....
Мениджър на колони: Добавете конкретен брой колони  |  Преместване на колони  |  Превключване на състоянието на видимост на скритите колони  |  Сравнете диапазони и колони ...
Препоръчани функции: Мрежов фокус   |  Изглед на дизайна   |   Голям формула бар    Мениджър на работни книги и листове   |  Библиотека с ресурси (Автоматичен текст)   |  Избор на дата   |  Комбинирайте работни листове   |  Шифроване/декриптиране на клетки    Изпращайте имейли по списък   |  Супер филтър   |   Специален филтър (филтър получер/курсив/зачертано...) ...
Топ 15 комплекта инструменти12 Текст Инструменти (добавяне на текст, Премахване на символи, ...)   |   50 + Графика Видове (диаграма на Гант, ...)   |   40+ Практичен формули (Изчислете възрастта въз основа на рождения ден, ...)   |   19 вмъкване Инструменти (Въведете QR код, Вмъкване на картина от пътя, ...)   |   12 Конверсия Инструменти (Числа към думи, Валутен обмен, ...)   |   7 Обединяване и разделяне Инструменти (Разширено комбиниране на редове, Разделени клетки, ...)   |   ... и още

Усъвършенствайте уменията си за Excel с Kutools за Excel и изпитайте ефективност, както никога досега. Kutools за Excel предлага над 300 разширени функции за повишаване на производителността и спестяване на време.  Щракнете тук, за да получите функцията, от която се нуждаете най-много...

Описание


Раздел Office Внася интерфейс с раздели в Office и прави работата ви много по-лесна

  • Разрешете редактиране и четене с раздели в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Отваряйте и създавайте множество документи в нови раздели на един и същ прозорец, а не в нови прозорци.
  • Увеличава вашата производителност с 50% и намалява стотици кликвания на мишката за вас всеки ден!
Comments (9)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Like the Observed Holiday, I need to also recognize additional days off outside of the Holiday or observed holidays. Example: If Christmas is on a Friday, I need to calculate the days before and after (until New Years) off.
This comment was minimized by the moderator on the site
How would you calculate 15 calendar days from a given date including weekends but excluding holidays using a list/table of holiday dates?
This comment was minimized by the moderator on the site
How to make it show the actual name of the holiday instead of just "holiday"?
This comment was minimized by the moderator on the site
Hi KC,
You can change the text “holiday” to INDEX($A$1:$A$11,MATCH(A18,$C$1:$C$11,0)) in the formula, and the whole formula will be changed to
=IF(COUNTIF($C$2:$C$11,A18),INDEX($A$1:$A$11,MATCH(A18,$C$1:$C$11,0)),"No")

Please note that the dates you will check should be placed in one column.
This comment was minimized by the moderator on the site
Thanks, I have worked out a system to determine whether a public holiday is a weekday, but this also gives an alternative. The problem is that if one does it per month, then there are gaps between days where public holidays occur during weekdays. An example as below taking part of December 2017. the figures to immediate right of dates (Col B) are the WEEKDAY values. If date falls on a Saturday or Sunday (value 6 or 7) then the C Column reflects a blank cell ("") if a weekday the Cell has a "1", if a Public Holiday during a weekday then a "0" 21/12/2017 4 1 22/12/2017 5 1 23/12/2017 6 24/12/2017 7 25/12/2017 1 0 26/12/2017 2 0 27/12/2017 3 1 28/12/2017 4 1 29/12/2017 5 1 30/12/2017 6 31/12/2017 7 I can then sort manually using the Filter approach to get the 1's in one continuous column of rows without the blanks or 0's. Copy and paste to a worksheet where I can import the data into the temperature charts. I am trying to get the filter section automated either via formula by deleting all the 0's and blank cells with the resultant shifting up of cells containing the 1's, or via VBA. The ultimate prize would be combining the steps in Column A and Column C into one formula. The end game is to populate a temperature chart with the workday name and in the next corresponding row the day of the required month Mon Tue Thu Fri 7 8 10 11 Using August as an example where the 9th is a public holiday that falls during a work day, resulting in the data relating to the Wed being removed and the rest of the column shifting up one (or more) places. Then transposed into the above cells. I hope I am explaining with sufficient clarity :-)
This comment was minimized by the moderator on the site
How could I make this work for Federal Holiday? Meaning if the date of a holiday happens to fall on a weekend then the Federal holiday would either be Friday or Monday.
This comment was minimized by the moderator on the site
I used the formulas above to calculate the actual day of the holiday and made a second column for Observed holiday. I made this formula to accomplish this: =IF((WEEKDAY(B15))=1,B15+1,IF((WEEKDAY(B15))=7,B15-1,B15)). The cell reference B15 is referring to the holiday which is in the actual holiday column, in this case New Years Day. When the actual holiday falls on a Saturday, the Observed holiday will be listed as Friday and for actual holidays falling on Sunday, the observed holiday will be listed as Monday. Hope this helps.
This comment was minimized by the moderator on the site
This is an accurate function which will work for New Years Day that would fall on a weekend (years 2022 and 2023): =WORKDAY(DATE(CalendarYear,1,1),--(WEEKDAY(DATE(CalendarYear,1,1),2)>5))
This comment was minimized by the moderator on the site
trying to make a formula for subtracting CALENDAR DAYS and holidays. I have been able to figure out for WORKDAYS and HOLIDAY, but I cannot figure out how to do CALENDAR days and holidays. here is what I am currently using for WORKDAYS AND HOLIDAYS. Help! So I need this to be CALENDAR days instead of WORKDAYS.] =WORKDAY(B28-5,1,HOLIDAYS)
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations