How to Delete Rows in Excel: Every Method Explained

Deleting rows in Excel sounds simple — and often it is. But depending on how many rows you're removing, whether they meet certain conditions, and what version of Excel you're using, the right approach can vary significantly. Here's a complete breakdown of every reliable method, when each one makes sense, and what to watch out for.

The Difference Between Deleting and Clearing a Row

Before diving in, it's worth clarifying one common point of confusion: deleting a row and clearing a row are not the same thing.

  • Clearing a row removes the content (data, formatting, formulas) but leaves the empty row in place.
  • Deleting a row removes the row entirely, shifting all rows below it upward to fill the gap.

If your spreadsheet layout depends on fixed row positions — for example, rows tied to named ranges or external references — deleting rather than clearing can shift data in ways you don't expect. Keep that in mind before proceeding.

Method 1: Right-Click to Delete a Single Row

This is the most straightforward approach for removing one row at a time.

  1. Click the row number on the far left of the spreadsheet to select the entire row.
  2. Right-click on that row number.
  3. Select Delete from the context menu.

The row disappears and everything below moves up automatically. This method works across Excel for Windows, Excel for Mac, and Excel Online.

Method 2: Delete Multiple Rows at Once

You don't have to delete rows one by one. Excel lets you select and delete several rows in a single action.

For consecutive rows:

  • Click the first row number, hold Shift, then click the last row number in the range. All rows in between become selected. Right-click any highlighted row number and choose Delete.

For non-consecutive rows:

  • Click the first row number, then hold Ctrl (or Command on Mac) and click each additional row number you want to remove. Right-click and select Delete.

This approach scales well for manual cleanup — removing a handful of rows spread across a sheet.

Method 3: Use the Ribbon to Delete Rows 🗂️

If you prefer working from the toolbar:

  1. Select one or more rows by clicking their row numbers.
  2. Go to the Home tab on the ribbon.
  3. In the Cells group, click the Delete dropdown arrow.
  4. Choose Delete Sheet Rows.

This produces exactly the same result as right-clicking. Some users prefer it for muscle-memory reasons or when working on devices where right-clicking is less convenient.

Method 4: Keyboard Shortcut for Faster Deletion

Once rows are selected, you can delete them quickly with a shortcut:

  • Windows:Ctrl + - (the minus key)
  • Mac:Command + -

This opens a small dialog asking whether to shift cells up, shift cells left, delete the entire row, or delete the entire column. Choose Entire Row and confirm. If you've already selected full rows (by clicking row numbers), Excel typically skips the dialog and deletes immediately.

For high-volume editing work, this shortcut significantly speeds up the process.

Method 5: Delete Rows Based on a Condition (Filter Method)

When you need to delete rows that meet a specific condition — say, all rows where a column contains "Cancelled" or where a value is blank — filtering first is the most reliable approach.

  1. Select your data range and apply a Filter (Data > Filter or Ctrl + Shift + L).
  2. Use the dropdown on the relevant column to filter for only the values you want to remove.
  3. Select all visible (filtered) rows by clicking the first row number, then Shift-clicking the last.
  4. Right-click and choose Delete Row.
  5. Remove the filter to reveal remaining data.

⚠️ Important: Always verify the filter is showing exactly what you intend to delete before confirming. It's easy to accidentally hide rows you want to keep, then delete them without realizing.

Method 6: Delete Blank Rows Using Go To Special

Blank rows scattered throughout a spreadsheet are a common nuisance. Rather than hunting them down manually:

  1. Select your data range (or press Ctrl + A to select all).
  2. Press Ctrl + G to open the Go To dialog, then click Special.
  3. Choose Blanks and click OK. Excel selects all empty cells in the range.
  4. Right-click any selected cell and choose Delete > Entire Row.

This method works well for clean-up tasks after importing data from external sources, where blank rows appear unpredictably.

Method 7: Delete Rows Using a Macro (VBA)

For users working with large datasets or repeating the same deletion logic regularly, VBA macros offer automation. A simple loop can scan a column and delete any row where a condition is met — without manual filtering.

This approach requires basic familiarity with the Visual Basic for Applications editor (accessible via Alt + F11 on Windows). The logic typically involves looping through rows from bottom to top — a critical detail, since deleting rows from the top down causes row indexes to shift mid-loop, leading to skipped rows.

VBA suits power users comfortable with scripting. For everyone else, the filter method achieves most of the same goals without code.

Factors That Affect Which Method Works Best for You

FactorImpact
Number of rows to deleteManual methods work for a few; filtering or macros suit hundreds or thousands
Whether rows meet a conditionFilter method or VBA is more reliable than manual selection
Excel version (desktop vs. Online)VBA is not available in Excel Online; most other methods are
Operating systemKeyboard shortcuts differ between Windows and Mac
Spreadsheet structureDeleting rows in tables vs. plain ranges behaves slightly differently

One nuance worth noting: if your data is formatted as an Excel Table (via Insert > Table), deleting a row inside that table only removes it from the table — it doesn't affect rows outside of it. This is often the desired behavior, but it can be surprising if you're used to working with plain ranges.

The method that makes sense depends entirely on what your spreadsheet contains, how it's structured, and how often you're performing this kind of cleanup — which is something only your specific file and workflow can answer.