It's 4:47 PM on Friday. Your manager just asked for a consolidated report by 5. You have 12 spreadsheets open—some exported from ERP systems, others pasted from emails—and every one is littered with blank rows between sections. You try Ctrl+G → Special → Blanks, hit Delete, and Excel crashes your selection. Again.
Quick Answer
You can auto-delete empty rows in Excel without VBA using Go To Special + Delete Entire Row (Alt+H+G+S+K+Enter, then Ctrl+Shift+-), or filter-and-delete via the Data tab—but only if you define "empty" correctly. Most people miss that Excel treats cells with formulas returning "" as non-blank. That’s why their deletions fail.
All the Methods
| Method | Steps | Best For | Limitations |
|---|---|---|---|
| Go To Special → Blanks | Select data range (e.g., A1:E100) → Alt+H+G+S → K → Enter → Ctrl+Shift+- → Entire row | Simple lists with truly blank cells (no formulas, no spaces) | Fails if cells contain ="", spaces, or whitespace characters |
| FILTER + Delete Visible | Add filter (Ctrl+Shift+L) → uncheck (Select All) → uncheck blanks in each column → select visible rows → Ctrl+Shift+- | Mixed datasets where some columns may be blank but others aren’t | Time-consuming if >5 columns; easy to mis-click and delete wrong rows |
| Power Query (Get & Transform) | Data → From Table/Range → right-click column → Remove Empty → Close & Load | Repetitive cleanups; large datasets (>10k rows); repeatable workflows | Changes source structure; requires loading into new sheet unless overwritten |
| Array Formula + Helper Column | In F1: =AND(A1="",B1="",C1="",D1="",E1="") → drag down → filter TRUE → delete → clear helper | Full control over what counts as "empty" (e.g., ignore column E) | Manual drag; breaks if inserted rows shift formula references |
| VBA Macro (AutoDeleteBlanks) | Paste code in Module → run → prompts for range | Teams with standardized templates and IT approval for macros | Disabled by default; security warnings; won’t run on Mac or web Excel |
Method 1 Deep Dive
The Go To Special method is lightning-fast—if your data plays fair. Here’s how it really works:
Assume your raw data lives in A1:E12. It looks like this:
| Name | Company | Amount | Date | Region |
|---|---|---|---|---|
| Sarah Chen | Acme Corp | $45,200 | 2024-03-15 | APAC |
| Jamal Wright | Nexus Labs | $32,800 | 2024-03-18 | EMEA |
| Priya Mehta | Stellar Dynamics | $61,400 | 2024-03-20 | Americas |
Select A1:E12. Press Alt+H+G+S. The Go To Special dialog opens. Press K (for Blanks), then Enter. Excel selects *only* fully blank cells—not entire rows yet. Now press Ctrl+Shift+- (minus), choose "Entire row", click OK. Done. 3 seconds. 3 blank rows gone.
The beauty of this approach is its precision: it only hits cells that are *truly empty*, not those hiding invisible characters. But here’s the counterintuitive tip: never select the whole column (e.g., A:E). Excel will include 1 million+ blank rows below your data, and Ctrl+Shift+- will hang or crash. Always define your range first—A1:E12, not A:E.
Method 2 Deep Dive
When your data has formulas like =IF(B2="","",C2*1.1), Go To Special fails. Those cells look blank but aren’t. That’s when FILTER saves you—and it’s easier than most think.
Start with the same table in A1:E12. Select any cell inside it. Press Ctrl+Shift+L to toggle AutoFilter. Click the dropdown in column A. Uncheck "(Select All)", then scroll down and uncheck "Blanks". Repeat for columns B through E. Now only rows with *at least one non-blank value in every column* remain visible. Wait—no. That’s backwards.
Here’s the fix: Instead, use a helper column. In F1, enter: =COUNTA(A1:E1)=0. Drag down to F12. This returns TRUE only if all five cells in that row are blank—including formula-generated "". Filter column F for TRUE. Select those visible rows. Press Ctrl+Shift+- → Entire row. Delete. Clear column F.
What makes this elegant is flexibility. Change the formula to =COUNTA(A1:D1)=0 if you want to ignore Region (column E) when judging emptiness. Or add TRIM() to handle cells with spaces: =AND(TRIM(A1)="",TRIM(B1)="",TRIM(C1)=""). It’s not automatic—but it’s 100% reliable.
Cheat Sheet
| Action | Shortcut / Steps | Notes |
|---|---|---|
| Select data range | Click top-left cell → Ctrl+Shift+End (if contiguous) | Or type A1:E12 in Name Box and press Enter |
| Go To Special → Blanks | Alt+H+G+S → K → Enter | Only works on selected range—not entire columns |
| Delete selected rows | Ctrl+Shift+- → choose "Entire row" → OK | Don’t press Delete—it inserts shift-up, not delete |
| Add AutoFilter | Ctrl+Shift+L | Toggles on/off; works even with headers missing |
| Count non-blanks per row | =COUNTA(A2:E2) | Returns 0 for truly empty rows—even with formulas |
| Trim whitespace before testing | =AND(TRIM(A2)="",TRIM(B2)="") | Fixes cells with spaces that look blank |
| Clear helper column | Select F1:F12 → Delete → Ctrl+Z if you overshoot | Always undo (Ctrl+Z) before saving if unsure |