Home / Blog / Delete Empty Rows

How to Delete Empty Rows in Google Sheets Automatically (2026 Guide)

πŸ“‹ Table of Contents

  1. Why Empty Rows Are a Problem
  2. Method 1: Manual Delete (Small Sheets)
  3. Method 2: Sort and Delete
  4. Method 3: Filter View Method
  5. Method 4: Apps Script
  6. Method 5: CleanSheet Add-on (Automated)
  7. Method Comparison
  8. FAQ

Empty rows in Google Sheets are more than just an eyesore β€” they break formulas, mess up sorting, and make your data look unprofessional. If you've ever scrolled through a spreadsheet wondering why there are random blank rows scattered everywhere, you're not alone.

In this guide, we'll cover 5 proven methods to delete empty rows, from quick manual fixes to fully automated solutions that clean your sheets while you sleep.

Why Empty Rows Are a Problem

Before diving into solutions, let's understand why empty rows cause so many headaches:

Method 1: Manual Delete (Best for Small Sheets)

The simplest approach β€” just select and delete. This works fine if you have a handful of empty rows in a small spreadsheet.

Steps:

  1. Click on the row number of the first empty row to select the entire row.
  2. Hold Ctrl (Windows) or Cmd (Mac) and click additional empty row numbers.
  3. Right-click on any selected row number.
  4. Click "Delete selected rows".
πŸ’‘ Pro Tip

Use Ctrl+Click to select multiple non-adjacent rows at once. This saves time when empty rows are scattered throughout your sheet.

Best for: Sheets with fewer than 50 rows and only a few empty rows.
Limitation: Extremely tedious for large datasets. You have to visually find every empty row.

Method 2: Sort and Delete (Medium Sheets)

A clever trick: sort your data so all empty rows group together at the bottom, then delete them in one batch.

Steps:

  1. Select all your data (press Ctrl+A).
  2. Go to Data β†’ Sort range β†’ Advanced range sorting options.
  3. Check "Data has header row" if applicable.
  4. Sort by your primary data column (e.g., Column A) in ascending order.
  5. All empty rows will now be grouped at the bottom of your data.
  6. Select all empty rows at the bottom, right-click, and choose "Delete selected rows".
⚠️ Important

This method changes the order of your data. If row order matters (e.g., chronological data), add a temporary "Index" column with sequential numbers (1, 2, 3...) before sorting. After deleting empty rows, sort by the Index column to restore the original order, then delete the Index column.

Best for: Medium-sized sheets (50–500 rows) where row order doesn't matter.
Limitation: Changes data order. Doesn't work if rows are only partially empty.

Method 3: Filter View Method

Use Google Sheets' built-in filter to show only empty rows, then delete them all at once.

Steps:

  1. Select your data range.
  2. Go to Data β†’ Create a filter.
  3. Click the filter dropdown on a key column (e.g., Column A).
  4. Uncheck "Select all", then check only "(Blanks)".
  5. Now only empty rows are visible.
  6. Select all visible rows, right-click, and choose "Delete selected rows".
  7. Remove the filter by going to Data β†’ Remove filter.

Best for: Sheets where you want to target rows with blank values in a specific column.
Limitation: Only checks one column at a time. A row with data in Column B but empty in Column A might be incorrectly deleted.

Method 4: Google Apps Script (Technical Users)

For developers or technically inclined users, a custom Apps Script can automate empty row deletion.

Steps:

  1. Open your spreadsheet.
  2. Go to Extensions β†’ Apps Script.
  3. Paste the following script:
function deleteEmptyRows() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var rowsToDelete = [];

  for (var i = data.length - 1; i >= 0; i--) {
    var isEmpty = data[i].every(function(cell) {
      return cell === '' || cell === null;
    });
    if (isEmpty) {
      rowsToDelete.push(i + 1);
    }
  }

  // Delete from bottom up to preserve row indices
  rowsToDelete.forEach(function(row) {
    sheet.deleteRow(row);
  });

  SpreadsheetApp.getUi().alert(
    'Done! Deleted ' + rowsToDelete.length + ' empty rows.'
  );
}
  1. Click the Run button (▢️) and authorize the script.
  2. The script will find and delete all completely empty rows.
⚠️ Limitations of Apps Script

This script only works on the active sheet. If you need to clean multiple sheets, you'll need to modify it. It also can't run on a schedule without additional trigger setup, and there's no undo β€” deleted rows are gone permanently.

Best for: Technical users who need a one-time cleanup on large sheets.
Limitation: Requires coding knowledge. No preview, no undo. Can time out on very large sheets (50,000+ rows).

Method 5: CleanSheet Add-on (Easiest & Automated)

If you want a no-code, automated solution that runs in the background and keeps your sheets clean 24/7, CleanSheet is the simplest option.

Steps:

  1. Install CleanSheet from the Google Workspace Marketplace (free trial).
  2. Open your spreadsheet and launch CleanSheet from the Extensions menu.
  3. Create a new rule:
    • Select your sheet
    • Set condition to "Empty Row"
    • Choose action: "Delete"
  4. Click "Preview" to see exactly which rows will be affected.
  5. Click "Run" to delete all matching rows.
  6. Optionally, enable scheduled auto-run (every 1h, 6h, 12h, or 24h) to keep your sheet clean automatically.
✨ Why CleanSheet is Different

Unlike manual methods, CleanSheet lets you preview before running, schedule automatic cleanup, and keep a log of every action taken. Your data stays safe with visual confirmation before any changes.

Best for: Anyone who wants hassle-free, automated row cleanup.
Advantage: Preview before deleting, scheduled auto-run, full run log, no coding required.

πŸš€ Stop Deleting Empty Rows Manually

Install CleanSheet and let it handle your row cleanup automatically. Free 2-day trial, no credit card required.

Install CleanSheet Free

Method Comparison

Method Difficulty Speed Auto-Schedule Preview
Manual Delete Easy Slow ❌ ❌
Sort & Delete Easy Medium ❌ ❌
Filter View Medium Medium ❌ ❌
Apps Script Hard Fast ⚠️ Manual ❌
CleanSheet Easy Fast βœ… βœ…

Frequently Asked Questions

How do I delete all empty rows in Google Sheets at once?

The fastest way is to use a Google Sheets add-on like CleanSheet. Create a rule with the "Empty Row" condition and set the action to "Delete". Run the rule and all empty rows are removed instantly. Alternatively, you can use the Sort and Delete method (Method 2) to group empty rows at the bottom and delete them in one batch.

Will deleting empty rows affect my formulas?

Yes, deleting rows can shift cell references in formulas. Always preview which rows will be affected before deleting. CleanSheet's preview feature lets you see exactly which rows match before taking action. For formulas using named ranges, the impact is usually minimal.

Can I automatically delete empty rows on a schedule?

Yes! With CleanSheet's scheduled auto-run feature, you can set rules to run every 1, 6, 12, or 24 hours β€” even when your computer is off. Empty rows are cleaned automatically in the background using Google's servers.

What about rows that are partially empty?

The methods above target completely empty rows (every cell is blank). If you need to delete rows where only specific columns are empty, use CleanSheet's condition builder β€” you can set rules like "Delete rows where Column A is empty" while keeping rows that have data in other columns.