If you are a regular visitor of this blog, you've probably noticed a few recent articles covering different aspects of Excel conditional formatting. Those tutorials explain how to apply Excel's built-in rules and make your own conditional formats based on formulas.

And now we will leverage this knowledge and create spreadsheets that differentiate between weekdays and weekends, highlight public holidays and display a coming deadline or delay. In other words, we are going to apply Excel conditional formatting to dates.

If you have some basic knowledge of Excel formulas, then you are most likely familiar with some of date and time functions such as NOW, TODAY, DATE, WEEKDAY, etc. In this tutorial, we are going to take this functionality a step further to **conditionally format Excel dates** in the way you want.

Microsoft Excel provides 10 options to format selected cells based on the current date.

- To apply the formatting, you simply go to the
*Home*tab >*Conditional Formatting > Highlight Cell Rules*and select**A Date Occurring**.

- Select one of the
**date options**from the drop-down list in the left-hand part of the window, ranging from last month to next month. - Finally, choose one of the pre-defined formats or set up your custom format by choosing different options on the
*Font*,*Border*and*Fill*tabs. If the Excel standard palette does not suffice, you can always click the**More colors…**button.

- Click
*OK*and enjoy the result! : )

However, this fast and straightforward way has two significant limitations - 1) it works for selected cells only and 2) the conditional format is always applied based on the current date.

If you want to highlight cells or entire rows **based on a date in another cell**, or create rules for **greater time intervals** (i.e. more than a month from the current date), you will have to create your own conditional formatting rule based on a formula. Below you will find a few examples of my favorite Excel conditional formats for dates.

Regrettably, Microsoft Excel does not have a built-in calendar similar to Outlook's. Well, let's see how you can create your own automated calendar with quite little effort.

When designing your Excel calendar, you can use the =DATE(year,month,date) function to display the days of the week. Simply enter the year and the month's number somewhere in your spreadsheet and reference those cells in the formula. Of course, you could type the numbers directly in the formula, but this is not a very efficient approach because you would have to adjust the formula for each month.

The screenshot below demonstrates the DATE function in action. I used the formula `=DATE($B$2,$B$1,B$4)`

which is copied across row 5.

Your Excel calendar is almost done, and you only need to change the color of weekends. Naturally, you are not going to color the cells manually. We'll have Excel format the weekends automatically by creating a conditional formatting rule based on the **WEEKDAY** formula.

- You start by selecting your Excel calendar where you want to shade the weekends. In our case, it is the range $B$4:$AE$10. Be sure to start the selection with the
**1**- Colum B in this example.^{st}date column - On the
*Home*tab, click*Conditional Formatting menu > New Rule*. - Create a new formatting rule based on a formula, as explianed in How to create Excel conditional formatting rules with a formula.
- In the "
*Format values where this formula is true"*box, enter the following WEEKDAY formula that will determine which cells are Saturdays and Sundays:`=WEEKDAY(B$5,2)>5`

- Click the
**Format…**button and set up your custom format by switching between the*Font*,*Border*and*Fill*tabs and playing with different formatting options. When done, click the*OK*button to preview the rule.

Now, let me briefly explain the `WEEKDAY(serial_number,[return_type])`

formula so that you can quickly adjust it for your own spreadsheets.

- The
`serial_number`

parameter represents the date you are trying to find. You enter a reference to your first cell with a date, B$5 in our case. - The
`[return_type]`

parameter determines the week type (square brackets imply it is optional). You enter 2 as the return type for a week starting from Monday (1) through Sunday (7). You can find the full list of available return types here. - Finally, you write >5 to highlight only Saturdays (6) and Sundays (7).

The screenshot below demonstrates the result in Excel 2013 - the weekends are highlighted in the reddish colour.

**Tips:**

- If you have non-standard weekends in your company, e.g. Fridays and Saturdays, then you would need to tweak the formula so that it starts counting from Sunday (1) and highlight days 6 (Friday) and 7 (Saturday) -
`WEEKDAY(B$5,1)>5`

. - If you are creating a horizontal (landscape) calendar, use a relative column (without $) and absolute row (with $) in a cell reference because you should lock the reference of the row - in the above example it is row 5, so we entered B$5. But if you are designing a calendar in vertical orientation, you should do the opposite, i.e. use an absolute column and relative row, e.g. $B5 as you can see in the screenshot below:

To improve your Excel calendar further, you can shade public holidays as well. To do that, you will need to list the holidays you want to highlight in the same or some other spreadsheet.

For example, I've added the following holidays in column A ($A$14:$A$17). Of course, not all of them are real public holidays, but they will do for demonstration purposes : )

Again, you open *Conditional Formatting* > *New Rule*. In the case of holidays, you are going to use either **MATCH** or **COUNTIF** function:

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

`=MATCH(B$5,$A$14:$A$17,0)`

The following image shows the result in Excel 2013:

It's not a big problem to conditionally format a cell when a date is added to that cell or any other cell in the same row as long as no other value type is allowed. In this case, you could simply use a formula to highlight non-blanks, as described in Excel conditional formulas for blanks and non-blanks. But what if those cells already have some values, e.g. text, and you want to change the background color when text is changed to a date?

The task may sound a bit intricate, but the solution is very simple.

- First off, you need to determine the format code of your date. Here are just a few examples:
- D1: dd-mmm-yy or d-mmm-yy
- D2: dd-mmm or d-mmm
- D3: mmm-yy
- D4: mm/dd/yy or m/d/yy or m/d/yy h:mm

You can find the complete list of date codes in this article.

- Select a column where you want to change the color of cells or the entire table in case you want to highlight rows.
- And now create a conditional formatting rule using a formula similar to this one:
`=CELL("format",$A2)="D1"`

. In the formula, A is the column with dates and D1 is the date format.If your table contains dates in 2 or more formats, then use the OR operator, e.g.

`=OR(cell("format", $A2)="D1", cell("format",$A2)="D2", cell("format", $A2)="D3")`

The screenshot below demonstrates the result of such conditional formatting rule for dates.

Suppose, you have a large Excel spreadsheet that contains two date columns (B and C). You want to highlight every row that has a certain date, say 13-May-14, in column C.

To apply Excel conditional formatting to a certain date, you need to find its **numerical value** first. As you probably know, Microsoft Excel stores dates as sequential serial numbers, starting from January 1, 1900. So, 1-Jan-1900 is stored as 1, 2-Jan-1900 is stored as 2… and 13-May-14 as 41772.

To find the date's number, right-click the cell, select *Format Cells > Number* and choose the **General** format. Write down the number you see and click **Cancel** because you do not really want to change the date's format.

That was actually the major part of the work and now you only need to create a conditional formatting rule for the entire table with this very simple formula: `=$C2=41772`

. The formula implies that your table has headers and row 2 is your first row with data.

An alternative way is to use the **DATEVALUE** formula that converts the date to the number format is which it is stored, e.g. `=$C2=DATEVALUE("5/13/2014")`

Whichever formula you use, it will have the same effect:

As you probably know Microsoft Excel provides the `TODAY()`

functions for various calculations based on the current date. Here are just a few examples of how you can use it to conditionally format dates in Excel.

To conditionally format cells or entire rows based on today's date, you use the TODAY function as follows:

Equal to today: `=$B2=TODAY()`

Greater than today: `=$B2>TODAY()`

Less than today: `=$B2<TODAY()`

The screenshot below demonstrates the above rules in action. Please note, at the moment of writing TODAY was 12-Jun-2014.

In a similar fashion, you can use the TODAY function in combination with other Excel functions to handle more complex scenarios. For example, you may want your Excel conditional formatting date formula to color the *Invoice* column when the *Delivery Date* is equal to or greater than today BUT you want the formatting to disappear when you enter the invoice number.

For this task, you would need an additional column with the following formula (where E is your *Delivery* column and F the *Invoice* column):

`=IF(E2>=TODAY(),IF(F2="", 1, 0), 0)`

If the delivery date is greater than or equal to the current date and there is no number in the Invoice column, the formula returns 1, otherwise it's 0.

After that you create a simple conditional formatting rule for the *Invoice* column with the formula `=$G2=1`

where G is your additional column. Of course, you will be able to hide this column later.

Suppose you have a project schedule in Excel that lists tasks, their start dates and durations. What you want is to have the end date for each task calculated automatically. An additional challenge is that the formula should also consider the weekends. For example, if the starting date is 13-Jun-2014 and the number of days of work (Duration) is 2, the ending date should come as 17-Jun-2014, because 14-Jun and 15-Jun are Saturday and Sunday.

To do this, we will use the `WORKDAY.INTL(start_date,days,[weekend],[holidays])`

function, more precisely `=WORKDAY.INTL(B2,C2,1)`

.

In the formula, we enter 1 as the 3^{rd} parameter since it indicates Saturday and Sunday as holidays. You can use another value if your weekends are different, say, Fri and Sat. The full list of the weekend values is available here. Optionally, you can also use the 4th parameter [holidays], which is a set of dates (range of cells) that should be excluded from the working day calendar.

And finally, you may want to highlight rows depending on how far away the deadline is. For example, the conditional formatting rules based on the following 2 formulas highlight upcoming and recent end dates, respectively:

`=AND($D2-TODAY()>=0,$D2-TODAY()<=7)`

- highlight all rows where the End Date (column D) is within the**next 7 days**. This formula is really handy when it comes to tracking upcoming expiration dates or payments.`=AND(TODAY()-$D2>=0,TODAY()-$D2<=7)`

- highlight all rows where the End Date (column D) is within the**last 7 days**. You can use this formula to track the latest overdue payments and other delays.

Here are a few more formula examples that can be applied to the table above:

`=$D2<TODAY()`

- highlights all passed dates (i.e. dates less than the current date). Can be used to format expired subscriptions, overdue payments etc.

`=$D2>TODAY()`

- highlights all future dates (i.e. dates greater than the current date). You can use it to highlight upcoming events.

Of course, there can be infinite variations of the above formulas, depending on your particular task. For instance:

`=$D2-TODAY()>=6`

- highlights dates that occur in 6 or more days.

`=$D2=TODAY()-14`

- highlights dates occurring exactly 2 weeks ago.

If you have a long list of dates in your worksheet, you may also want to highlight the cells or rows that fall within a certain date range, i.e. highlight all dates that are between two given dates.

You can fulfil this task using the TODAY() function again. You will just have to construct a little bit more elaborate formulas as demonstrated in the examples below.

**Formulas to highlight past dates**

- More than 30 days ago:
`=TODAY()-$A2>30`

- From 30 to 15 days ago, inclusive:
`=AND(TODAY()-$A2>=15, TODAY()-$A2<=30)`

- Less than 15 days ago:
`=AND(TODAY()-$A2>=1, TODAY()-$A2<15)`

The current date and any future dates are not colored.

**Formulas to highlight future dates**

- Will occur in more than 30 days from now:
`=$A2-TODAY()>30`

- In 30 to 15 days, inclusive:
`=AND($A2-TODAY()>=15, $A2-TODAY()<=30)`

- In less than 15 days:
`=AND($A2-TODAY()>=1, $A2-TODAY()<15)`

The current date and any past dates are not colored.

In this last example, we are going to utilize yet another Excel date function - `DATEDIF(start_date, end_date, interval)`

. This function calculates the difference between two dates based on the specified interval. It differs from all other functions we've discussed in this tutorial in the way that it lets you ignore months or years and calculate the difference only between days or months, whichever you choose.

Don't see how this could work for you? Think about it in another way… Suppose you have a list of birthdays of your family members and friends. Would you like to know how many days there are until their next birthday? Moreover, how many days exactly are left until your wedding anniversary and other events you wouldn't want to miss? Easily!

The formula you need is this (where A is your *Date* column):

`=DATEDIF(TODAY(), DATE((YEAR(TODAY())+1), MONTH($A2), DAY($A2)), "yd")`

The "yd" interval type at the end of the formula is used to ignore years and calculate the difference between the days only. For the full list of available interval types, look here.** **

`=365-DATEDIF($A2,TODAY(),"yd")`

. It produces exactly the same results, just remember to replace 365 with 366 in leap years : )And now let's create an Excel conditional formatting rule to shade different gaps in different colors. In this case, it makes more sense to utilize Excel Color Scales (Conditional formatting > Color Scales) rather than create a separate rule for each period.

The screenshot below demonstrates the result in Excel - a gradient 3-color scale with tints from green to red through yellow.

We have created this Excel Web App to show you the above formula in action. Just enter your events in 1st column and change the corresponding dates in the 2nd column to experiment with the result.

If you are curious to know how to create such interactive Excel spreadsheets, check out this article - Move Excel spreadsheets online.

Hopefully, at least one of the Excel conditional formats for dates discussed in this article has proven useful to you. If you are looking for a solution to some different task, you are most welcome to post a comment. Thank you for reading!

Excel formulas
Excel functions
Vlookup in Excel
Merge data in Excel
SumIf
Excel CountIf
Excel Compare
Excel If statement
Excel Charts
Pivot Table
Updates
Excel conditional formatting
Excel formatting
Excel time
Excel duplicates
Excel date
Excel tips
Excel macro
Outlook
Google Sheets
Outlook duplicates
Outlook templates

## 642 Responses to "How to conditionally format dates and time in Excel - built-in rules and formulas"

I have a spreadsheet where I need to format an expiry dates in a column, based on 3 different dates (which can change)each date range will be shaded a diffener colour.

i.e. red for dates pre and including 15sep18

yellow for dates between red and green dates

green for dates after and including 14Apr19

Can you please help?

ALREADY EXISTING FORMAT - 13-Aug-18

REQUIRED NEW FORMAT - 13-08-2018

PLEASE GUIDE US HOW TO CHANGE THIS FORMULA

If this is already formatted as a date, select the cells or column that you want to format, select "Format > Format Cells", select the "Custom" option, and enter the format "dd-mm-yyyy"

Hi,

i reviewed your all formula but not found any of them as i was looking for.

can you let me know what is the formula i can use for getting 3 color in one cell. like below.

yellow color - 10 days early of due date.

Red color - if the due date has passed.

Green color - If can meet the due date.

Thanks /Zaman.

Hi Zaman, im just wondering if you had any luck working this formula out? I am also needing a formula to highlight cells early of due date

You would use the formulas to highlight future dates, but apply 3 different rules to your columns.

Red would be =$K3=1, $K3-TODAY()<15)

HOW CAN ENTER FIXED TIME FOR INVOICE DETECT THE DAY I AM USING AND NEXT

NOT TO CHANGE WHEN OPEN DIFFERENT DATE NOT CHANGE

Help!!!!

I’ve created a timeline in excel and want to have the conditional format fill in the color based on the start and end date. The headers I have are for the start of the week. Example the top header would show 10/22/18, 10/29/18, 11/5/18.

And my Start date for a task would be 10/22/18 and end date of 10/31/18. So I need the cells under 10/22/18 and 10/29/18 to be highlighted. How can I do this?

Hey Rosii,

Did you get figure this out? I need to do a similar function and I am struggling.

I basically have three columns: Allocation, Start and End Dates. So, If I choose a start date as 01/01 and End date as 06/01 at an allocation of 100% , then I need a function that will allocate 160 hours in six columns from Jan to Jun.

Please help!!

Trying to make a conditional format based on a cells value of the date that has been inputted into that cell and have program shade yellow for +5 years beyond that date and then red for +ten years beyond that date. Example would be if I input 10/12/2015 in E4 I would like it to shade yellow at +5 yearson 10/12/2020 and then red +10 years at 10/12/2025.

I would like to ba able to do this for any date that I input since I will be inputting various dates into my cell in column E.

I need to do exactly this - were you able to find a solution?

I have a work/task tracker to use at my team meetings and I would like a 'bookmark' type identifier to show where this week is.

The sheet has week ending dates (23/11/18, 30/11/18, 7/12/18 etc)across columns H:BP at row 4.

To draw attention to the current week (so staff can easily see where to update the work progress) I have added conditional formatting 'Highlight cell rules' - 'A date occuring' - 'This week' to H4:BP4 to fill the cell matching a date occurring this week a particular colour.

I want the corresponding column cells (H:BP)at row 1 to reflect the same font/fill colour (to make it easier to find)to change when the row 4 cell is highlighted. (This doesn't have to apply to the whole column - but would be handy to have as as option).

I have previously done this (the cheeky way) with individual dates in the columns then adding 'TODAY' text in white font in all the cells in row 1 then applying the conditional formatting for row 1 cells to apply dark fill - hence revealing the 'hidden' white font in row 1. However I can't for the life of me work out how to apply this when using dates that are a week apart ('this week') and not 'Today'.

Hello,

How do I change the color of a field when it's date is "overdue" based on the date in another cell. Let's say the date in B2 is 12/3/18 and a field is automatically populated to show a due date 7 days away in B3 is 12/10/18. How do I get that cell (B3) to turn red if the current date is equal to or pass that date (showing that it is now late). The date in B2 will never be the same.

I hope that makes sense.

Thank you

Hello, Del.

If you need to set a conditional formatting rule to change the cells' color based on another cell value, you may find this article helpful.

Don’t hesitate to contact us again if you still have any questions or need assistance.

Thank you!

I want to format my spreadsheet so that any date more than 365 days old from todays date turns Red, while all other current dates turn Green when entered into any cell.

I have range of dates with time updated in a cell having 500 records. I want only the only the dates to be highlighted for the time between 6pm-8am. my first record will be highlighted because time falls between 6pm-8am and second record is starts with 4pm so it is not highlighted. Please anybody get me the solution using conditional formating or filtering or any other method, but don't split the date and time. if you giving in vba also great or in excel. Awaiting for your result solved as early as possible will be very much grateful to you.

Example

12/13/2018 21:28

12/13/2018 16:02

Thanks and regards

J. Prasad.

hi

i need to highlight one row when the first three columns of dates are came to be similar

Hi,

I have a spreadsheet that covers the whole year for holidays and deducts them from the persons allowance. What I would like to know is, if at the end of January I want a column that calculates how many days have been taken since 1st January (E6), how do I create a formula in column AA6 that counts full days and half days holiday (i have formulas set up to record these)? Any help would be really appreciated.

Thank you.

Update - I have used the COUNTA function, but that counts all cells with text and I want to specify Holiday & Half, but COUNTIFS doesn't work?

Can someone please help me. I am trying to create a formula that will highlight the call yell onw 1 year from the date in the call.

I.e. if one of the dates in cell N is 5-Jan-2020

Then on 5-Jan-2019 the cell will turn yellow

pls tell me which formula use to before one day cell automatically color for delivery status

Thank you for your posts, they are incredibly helpful. I've been wanting to figure out how to do this for years.

Hello, Is it possible to apply a time format to a cell only under a specific condition? I would like for any result below a value of 1 to appear in a time format (hh:mm), like 3:30 or 1:00 instead of 0.1458 and 0.0417. I need the rest of the column to stay unchanged though. It contains text value like "2-day" and "6-day". How to create such a conditional formating? Thanks for your help.

I am looking for a formula that will allow me to conditionally format cell colour based on date. For example if our delivery date is today, I want to colour cells based on whether the delivery was on time (green), 1 day delay (yellow), 2 day delay (orange), 3+ day delay (red)

ie:

Data Period End Day 6 Delivery Date

Jan 5/19 Jan 11/19

so if Day 6 Delivery was done on Jan 13/19 instead of Jan 11/19 I want the cell with the Jan 13/19 date to be coloured orange

Hi

I'd like to know how to do the following:

Have a table with the headings:

Task name

Start Date

Duration

End Date

I want to be able to enter the start date and duration and it to automatically work out the end date. This is so that whenever I change the start date, it updates the end date based on how long it takes.

In addition, is there a way to make it take into account weekend days? As in, if I input a duration as 10 days, I mean 10 working days (so two working weeks). If not, this isn't the end of the world; I'm just curious.

Thanks in advance!

i want create Excell sheet For Apartment Rent Details

Example: We Have 6 Apartment.each apartment Payment in 3cheques

i want know apartent1,2,3... Payment details.next payment when will due

Hi -

I am trying to format a cell that if the date in the cell is after todays date and after cell A17, it should highlight. Any ideas?

Thanks in advance!

were you able to figure this out? I am looking to do the same thing.

Thank you!

I have created a spreadsheet tracking multiple tasks that are all carrying a date. Many of the cells dates a re defined formulas to define the next task day being x number days. Current conditional formatting is red for past todays date, green for within the next 2 weeks, and just plain for past the 2 weeks. How can I highlight and keep the past date in a cell of the completed task and still maintain the links driving the future dates. Essentially want to show the task cell in yellow as completed but keep the date intact. Today because it shows in the past it is red and would override the color if I just changed it to yellow. I can type in complete in the cell and change it, but hen the future days error out of course due to the existing formulas driving the future dates Thoughts?

Thanks...assuming it makes sense.

Hello, I want to run a program in my excel file. Which contains three columns and 18000 rows. To, simplify my data i want to select the vales like 0,0.5,1,1.5 etc. and against these values i want to select the whole row. how can i do this by using one simple formula in EXCEL.

Hi,

I have been trying to figure out the necessary formula for conditional formatting for the past few weeks and have been unable to locate it.

I am working on fixing the conditional formatting for "Audit Due Date Tracking". In boxes C & D, there is a formula set up to show 2 weeks (14 days) from C="Sent" and D="Due(2 weeks)". What is needed is conditional formatting to display "PINK" in the applicable rows before the 2 weeks are up and is at 12 days to indicate that an email needs to be sent to the recipient. Next, conditional formatting for E="Received Date" needs to be set up so that "YELLOW" shades the rows that are past the 14 days; indicating that they are all past due.

Any help someone can offer is greatly appreciated! Thank you in advance! =)

Hi there

I need help with a future date formula. I need a policy to expire every 3 years (2019-2022), rather than annually. I need this to show as GREEN when in date, YELLOW a month before its due to expire, and RED once this has expired. Which formula do I use to cover these formatting? I've tried it the normal way but used previous dates (2015-2019) to get the desired results, but unsure how to get this to work for the desired current/future dates 2019-2022. Whenever I apply the same formula/formatting my policy which is in date, stays white.

Any help would be greatly appreciated.

Kind regards

I am trying to do the following:

Header Row 12/1/2018 1/1/2019 2/1/2019

Columns

Start Finish

12/1/2018 1/1/2019

12/1/2018 1/1/2019

I am trying to compare the dates in the Column "Start" and "Finish" to the header rows and conditionally format the color based on whether the date is within range or not.

Is this possible with Excel?

When you describe how to highlight dates within a date range, you posted:

Less than 15 days ago: =AND(TODAY()-$A2>=1, TODAY()-$A2<15)

However, I could not get that to work for me when I tried it for between 130 and 365. After some angst I used =IF instead of to =AND, and then it worked fine. I am curious to know why that is.

I am trying to built a database of clients which every 90 days I need to update their record and I am wanting the update column to color the cell a color when the date is 90 days from the last adjustment. For example a clients new records was built 02/01/2017, the record was last updated 02/28/2018 and now I am updating the record on 04/08/2019. The next time I would need to update the record is when my today() is July 8 or after 90 days and not before then. I just have one column that holds a date and and each time I update the record it will reset to conditional formatting.

hello

I am trying to calculate for bigger spread sheet some bits

basically in one cell (D2) i have "Office 365 Business Premium+Enterprise Mobility + Security E3" and in other column G2 i am trying to put "IF(ISNUMBER(SERCH("Premium",D2)),1,0)", in next one-H2 "=IF(ISNUMBER(SERCH("Mobility",D2)),1,0) etc and It is all coming up to "0" what is wrong

can I have some advice please

I need a formula A with the Dispatch date mentioned and B also date of Invoice Date if A column date is less than old 2 days then highlight both cells if B is mentioned date in cell then highlight should be disable.

Sample

Dispatch Date Invoice Date

17-04-19 no Highlight

13-04-19 15-04-19

09-04-19 10-04-19

15-04-19 Highlight

no Highlight

26-03-19 Highlight

15-04-19 Highlight

16-04-19 no Highlight

14-04-19 Highlight

First of all I would like to thank you on your tutorials you are absolutely great..I have a question regarding conditional formating with dates,I work with a large number of package delivery and to track all of it I use this type of formula:

Formulas to highlight past dates

More than 30 days ago: =TODAY()-$A2>30

From 30 to 15 days ago, inclusive: =AND(TODAY()-$A2>=15, TODAY()-$A2=1, TODAY()-$A2<15)

just with less days,I was wondering could you use a WORKDAY function so that it counts in the formulas above just the working days not weekends as my schedules are regarding only working days.Would that work?Thank you and keep up the good work :)

Is there a formula that puts the current date only when THAT ROW is edited? I’m trying to create a running log for pipe load-outs and am trying to make it to where the date cell puts in the date that data was entered into that row only and will not change when I add to it on a later date.