Contact

Google Sheets web app (rolling service) · Formula troubleshooting · Intermediate

Fix FILTER mismatched range sizes after adding rows in Google Sheets

Reproduce a one-sided range extension, measure every FILTER input, repair the boundaries, and catch shifted-row errors that still return plausible results.

Official documentation reviewed; dimensions and complete synthetic outputs independently calculated; not tested in Google Sheets. · Editorial standards

For a row-filtering formula, every condition must provide one decision for each source row, in the same order. If the tooltip says “FILTER has mismatched range sizes,” inspect the actual boundaries of the source and every condition. Adding rows may reveal that one range grew while another stayed fixed.

The reliable fix is to repair the ranges, then compare the complete result and append another matching record. Wrapping the formula in an error handler can hide the diagnostic without repairing it.

Start with an observable, four-record example

Use a practice Google Sheets file with two tabs: Queue for inputs and Report for output. These instructions target the web app, using English function names and comma argument separators.

Enter the following into Queue!A1:D5, or import the queue CSV into a practice tab and rename it Queue. The CSV holds values only; it does not contain formulas or formatting. Keep Hours numeric.

Sheet row A: RecordID B: Owner C: Status D: Hours
1 RecordID Owner Status Hours
2 R-201 Alma Open 3
3 R-202 Ben Closed 5
4 R-203 Cleo Open 8
5 R-204 Dara Waiting 2

Manually put RecordID, Owner, Status, Hours in Report!A1:D1. Leave everything below those headings clear, then enter this in Report!A2:

=FILTER(Queue!A2:D5,Queue!C2:C5="Open")

The expected result is exactly two data rows by four columns:

RecordID Owner Status Hours
R-201 Alma Open 3
R-203 Cleo Open 8

The headings shown here explain the result; FILTER returns only the data rows. For syntax and other filtering patterns, see the FILTER reference.

1. Reproduce the one-sided growth failure

Add R-205, Evan, Open, 6 to Queue!A6:D6. If you leave the original formula untouched, its fixed ranges still stop at row 5. It omits Evan without needing to produce a size error.

Now deliberately change only the return range’s last row to 6:

=FILTER(Queue!A2:D6,Queue!C2:C5="Open")

This asks FILTER to select from five rows using four decisions. It violates Google’s matching-length requirement. A size-mismatch diagnostic is the expected failure. Open the cell’s error detail and record its actual wording and dimensions in your file; no native error capture is claimed here.

Do not assume that typing into the next blank row, inserting a row inside a range, and adding rows at the bottom of a tab change references identically. Inspect the formula after the operation. The deliberately edited formula above makes the mismatch reproducible without depending on reference-adjustment behavior.

2. Measure the inputs, not the number of visible records

On a third tab named Checks, enter these formulas:

Measurement Formula Expected
Return-range height =ROWS(Queue!A2:D6) 5
Return-range width =COLUMNS(Queue!A2:D6) 4
Status-condition height =ROWS(Queue!C2:C5) 4
Status-condition width =COLUMNS(Queue!C2:C5) 1

ROWS and COLUMNS measure rectangular dimensions, including empty cells. Hiding rows does not shorten the referenced rectangle. A five-by-four return range needs a five-by-one condition when filtering rows; the condition does not need four columns.

Repeat the measurement for every condition. A second test against Hours can remain wrong even after the Status test is repaired. The vendor references define ROWS and COLUMNS.

3. Repair the bounded formula first

Change the Status condition to cover the same source records:

=FILTER(Queue!A2:D6,Queue!C2:C6="Open")

Compare all twelve returned cells:

RecordID Owner Status Hours
R-201 Alma Open 3
R-203 Cleo Open 8
R-205 Evan Open 6

There are three rows totaling 17 hours. Checking only Alma’s first cell would miss whether Evan was restored. In this empty practice output, =COUNTA(Report!A2:A) should give 3 and =SUM(Report!D2:D) should give 17.

4. Align the growth-safe version and test it again

Replace Report!A2 with:

=FILTER(Queue!A2:D,Queue!C2:C="Open",Queue!A2:A<>"")

All three ranges start at row 2 and extend to the bottom of the same Queue tab. The required RecordID test excludes rows without an ID; use it only if that matches your data policy. Do not use an optional Owner or a positive-hours test as a shortcut for deciding which rows are real.

Now append R-206, Faye, Open, 4 in Queue!A7:D7. The complete expected output becomes:

RecordID Owner Status Hours
R-201 Alma Open 3
R-203 Cleo Open 8
R-205 Evan Open 6
R-206 Faye Open 4

After recalculation, your checks should now report 4 rows and 21 hours. This second append is the regression test: the corrected formula must continue to include new records.

Open-ended ranges examine more cells. For a large report, a capacity-bound alternative is:

=FILTER(Queue!A2:D5000,Queue!C2:C5000="Open",Queue!A2:A5000<>"")

That version includes rows only through 5000. Ensure the tab has that capacity and review it before the data reaches the limit. Google’s performance guidance favors closed ranges when practical. Pick one boundary policy and apply it to every input; mixing A2:D with C2:C5000 can recreate the mismatch.

Equal dimensions can still select the wrong rows

In a separate test cell, after adding Evan but before adding Faye, try:

=FILTER(Queue!A2:D5,Queue!C3:C6="Open")

Both inputs have four rows, but the status test is shifted down one source row. The expected wrong result is:

RecordID Owner Status Hours
R-202 Ben Closed 5
R-204 Dara Waiting 2

Cleo’s Open flag is applied to Ben’s row, and Evan’s to Dara’s. This is why merely matching counts is insufficient. Compare the starting rows and the identity of each record tested. The repair is alignment, not deleting rows until the dimensions happen to match.

Check scalar conditions and orientation

If the tooltip indicates a condition with just one value, inspect any nested aggregation. This attempted row-by-row test is wrong:

=FILTER(Queue!A2:D6,AND(Queue!C2:C6="Open",Queue!D2:D6>=5))

AND reduces the supplied tests to one Boolean result. It does not supply a separate decision for each of the five records. Google’s AND documentation describes that aggregate behavior. Use separate aligned conditions instead:

=FILTER(Queue!A2:D6,Queue!C2:C6="Open",Queue!D2:D6>=5)

Expected output: R-203, Cleo, Open, 8 and R-205, Evan, Open, 6, in two rows totaling 14. Each record must satisfy both conditions.

A horizontal header test has a different orientation from a vertical status test. Google does not permit mixing row and column conditions in a single FILTER call. Return to the FILTER guide if the job is also selecting columns.

Distinguish similar-looking failures

Symptom What to check next
Size-mismatch error detail All heights, widths, starting rows and ending rows, including nested condition outputs.
No matching records A correctly sized test such as Status = Archived finds nothing in this fixture and returns the documented #N/A. That is a different problem from malformed dimensions.
Output cannot expand Inspect the cells below and to the right of the formula for existing content. Move it safely; do not delete unrelated work.
Formula parse error Check quotes, parentheses and your locale’s argument separator.
Plausible result with missing recent IDs Inspect fixed end rows, shifted conditions and the required-ID policy.

Read the detailed error before adding IFNA or IFERROR. A blank display should not become the only evidence that a report is “fixed.”

Platform, locale and verification

This is a Google Sheets web workflow. Sheets receives ongoing service updates; there is no fixed desktop build implied here. Mobile error details and controls may appear differently. Locale and function-language settings affect how you enter formulas. These examples are not Excel FILTER formulas with an optional empty-result argument.

Verification: Google documentation checked October 16, 2026. Range dimensions, complete outputs, append tests and shifted-row counterexamples were independently calculated from the downloadable fixture. Not tested in Google Sheets. The size-mismatch diagnosis is based on the documented range requirements. Formula behavior and exact error-tooltip text have not been verified in the application, and no application screenshots are presented.