Deleting Rows before a Cutoff Date

by Allen Wyatt
(last updated March 4, 2017)

Barry has a large worksheet containing several thousand rows of data. Column B contains a date, and he needs to delete all the rows in which the date in column B is earlier than a specific cutoff date. Barry wonders about the easiest way to do this for so much data.

This is rather easy to do, with the approach you use dependent on how often you need to do it and how you want to work with your data. If you don't care what order your data is in, then the easiest method is what I refer to as the "sort and delete" method:

  1. Select cell B2. (This assumes that B2 is the first date in your rows of data because row 1 contains headers.)
  2. Display the Data tab of the ribbon.
  3. Click the Sort Oldest to Newest tool. Excel sorts the data according to the dates in column B, with the oldest date in row 2.
  4. Select and delete the rows that contain dates before your cutoff.

This works great if you only need to perform that task once in a while and if you don't mind the rows in the data being reordered. If reordering is a problem, then you may want to add a column to your data and fill that column with values from 1 to however many rows of data you have. You can then perform the "sort and delete" method, but afterwards resort your data based on the values in the column you added.

Of course, you could also use a "filter and delete" method, which will leave your data in its original order without the need of a helper column:

  1. Select cell B2. (This assumes that B2 is the first date in your rows of data because row 1 contains headers.)
  2. Press Ctrl+Shift+L. Excel applies AutoFilter to your data. (You should be able to see the small drop-down arrows next to the headers in row 1.)
  3. Click the drop-down arrow next to the Date header in cell B1. Excel displays some sorting and filtering options.
  4. Hover your mouse pointer over the Date Filters option. Excel displays even more options.
  5. Choose the Before option. Excel displays the Custom AutoFilter dialog box.
  6. In the box to the right of "Is Before," specify a date one day after your cutoff date.
  7. Click OK. Excel applies the filter and you can only see those rows that are at or before your cutoff date.
  8. Select all the rows, but not row 1. (That's because row 1 contains your headers.)
  9. Display the Home tab of the ribbon.
  10. Click the Delete tool. Excel deletes all the selected rows.
  11. Display the Data tab of the ribbon.
  12. Click the Filter tool to remove the AutoFilter.

If you need to perform the task of removing rows often, then you won't be able to beat the convenience of using a macro. The following macro assumes that you've placed the cutoff date into cell K1. It grabs this date and then looks at each row in your data, deleting any rows that are before this cutoff date.

Sub DeleteRowsBeforeCutoff()
    Dim LastRow As Integer
    Dim J As Integer

    Application.ScreenUpdating = False
    LastRow = Cells(Rows.Count, 2).End(xlUp).Row
    For J = LastRow To 1 Step -1
        If Cells(J, 2) < [K1] Then
            Cells(J, 2).EntireRow.Delete
        End If
    Next J
    Application.ScreenUpdating = True
End Sub

ExcelTips is your source for cost-effective Microsoft Excel training. This tip (1566) 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

Finding the Last-Used Cell in a Macro

Ever wonder what the macro-oriented equivalent of pressing Ctrl+End is? Here's the code and some caveats on using it.

Discover More

Using Multiple Print Settings

Do you have a worksheet from which you need to print only portions of the data available? There are two ways you can ...

Discover More

Printing Row Numbers

On-screen Excel displays row numbers that help you easily see what is in each row. If you want to print these row ...

Discover More

Excel Smarts for Beginners! Featuring the friendly and trusted For Dummies style, this popular guide shows beginners how to get up and running with Excel while also helping more experienced users get comfortable with the newest features. Check out Excel 2013 For Dummies today!

More ExcelTips (ribbon)

AutoFilling Numbers with a Trailing Period

The AutoFill tool is very handy when it comes to quickly filling cells with a sequence of values. Sometimes, however, it ...

Discover More

Copying to Very Large Ranges

Using the mouse to select a large cell range can be frustratingly slow. If you want to make copying to a large range of ...

Discover More

Inserting Different Dashes

Excel supports several types of dashes. This tip describes those different types and explains how to enter them in a cell.

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 two more than 3?

There are currently no comments for this tip. (Be the first to leave your comment—just use the simple form above!)


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.