π Table of Contents
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:
- Broken formulas: Functions like
VLOOKUP,QUERY, andFILTERcan return incorrect results when empty rows exist in your data range. - Sorting issues: Google Sheets treats empty rows as boundaries, so sorting may only affect a portion of your data.
- Chart problems: Charts that reference data with empty rows show gaps and incorrect data points.
- Import errors: When exporting to CSV or other formats, empty rows create noise in your data.
- Performance: Large sheets with thousands of empty rows load slower and consume more memory.
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:
- Click on the row number of the first empty row to select the entire row.
- Hold
Ctrl(Windows) orCmd(Mac) and click additional empty row numbers. - Right-click on any selected row number.
- Click "Delete selected rows".
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:
- Select all your data (press
Ctrl+A). - Go to Data β Sort range β Advanced range sorting options.
- Check "Data has header row" if applicable.
- Sort by your primary data column (e.g., Column A) in ascending order.
- All empty rows will now be grouped at the bottom of your data.
- Select all empty rows at the bottom, right-click, and choose "Delete selected rows".
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:
- Select your data range.
- Go to Data β Create a filter.
- Click the filter dropdown on a key column (e.g., Column A).
- Uncheck "Select all", then check only "(Blanks)".
- Now only empty rows are visible.
- Select all visible rows, right-click, and choose "Delete selected rows".
- 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:
- Open your spreadsheet.
- Go to Extensions β Apps Script.
- 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.'
);
}
- Click the Run button (βΆοΈ) and authorize the script.
- The script will find and delete all completely empty rows.
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:
- Install CleanSheet from the Google Workspace Marketplace (free trial).
- Open your spreadsheet and launch CleanSheet from the Extensions menu.
- Create a new rule:
- Select your sheet
- Set condition to "Empty Row"
- Choose action: "Delete"
- Click "Preview" to see exactly which rows will be affected.
- Click "Run" to delete all matching rows.
- Optionally, enable scheduled auto-run (every 1h, 6h, 12h, or 24h) to keep your sheet clean automatically.
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 FreeMethod 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.