Условно форматиране на Excel за дати & време: формули и правила

  • Споделя Това
Michael Brown

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

Ако имате основни познания за формулите на Excel, най-вероятно сте запознати с някои от функциите за дата и час, като NOW, TODAY, DATE, WEEKDAY и т.н. В този урок ще направим още една стъпка напред, за да условно форматиране на дати в Excel по желания от вас начин.

    Условно форматиране на дати в Excel (вградени правила)

    Microsoft Excel предоставя 10 възможности за форматиране на избрани клетки въз основа на текущата дата.

    1. За да приложите форматирането, просто отидете в Начало tab> Условно форматиране> Правила за подчертаване на клетките и изберете Настъпваща дата .

    2. Изберете един от опции за дата от падащия списък в лявата част на прозореца - от последния до следващия месец.
    3. Накрая изберете един от предварително дефинираните формати или настройте свой собствен формат, като изберете различни опции в Шрифт , Граница и Напълнете Ако стандартната палитра на Excel не е достатъчна, винаги можете да щракнете върху Още цветове... бутон.

    4. Кликнете върху ОК и се наслаждавайте на резултата! : )

    Този бърз и прост начин обаче има две съществени ограничения - 1) работи само за избрани клетки и 2) условният формат винаги се прилага въз основа на текущата дата.

    Формули за условно форматиране на дати в Excel

    Ако искате да маркирате клетки или цели редове въз основа на дата в друга клетка или да създадете правила за по-големи интервали от време (т.е. повече от един месец от текущата дата), ще трябва да създадете свое собствено правило за условно форматиране въз основа на формула. По-долу ще намерите няколко примера за любимите ми условни формати на Excel за дати.

    Как да подчертаете почивните дни в Excel

    За съжаление Microsoft Excel не разполага с вграден календар, подобен на този в Outlook. Нека видим как можете да създадете свой собствен автоматичен календар с доста малко усилия.

    Когато съставяте календара си в Excel, можете да използвате функцията =DATE(година,месец,дата), за да показвате дните от седмицата. Просто въведете годината и номера на месеца някъде в електронната таблица и направете препратка към тези клетки във формулата. Разбира се, можете да въведете числата директно във формулата, но това не е много ефективен подход, защото ще трябва да коригирате формулата за всеки месец.

    Снимката на екрана по-долу демонстрира функцията DATE в действие. Използвах формулата =DATE($B$2,$B$1,B$4) който се копира на ред 5.

    Съвет. Ако искате да покажете само дните от седмицата, както е показано на горното изображение, изберете клетките с формулата (ред 5 в нашия случай), щракнете с десния бутон на мишката и изберете Форматиране на клетките.> Брой> Потребителски . От падащия списък под Тип , изберете или dddd или ддд за показване на пълните или съкратените наименования на дните.

    Вашият календар на Excel е почти готов и трябва само да промените цвета на почивните дни. Естествено няма да оцветявате клетките ръчно. Ще накараме Excel да форматира почивните дни автоматично, като създадем правило за условно форматиране въз основа на СЕДМИЧЕН ДЕН формула.

    1. Започвате, като изберете календара на Excel, в който искате да засенчите почивните дни. В нашия случай това е диапазонът $B$4:$AE$10. Не забравяйте да започнете избора със символа 1-ва колона с дата - Колона B в този пример.
    2. На Начало щракнете върху Меню за условно форматиране> Ново правило .
    3. Създайте ново правило за условно форматиране въз основа на формула, както е обяснено в свързаното по-горе ръководство.
    4. В " Форматиране на стойности, при които тази формула е вярна" въведете следната формула WEEKDAY, която ще определи кои клетки са събота и неделя: =WEEKDAY(B$5,2)>5
    5. Щракнете върху Формат... и настройте потребителския си формат, като превключвате между бутоните Шрифт , Граница и Напълнете табове и игра с различни опции за форматиране. Когато приключите, щракнете върху ОК за да прегледате правилото.

    Нека обясня накратко WEEKDAY(serial_number,[return_type]) формулата, за да можете бързо да я адаптирате за собствените си електронни таблици.

    • Сайтът сериен_номер Параметърът представлява датата, която се опитвате да намерите. Въвеждате препратка към първата клетка с дата, B$5 в нашия случай.
    • Сайтът [тип на връщане] Параметърът определя типа на седмицата (квадратни скоби означават, че не е задължителен). Въвеждате 2 като тип на връщане за седмица, започваща от понеделник (1) до неделя (7). Пълният списък на наличните типове връщане можете да намерите тук.
    • Накрая пишете>5, за да маркирате само съботите (6) и неделите (7).

    Снимката на екрана по-долу показва резултата в Excel 2013 - почивните дни са подчертани в червеникав цвят.

    Съвети:

    • Ако в компанията ви има нестандартни почивни дни, например петък и събота, ще трябва да промените формулата, така че да започне да брои от неделя (1) и да подчертае дни 6 (петък) и 7 (събота) - WEEKDAY(B$5,1)>5 .
    • Ако създавате хоризонтален (пейзажен) календар, използвайте относителна колона (без $) и абсолютен ред (с $) в препратката към клетката, защото трябва да заключите препратката към реда - в горния пример това е ред 5, така че въведохме B$5. Но ако създавате календар във вертикална ориентация, трябва да направите обратното, т.е. да използвате абсолютна колона и относителен ред, например $B5, както можете да видите вснимката на екрана по-долу:

    Как да подчертаете празниците в Excel

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

    Например добавих следните празници в колона А ($A$14:$A$17). Разбира се, не всички от тях са истински официални празници, но ще бъдат достатъчни за демонстрационни цели : )

    Отново отваряте Условно форматиране > Ново правило . В случай на празници ще използвате или MATCH или COUNTIF функция:

    • =COUNTIF($A$14:$A$17,B$5)>0
    • =MATCH(B$5,$A$14:$A$17,0)

    Забележка: Ако сте избрали различен цвят за празниците, трябва да преместите правилото за официалните празници в горната част на списъка с правила чрез Условно форматиране> Управление на правилата...

    Следващото изображение показва резултата в Excel 2013:

    Условно форматиране на клетка, когато стойността се промени на дата

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

    Задачата може да звучи малко сложна, но решението е много просто.

    1. Първо, трябва да определите кода на формата на вашата дата. Ето само няколко примера:
      • D1: dd-mmm-yy или d-mmm-yy
      • D2: dd-mmm или d-mmm
      • D3: mmm-yy
      • D4: mm/dd/yy или m/d/yy или m/d/yy h:mm

      Пълният списък на кодовете за дати можете да намерите в тази статия.

    2. Изберете колона, в която искате да промените цвета на клетките, или цялата таблица, в случай че искате да подчертаете редовете.
    3. А сега създайте правило за условно форматиране, като използвате формула, подобна на тази: =CELL("format",$A2)="D1" Във формулата A е колоната с дати, а D1 е форматът на датата.

      Ако таблицата ви съдържа дати в 2 или повече формата, използвайте оператора OR, напр. =OR(клетка("формат", $A2)="D1", клетка("формат",$A2)="D2", клетка("формат", $A2)="D3")

      Снимката на екрана по-долу демонстрира резултата от такова правило за условно форматиране на дати.

    Как да маркирате редове въз основа на определена дата в определена колона

    Да предположим, че имате голяма електронна таблица в Excel, която съдържа две колони с дати (B и C). Искате да маркирате всеки ред, който има определена дата, например 13 май-14 г., в колона C.

    За да приложите условно форматиране на Excel към определена дата, трябва да намерите нейния цифрова стойност Първо. Както вероятно знаете, Microsoft Excel съхранява датите като последователни серийни номера, започвайки от 1 януари 1900 г. Така че 1 януари 1900 г. се съхранява като 1, 2 януари 1900 г. се съхранява като 2, а 13 май 14 г. - като 41772.

    За да намерите номера на датата, щракнете с десния бутон на мишката върху клетката, изберете Форматиране на клетките> Брой и изберете Обща информация формат. Запишете номера, който виждате, и щракнете върху Отмяна на защото не искате да променяте формата на датата.

    Всъщност това беше основната част от работата и сега трябва само да създадете правило за условно форматиране за цялата таблица с тази много проста формула: =$C2=41772 Формулата предполага, че таблицата ви има заглавия и ред 2 е първият ред с данни.

    Алтернативен начин е да използвате DATEVALUE формула, която преобразува датата във формата на числото, в което се съхранява, напр. =$C2=DATEVALUE("5/13/2014")

    Каквато и формула да използвате, ефектът ще бъде същият:

    Условно форматиране на дати в Excel въз основа на текущата дата

    Както вероятно знаете, Microsoft Excel предоставя ДНЕС() функции за различни изчисления въз основа на текущата дата. Ето само няколко примера за това как можете да я използвате за условно форматиране на дати в Excel.

    Пример 1. Подчертаване на дати, равни на, по-големи или по-малки от днес

    За условно форматиране на клетки или цели редове въз основа на днешната дата използвайте функцията TODAY, както следва:

    Равно на днешния ден: =$B2=ДНЕС()

    По-голямо от днешното: =$B2>TODAY()

    По-малко от днес: =$B2

    Снимката на екрана по-долу демонстрира горните правила в действие. Моля, обърнете внимание, че в момента на писане на статията ДНЕС беше 12-юни 2014 г.

    Пример 2. Условно форматиране на дати в Excel въз основа на няколко условия

    По подобен начин можете да използвате функцията TODAY в комбинация с други функции на Excel, за да се справите с по-сложни сценарии. Например може да искате формулата за условно форматиране на дата в Excel да оцвети Фактура колона, когато Дата на доставка е равно или по-голямо от днес, НО искате форматирането да изчезне, когато въведете номера на фактурата.

    За тази задача ще ви е необходима допълнителна колона със следната формула (където E е вашата Доставка колона и F Фактура колона):

    =IF(E2>=Днес(),IF(F2="", 1, 0), 0)

    Ако датата на доставката е по-голяма или равна на текущата дата и няма число в колоната Фактура, формулата връща 1, а в противен случай - 0.

    След това създавате просто правило за условно форматиране за Фактура колона с формулата =$G2=1 където G е вашата допълнителна колона. Разбира се, по-късно ще можете да скриете тази колона.

    Пример 3. Подчертаване на предстоящи дати и закъснения

    Предполагаме, че имате график на проекта в Excel, в който са изброени задачите, техните начални дати и продължителност. Това, което искате, е крайната дата за всяка задача да се изчислява автоматично. Допълнително предизвикателство е, че формулата трябва да отчита и почивните дни. Например, ако началната дата е 13 юни 2014 г., а броят на работните дни (продължителност) е 2, крайната дата трябва да бъде 17 юни 2014 г,защото 14 юни и 15 юни са събота и неделя.

    За тази цел ще използваме WORKDAY.INTL(start_date,days,[weekend],[holidays]) функция, по-точно =WORKDAY.INTL(B2,C2,1) .

    Във формулата въвеждаме 1 като 3-ти параметър, тъй като той указва събота и неделя като празнични дни. Можете да използвате друга стойност, ако вашите почивни дни са различни, например петък и събота. Пълният списък на стойностите за почивни дни е достъпен тук. По желание можете да използвате и 4-ти параметър [holidays], който представлява набор от дати (диапазон от клетки), които трябва да бъдат изключени от календара на работните дни.

    И накрая, може да искате да подчертаете редовете в зависимост от това колко далеч е крайният срок. Например правилата за условно форматиране, основани на следните 2 формули, подчертават съответно предстоящите и последните крайни дати:

    • =AND($D2-TODAY()>=0,$D2-TODAY()<=7) - маркирайте всички редове, в които крайната дата (колона D) е в рамките на следващите 7 дни Тази формула е много удобна, когато става въпрос за проследяване на предстоящи дати на изтичане на срока на годност или плащания.
    • =AND(TODAY()-$D2>=0,TODAY()-$D2<=7) - маркирайте всички редове, в които крайната дата (колона D) е в рамките на последните 7 дни . Можете да използвате тази формула, за да проследите последните просрочени плащания и други забавяния.

    Ето още няколко примера за формули, които могат да се приложат към таблицата по-горе:

    =$D2 - подчертава всички изтекли дати (т.е. дати, по-малки от текущата дата). Може да се използва за форматиране на изтекли абонаменти, просрочени плащания и др.

    =$D2>TODAY() - подчертава всички бъдещи дати (т.е. дати, по-големи от текущата дата). Можете да го използвате, за да подчертаете предстоящи събития.

    Разбира се, горните формули могат да бъдат променяни безкрайно много в зависимост от конкретната задача:

    =$D2-TODAY()>=6 - подчертава дати, които се случват след 6 или повече дни.

    =$D2=TODAY()-14 - подчертава датите, които са настъпили точно преди 2 седмици.

    Как да маркирате дати в рамките на диапазон от дати

    Ако имате дълъг списък с дати в работния си лист, може да искате да маркирате клетките или редовете, които попадат в определен диапазон от дати, т.е. да маркирате всички дати, които са между две дадени дати.

    Можете да изпълните тази задача, като използвате отново функцията TODAY(). Само че ще трябва да съставите малко по-сложни формули, както е показано в примерите по-долу.

    Формули за подчертаване на минали дати

    • Преди повече от 30 дни: =TODAY()-$A2>30
    • От преди 30 до преди 15 дни включително: =AND(TODAY()-$A2>=15, TODAY()-$A2<=30)
    • Преди по-малко от 15 дни: =AND(TODAY()-$A2>=1, TODAY()-$A2<15)

    Текущата дата и всички бъдещи дати не са оцветени.

    Формули за подчертаване на бъдещи дати

    • Ще се случи след повече от 30 дни: =$A2-TODAY()>30
    • От 30 до 15 дни включително: =AND($A2-TODAY()>=15, $A2-TODAY()<=30)
    • За по-малко от 15 дни: =AND($A2-TODAY()>=1, $A2-TODAY()<15)

    Текущата дата и всички минали дати не са оцветени.

    Как да засенчвате пропуски и времеви интервали

    В този последен пример ще използваме още една функция за дата на Excel - DATEDIF(start_date, end_date, interval) . Тази функция изчислява разликата между две дати въз основа на зададения интервал. Тя се различава от всички други функции, които разгледахме в този урок, по това, че ви позволява да пренебрегнете месеците или годините и да изчислите разликата само между дните или месеците, в зависимост от избора ви.

    Не виждате ли как това може да ви помогне? Помислете за това по друг начин... Да предположим, че имате списък с рождените дни на членовете на семейството си и на приятелите си. Искате ли да знаете колко дни остават до следващия им рожден ден? Освен това колко точно дни остават до годишнината от сватбата ви и до други събития, които не бихте искали да пропуснете? Лесно!

    Необходимата формула е следната (където A е вашата Дата колона):

    =DATEDIF(ДНЕС(), DATE((ГОДИНА(ДНЕС())+1), МЕСЕЦ($A2), ДЕН($A2)), "yd")

    Типът интервал "yd" в края на формулата се използва, за да се игнорират годините и да се изчисли само разликата между дните. За пълния списък на наличните типове интервали вижте тук.

    Съвет. Ако случайно забравите или изгубите сложната формула, можете да използвате тази проста: =365-DATEDIF($A2,TODAY(), "yd") Получават се абсолютно същите резултати, само не забравяйте да замените 365 с 366 през високосните години : )

    А сега нека създадем правило за условно форматиране на Excel, за да оцветим различните пропуски в различни цветове. В този случай е по-разумно да използваме цветовите скали на Excel, вместо да създаваме отделно правило за всеки период.

    Снимката на екрана по-долу демонстрира резултата в Excel - градиентна трицветна скала с оттенъци от зелено до червено и жълто.

    "Дни до следващия рожден ден" Уеб приложение на Excel

    Създадохме това уеб приложение на Excel, за да ви покажем горната формула в действие. Просто въведете събитията си в първата колона и променете съответните дати във втората колона, за да експериментирате с резултата.

    Забележка: За да видите вградената работна книга, разрешете маркетинговите бисквитки.

    Ако ви е интересно да научите как да създавате такива интерактивни електронни таблици в Excel, разгледайте тази статия за това как да създавате уеб базирани електронни таблици в Excel.

    Надяваме се, че поне един от условните формати за дати в Excel, разгледани в тази статия, ви е бил полезен. Ако търсите решение за някаква различна задача, можете да напишете коментар. Благодарим ви, че прочетохте!

    Майкъл Браун е отдаден технологичен ентусиаст със страст към опростяване на сложни процеси с помощта на софтуерни инструменти. С повече от десетилетие опит в технологичната индустрия, той е усъвършенствал уменията си в Microsoft Excel и Outlook, както и в Google Sheets и Docs. Блогът на Майкъл е посветен на споделянето на неговите знания и опит с други, предоставяйки лесни за следване съвети и уроци за подобряване на продуктивността и ефективността. Независимо дали сте опитен професионалист или начинаещ, блогът на Michael предлага ценни прозрения и практически съвети за извличане на максимума от тези основни софтуерни инструменти.