Identifying Missing Numbers in a Consecutive Series

by Allen Wyatt
(last updated May 5, 2021)

12

Marcya has a long list of sorted numbers in column A of a worksheet. These numbers are supposedly consecutive, but she doesn't know if that is true. Examining the list manually is both tedious and error-prone, so Marcya wonders if there is a way to somehow highlight any "missed numbers" (those that aren't consecutive with the one before) or to compile a list of numbers that were missed in the list.

There are a number of ways you can go about figuring out where there are missing numbers. The first is one I use quite often: I add a helper column next to column A. Assuming your numbers start in cell A1, I put this into cell B2:

=IF(A2<>A1+1,"Error","")

Copy the formula down as many cells as necessary, and you'll easily see the word "Error" next to any value that isn't consecutive to the value just above it. If you prefer to know a bit more about the error, you could use a more detailed formula:

=IF(A2=A1,"Duplicate",IF(A2<>A1+1,"Gap",""))

Another approach is to use conditional formatting on the cells in column A. Follow these steps, again assuming that your values start in cell A1:

  1. Select the range A2 through the last value in column A.
  2. With the Home tab of the ribbon displayed, click the Conditional Formatting option in the Styles group. Excel displays a palette of options related to conditional formatting.
  3. Choose Highlight Cells Rules and then choose More Rules from the resulting submenu. Excel displays the New Formatting Rule dialog box. (See Figure 1.)
  4. Figure 1. The New Formatting Rule dialog box.

  5. In the Select a Rule Type area at the top of the dialog box, choose Use a Formula to Determine Which Cells to Format.
  6. In the Format Values Where This Formula Is True box, enter this formula: =A2<>A1+1
  7. Click Format to display the Format Cells dialog box.
  8. Using the controls in the dialog box, specify a format that you want used to highlight the cells that are not consecutive.
  9. Click OK to dismiss the Format Cells dialog box. The formatting you specified in step 7 should now appear in the preview area for the rule.
  10. Click OK.

Finally, if you want to compile a list of the missing numbers in a consecutive series, you can use an array formula. Place the following into row 1 of an empty column:

=IFERROR(SMALL(IF(COUNTIF($A$1:$A$135,
MIN($A$1:$A$135)+ROW($1:$135)-1)=0, 
MIN($A$1:$A$135)+ROW($1:$135)-1),ROW(A1)),"")

Remember that this is a single array formula, so you need to enter it as a single line using Ctrl+Shift+Enter. You can then copy the formula down a number of cells, until it doesn't return any more values. Also, the formula assumes that your series in in the range A1:A135; if it is not, you'll need to modify the formula to reflect the actual range.

ExcelTips is your source for cost-effective Microsoft Excel training. This tip (4315) applies to Microsoft Excel 2007, 2010, 2013, and 2016.

Author Bio

Allen Wyatt

With more than 50 non-fiction books and numerous magazine articles to his credit, Allen Wyatt is an internationally recognized author. He is president of Sharon Parq Associates, a computer and publishing services company. ...

MORE FROM ALLEN

Removing Pictures from Multiple Files

Working with a single document is easy. Working with thousands of documents becomes much harder. If you need to get rid ...

Discover More

X-ing Out Text

You can easily use strikethrough formatting to show deleted text in a document. What if you want to actually overprint ...

Discover More

Moving a Table Row

Want to move a row in a table very easily? You can do so by using the same editing techniques you are already using.

Discover More

Program Successfully in Excel! John Walkenbach's name is synonymous with excellence in deciphering complex technical topics. With this comprehensive guide, "Mr. Spreadsheet" shows how to maximize your Excel experience using professional spreadsheet application development tips from his own personal bookshelf. Check out Excel 2013 Power Programming with VBA today!

More ExcelTips (ribbon)

Creating an Amortization Schedule

An amortization schedule is a report that shows how the outstanding balance on a loan changes with payments made over ...

Discover More

Simulating Alt+Enter in a Formula

You can use the Alt+Enter keyboard shortcut while entering information in order to force your data onto multiple lines in ...

Discover More

Criteria-Based Counting in a Filtered Column

The filtering capabilities of Excel are excellent, providing you with great control over which records in a worksheet are ...

Discover More
Subscribe

FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."

View most recent newsletter.

Comments

If you would like to add an image to your comment (not an avatar, but an image to help in making the point of your comment), include the characters [{fig}] in your comment text. You’ll be prompted to upload your image when you submit the comment. Maximum image size is 6Mpixels. Images larger than 600px wide or 1000px tall will be reduced. Up to three images may be included in a comment. All images are subject to review. Commenting privileges may be curtailed if inappropriate images are posted.

What is three less than 9?

2021-07-30 03:17:56

Peter Atherton

Lona
The formulas for the helper cells are:
=MIN (right(rng)+0) and
=Max(Right(range)+0)

Both are entered as Ctrl + Shift + Enter (CSE) and Excel wraps the formulas in curly brackets. In the code these are cells F3 and F4 and are the values for the variables M and N.

The last post was supposed to include a picture to make this clear, I'll try again.

(see Figure 1 below)

Figure 1. 


2021-07-30 03:00:17

Peter Atherton

Lona,
The following needs two helper cells to get the min & max of the numbers; these are both array formulas. The code works up to numbers 999 and will need to be modified for numbers 1000 - 9999, 10000 - 99999 and so on.

Function AllThere(MyRange As Range)
Dim m As Integer, n As Integer
Dim There As Variant, i As Long, cell As Range
m = [f3]: n = [f4]

ReDim There(m To n)

On Error Resume Next
For Each cell In MyRange
There(Right(cell.Value, 3)) = 1
Next
On Error GoTo 0

AllThere = "Missing: "
For i = m To n
If Not There(i) = 1 Then
AllThere = AllThere & i & ", "
End If
Next i

If Len(AllThere) = 9 Then
AllThere = "All There"
Else
AllThere = Left(AllThere, Len(AllThere) - 2)
End If
End Function

{[fig}]


2021-07-28 11:52:03

Lona

What if my numbers start with two letters, RC_100, RC_101


2021-05-07 03:23:12

Mike

Further to my previous comment, the array formula may fail to identify some gaps.
If, for example, A1 contains 100 and the sorted list is from A1 to A135, the formula will not reveal any gaps greater than 235.
In other words, all gaps greater than (MIN(A1:A135) + 135) will be missed.


2021-05-06 11:57:11

robert Lohman

Mark
The UDF (User Defined Function) that I noted does not care about consecutive numbers. Works with any list of numbers.


2021-05-05 17:10:57

Robert Lohman

Here is a handy little Macro from Mr Excel/ExcelisFun Dueling Excel. It even lists what number(s) is missing. Just set the amount of numbers in the list. In this case it is 1 to 99

Function AllThere(MyRange As Range)
Dim There(1 To 99) As Integer
On Error Resume Next
For Each cell In MyRange
There(cell.Value) = 1
Next
On Error GoTo 0

AllThere = "Missing: "
For i = 1 To 99
If Not There(i) = 1 Then
AllThere = AllThere & i & ", "
End If
Next i

If Len(AllThere) = 9 Then
AllThere = "All There"
Else
AllThere = Left(AllThere, Len(AllThere) - 2)
End If
End Function


2021-05-05 13:44:04

Mark

Is there a way to check for missing numbers, if the list to search from is not in consecutive order?


2021-05-05 10:19:56

Mike

I don't know what I'm doing wrong but if, for example, I create a list with 10 gaps, the copied formula is only finding the first 9. The last one always seems to be missing.


2020-11-03 06:21:28

Peter Atherton

Jair

You can,, as stated in the last paragraph, copy the formula down to get the next value(s), When this is done, the Cell reference in the last part of the formula changes from Row(A1) to Row(A2) and the small value hence uses the fist then the second value.

{=IFERROR(SMALL(IF(COUNTIF($A$1:$A$135, MIN($A$1:$A$135)+ROW($1:$135)-1)=0, MIN($A$1:$A$135)+ROW($1:$135)-1),ROW(A1)),"")}
{=IFERROR(SMALL(IF(COUNTIF($A$1:$A$135, MIN($A$1:$A$135)+ROW($1:$135)-1)=0, MIN($A$1:$A$135)+ROW($1:$135)-1),ROW(A2)),"")}


2020-11-02 18:29:06

Jair

How to display all missing numbers in one column?

If i paste this formula

=IFERROR(SMALL(IF(COUNTIF($A$1:$A$135,
MIN($A$1:$A$135)+ROW($1:$135)-1)=0,
MIN($A$1:$A$135)+ROW($1:$135)-1),ROW(A1)),"")

it will apears only the first missing number how about the next missing gap?


2019-08-05 16:30:52

Gail

This is perfect! You have saved me a ton of time.


2017-09-08 10:09:56

Yvan Loranger

1st solution:
Put in B2 =IF($A2-$A1>column()-1,$A1+column()-1,"") and replicate.
Result:
row col.A col.B col.C col.D
1 -5
2 -1 -4 -3 -2
3 0
4 2 1
5 3

2nd solution:
Put in B2 =IF(A2-A1>1,A1+1&"-"&A2-1,"") and replicate.
Result:
row col.A col.B
1 -5
2 -1 -4--2
3 0
4 2 1-1
5 3


This Site

Got a version of Excel that uses the ribbon interface (Excel 2007 or later)? This site is for you! If you use an earlier version of Excel, visit our ExcelTips site focusing on the menu interface.

Newest Tips
Subscribe

FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."

(Your e-mail address is not shared with anyone, ever.)

View the most recent newsletter.