## Find consecutive dates in a cell range

*Article last updated on June 07, 2013*

Column B contains random dates. The array formula in column D returns consecutive dates from column B.

**Array formula in cell D3:**

**How to enter an array formula**

- Select cell D3
- Copy array formula (Ctrl + c)
- Click in formula bar
- Paste formula (Ctrl + v)
- Press and hold CTRL + SHIFT
- Press Enter simultaneously
- Release all keys

**How to copy array formula**

- Select cell D3
- Copy (Ctrl + c)
- Select cell range D4:D5
- Paste (Ctrl + v)

### Find consecutive numbers

Since dates are numbers in excel you can also use the array formula to identify consecutive numbers.

### Find non-consecutive dates

**Array formula in cell D3:**

### Explaining the array formula in cell D3 (Consecutive dates)

**Step 1 - Find dates that have a consecutive date except the last consecutive date**

COUNTIF($B$3:$B$8,$B$3:$B$8+1)

becomes

=COUNTIF({41430; 41436; 41432; 41441; 41431; 41438}, {41430; 41436; 41432; 41441; 41431; 41438}+1)

becomes

=COUNTIF({41430; 41436; 41432; 41441; 41431; 41438}, {41431; 41437; 41433; 41442; 41432; 41439})

and returns

{1;0;0;0;1;0}

If you are interested in how the COUNTIF function works, read this post: COUNTIF function

**Step 2 - Find dates that have a consecutive date except the first consecutive date**

COUNTIF($B$3:$B$8,$B$3:$B$8-1)

becomes

=COUNTIF({41430; 41436; 41432; 41441; 41431; 41438}, {41430; 41436; 41432; 41441; 41431; 41438}-1)

becomes

=COUNTIF({41430; 41436; 41432; 41441; 41431; 41438}, {41429; 41435; 41431; 41440; 41430; 41437})

and returns

{0;0;1;0;1;0}

**Step 3 - Add arrays using OR logic**

COUNTIF($B$3:$B$8,$B$3:$B$8+1)+COUNTIF($B$3:$B$8,$B$3:$B$8-1)

becomes

{1;0;0;0;1;0} + {0;0;1;0;1;0} and returns {1;0;1;0;2;0}

**Step 4 - Find values in array larger than 0 (zero)**

(COUNTIF($B$3:$B$8,$B$3:$B$8+1)+COUNTIF($B$3:$B$8,$B$3:$B$8-1))>0

becomes

{1;0;1;0;2;0}>0

and returns {TRUE; FALSE; TRUE; FALSE; TRUE; FALSE}

**Step 5 - Replace TRUE with corresponding date and FALSE with blanks**

IF((COUNTIF($B$3:$B$8, $B$3:$B$8+1) + COUNTIF($B$3:$B$8, $B$3:$B$8-1))>0, $B$3:$B$8, "")

becomes

IF({TRUE; FALSE; TRUE; FALSE; TRUE; FALSE}, $B$3:$B$8, "")

becomes

IF({TRUE; FALSE; TRUE; FALSE; TRUE; FALSE}, {41430; 41436; 41432; 41441; 41431; 41438}, "")

and returns {41430; ""; 41432; ""; 41431; ""}

Interested in how the IF function works, read this post: IF function explained

**Step 6 - Find the n-th smallest date**

SMALL(IF((COUNTIF($B$3:$B$8, $B$3:$B$8+1) + COUNTIF($B$3:$B$8, $B$3:$B$8-1))>0, $B$3:$B$8, ""),ROW(A1))

becomes

SMALL({41430; ""; 41432; ""; 41431; ""}, ROW(A1))

becomes

SMALL({41430; ""; 41432; ""; 41431; ""}, 1)

and returns 41430 (June 5, 2013) in cell D3.

Interested in how the SMALL function works, read this post:

SMALL function and LARGE function

The ROW function: ROW function explained

### Conditional formatting consecutive dates

**Conditional formatting formula:**

=(COUNTIF($B$3:$B$8,B3+1)+COUNTIF($B$3:$B$8,B3-1))>0

**How to apply conditional formatting**

- Select cell range B3:B8
- Go to "Home" tab
- Click "Conditional formatting" button
- Click "New Rule..."
- Click "Use a formula to determine which cells to format"
- Format values where this formula is TRUE:

=(COUNTIF($B$3:$B$8,B3+1)+COUNTIF($B$3:$B$8,B3-1))>0 - Click "Format.." button
- Go to "Fill" tab
- Pick a color
- Click OK
- Click OK

Read more about conditional formatting:

- Working with formulas in conditional formatting
- Search with conditional formatting
- How to use a table name in data validation lists and conditional formatting formulas

### Download excel *.xlsx file

### Functions in this post

**COUNTIF(***range*, *criteria***)**

Counts the number of cells within a range that meet a single criterion that you specify.

**IF(**logical_test, [value_if_true], [value_if_false]**)
**Checks whether a condition is met, and returns one value if TRUE, and another value if FALSE

**SMALL(***array*, *k***)
**Returns the k-th smallest value in a data set

**ROW(**reference**)**

Returns the row number of a reference.

Formula for matching a date within a date range

Table of contents Match a date when a date range is entered in a single cell Match a date when […]

The image above demonstrates an array formula in cell E4 that searches for the closest date in column A to the […]

Highlight overlapping date ranges using conditional formatting

The image above demonstrates a conditional formatting formula that colors a record if there is at least one record that […]

Identify overlapping date ranges

The formula in cell F6 returns TRUE if the date range on the same row overlaps another date range in […]

Highlight records based on overlapping date ranges and a condition

adam asks: Hi, I have a situation where I want to count if this value is duplicate and if it […]

Count records between two dates with multiple parameters

Sam asks in this post: Count records between two dates in excel Any chance this would work with multiple parameters. […]

How to sort cells filtered by two dates

Question: I have a list containg dates and values. How do I sort values between two specific dates? Answer: Yellow […]

Plot date ranges in a calendar

The image above demonstrates cells highlighted using a conditional formatting formula based on a table containing date ranges. The calendar […]

Lookup two index columns in excel

Formula in B14: =INDEX(D3:D6, SUMPRODUCT(--(C10=B3:B6), --(C11=C3:C6), ROW(D3:D6)-MIN(ROW(D3:D6))+1)) Alternative array formula #1 in B15: =INDEX(D3:D6, MATCH(C10&"-"&C11, B3:B6&"-"&C3:C6, 0)) Alternative array formula […]

Use MEDIAN function to calculate overlapping ranges

I found an old post that I think is interesting to write about today. Think of two overlapping ranges, it may be dates, […]

### 2 Responses to “Find consecutive dates in a cell range”

### Leave a Reply

### How to comment

**How to add a formula to your comment**

<code>Insert your formula here.</code>

**Convert less than and larger than signs**

Use html character entities instead of less than and larger than signs.

< becomes < and > becomes >

**How to add VBA code to your comment**

[vb 1="vbnet" language=","]

Put your VBA code here.

[/vb]

**How to add a picture to your comment:**

Upload picture to postimage.org or imgur

Use the img tag, like this: <img src="Insert pic link here">

**Contact Oscar**

You can contact me through this contact form

Very clever solution!

Thanks for sharing.

pmsocho,

Thank you for commenting!