From “I broke the spreadsheet” to “I’ve got this”
Fix the scary error in front of you, build a working formula from plain English, then practice on pretend rosters until formulas feel ordinary. Everything runs in your browser with made-up data.
- ✓ Zero sign-up
- ✓ Chromebook ready
- ✓ Zero student or patient data
- ✓ 1-hour staff PD certificates
Before · panic
=QUERY(Trips!A1:E8, "SELECT A, SUM(D) GROUP BY A WHERE A IS NOT NULL")
| A | B | |
|---|---|---|
| 1 | #ERROR! | |
| 2 | Formula parse error |
WHERE has to come before GROUP BY — fixed in two clicks
After · relief
=QUERY(Trips!A1:E8, "SELECT A, SUM(D) WHERE A IS NOT NULL GROUP BY A")
| A · Status | B · Students | |
|---|---|---|
| 1 | Status | sum Students |
| 2 | Confirmed | 71 |
| 3 | Pending | 41 |
| 4 | Waitlist | 18 |
The Error Un-Breaker
Pick the scary message you are looking at. Nothing here can change your real file.
#ERROR! Sheets could not read the sentence
Your data is completely safe. This only means the formula has a typing slip, a bit like a sentence with a missing period.
Google Sheets™ reads a formula from left to right. When a comma, quote mark or parenthesis is missing, it stops and shows #ERROR! (hover over the cell and you will see the words “Formula parse error”).
Which of these sounds like your situation? The most common one is already open.
I opened a parenthesis and may not have closed it
Count the ( and ) marks. Every opening one needs a closing partner, and the very last character is usually a ).
=SUM(C2:C8=SUM(C2:C8)I typed words without quote marks, or two things with no comma between them
Put double quotes around words and a comma between each piece of information inside the parentheses.
=COUNTIF(B2:B8 Field Trip)=COUNTIF(B2:B8, "Field Trip")It is a QUERY formula with a word like "Paid" inside it
Inside a QUERY, use single quotes around words. Double quotes make Sheets think the formula ended early.
=QUERY(A1:E8, "SELECT A WHERE B = "Paid"")=QUERY(A1:E8, "SELECT A WHERE B = 'Paid'")#N/A I looked, and it is not there
Nothing is broken. Sheets searched a list for a match and came back empty-handed.
#N/A means “not available.” A lookup such as XLOOKUP, VLOOKUP or FILTER went looking for a name, ID or code and could not find it in the other list.
Which of these sounds like your situation? The most common one is already open.
The name or ID really is missing from the other list
That is useful information! Show a friendly note instead of the error by giving XLOOKUP a fourth piece: what to say when nothing is found.
=XLOOKUP(A2, Staff!A2:A20, Staff!B2:B20)=XLOOKUP(A2, Staff!A2:A20, Staff!B2:B20, "Not on the list yet")It looks identical in both lists, but still will not match
There is almost always an invisible extra space at the start or end. TRIM removes it.
=XLOOKUP(A2, Staff!A2:A20, Staff!B2:B20)=XLOOKUP(TRIM(A2), Staff!A2:A20, Staff!B2:B20)My FILTER shows #N/A when nobody matches
FILTER shows #N/A when zero rows match. Wrap it in IFERROR with a calm message.
=FILTER(A2:A8, D2:D8="Bus")=IFERROR(FILTER(A2:A8, D2:D8="Bus"), "Nobody yet")#REF! The thing I pointed at has moved or is locked
Take a breath: #REF! almost never means lost data. It means the formula is pointing at a place it cannot reach right now.
#REF! is short for “reference.” The formula points to a cell, tab or other file that was deleted, renamed, or has not been given permission to share yet.
Which of these sounds like your situation? The most common one is already open.
It is an IMPORTRANGE formula pulling from another file
This is normal the first time. Hover over the cell and click the blue “Allow access” button once. The data appears a moment later.
=IMPORTRANGE("link-to-other-file", "BusRoster!A1:E7") → #REF!Click “Allow access” once, and the same formula fills in.Someone deleted a column or row the formula was using
Press Ctrl+Z (undo) right away if it just happened. Otherwise click the cell, find the #REF! inside the formula, and re-select the right column.
=SUM(#REF!)=SUM(D2:D8)The tab name inside the formula is misspelled or was renamed
Compare the name before the exclamation mark with the tab at the bottom of the screen. They must match exactly, including spaces.
=SUM(Signup!C2:C8)=SUM(Signups!C2:C8)#VALUE! I expected a number and found words
Your sheet is fine. One cell simply holds something different from what the formula expected.
#VALUE! appears when a formula tries to do math with text, or when two ranges that should line up are different sizes.
Which of these sounds like your situation? The most common one is already open.
A “number” cell actually contains letters, a space, or a note like “20 (cash)”
Click the cell and retype just the number. Keep notes in their own column.
=D4-E4 where E4 is “10 cash”=D4-E4 where E4 is 10My ranges start or end on different rows
Make every range in the formula cover the same rows.
=SUMIFS(D2:D8, A2:A7, "Art Room")=SUMIFS(D2:D8, A2:A8, "Art Room")A QUERY is comparing a number column to a word in quotes
Numbers go in bare. Quotes are only for words.
"SELECT B WHERE D >= '20'""SELECT B WHERE D >= 20"#NAME? I do not recognize that word
No harm done. Sheets simply met a word it does not know.
#NAME? shows up when a function name is misspelled, or when a word is missing its quote marks so Sheets mistakes it for a function.
Which of these sounds like your situation? The most common one is already open.
I may have misspelled the function
Check the spelling letter by letter. As you type, Sheets suggests the correct name in a small list — press Tab to accept it.
=COUTNIF(B2:B8, "Relay Races")=COUNTIF(B2:B8, "Relay Races")I typed a word without quote marks
Wrap words in double quotes so Sheets knows they are text you are looking for.
=COUNTIF(E2:E8, Missing)=COUNTIF(E2:E8, "Missing")I typed a column letter by itself
A range needs a start and an end, joined by a colon.
=SUM(D)=SUM(D2:D8)#DIV/0! I was asked to divide by nothing
This one is harmless. It usually just means a cell is still empty.
#DIV/0! appears when a formula divides by zero or by an empty cell — for example an average or a percentage before the numbers are filled in.
Which of these sounds like your situation? The most common one is already open.
The cell I am dividing by is empty or zero for now
Wrap the formula in IFERROR and choose what to show until the number arrives.
=C4/D4=IFERROR(C4/D4, "No shifts yet")It happens on only a few rows of a long column
Use one whole-column formula with IFERROR so every row is protected at once.
=E2/D2 (copied down)=ARRAYFORMULA(IFERROR(E2:E7/D2:D7, 0))I am averaging a column with nothing in it yet
That is expected. The error disappears as soon as the first number is entered, or wrap it in IFERROR.
=AVERAGE(D2:D8)=IFERROR(AVERAGE(D2:D8), "Waiting for numbers")Plain-English Formula Recipe Builder
Choose what you want the sheet to do, fill in your own columns, and copy a formula that works.
See every recipe as a simple list
- Count the rows that say a certain word (How many students chose “Field Trip”?):
=COUNTIF(B2:B100, "Field Trip")COUNTIF looks down one column and counts every cell that matches your word. - Add up the amounts for one category (How much did the Front Office spend?):
=SUMIF(A2:A100, "Front Office", D2:D100)SUMIF checks the category column, and adds the matching amounts from the amount column. - Count rows that match two things at once (How many Grade 3 students ride the bus?):
=COUNTIFS(B2:B100, "Grade 3", D2:D100, "Bus")COUNTIFS counts a row only when every condition is true. Keep both ranges the same length. - Add up amounts that match two things at once (Total of approved Art Room purchases):
=SUMIFS(D2:D100, A2:A100, "Art Room", E2:E100, "Approved")With SUMIFS the amount column comes first, then each column-and-word pair. - Look something up in another list (without #N/A) (Find the room number for a staff code):
=XLOOKUP(TRIM(A2), Staff!A2:A50, Staff!C2:C50, "Not on the list yet")XLOOKUP finds your item in one column and returns the matching cell from another. TRIM removes invisible spaces, and the last piece replaces #N/A with a friendly note. - Make a clean A-to-Z list with no repeats (A tidy list of every homeroom for a dropdown):
=SORT(UNIQUE(C2:C100))UNIQUE removes the repeats and SORT puts what is left in alphabetical order. - Show only the rows that match (A live list of everyone with a missing permission slip):
=IFERROR(FILTER(A2:E100, E2:E100="Missing"), "All caught up")FILTER keeps the rows where your condition is true and updates by itself. IFERROR shows a calm note when no rows match. - Build a summary report with totals by category (Total collected for each field-trip destination):
=QUERY(A1:E100, "SELECT C, SUM(E) WHERE C IS NOT NULL GROUP BY C LABEL SUM(E) 'Total Collected'", 1)QUERY makes one row per category, adds up the numbers, skips blank rows and gives the total a readable heading. - Tidy a whole column of messy names (Fix “ priya NAIR ” style entries from a sign-up form):
=ARRAYFORMULA(PROPER(TRIM(A2:A100)))TRIM removes extra spaces, PROPER fixes the capital letters, and ARRAYFORMULA does every row at once. - Work out the remaining balance on every row (Amount owed minus amount paid, all the way down):
=ARRAYFORMULA(IF(A2:A="", "", D2:D - E2:E))One formula in the top cell fills the whole column, and leaves empty rows blank instead of showing zeros.
The Sheets practice lab
Six modules of short drills on pretend school, clinic and office data. Type a formula, press Run, and the report on the right updates instantly. You cannot break anything here.
Loading the practice lab…
What you will practice
Each module takes about an hour and ends with a printable certificate. Drills marked Free are open to everyone; the rest open with a pass or a School Building Pass Code.
Module 1: Everyday Error Rescue & Clean Lists
Turn the six scariest messages into two-click fixes, then tidy a messy sign-up list. Practice setting: Oakridge Elementary Field Day volunteer sign-ups.
- Fix a “Formula parse error” Free
- Rescue a #NAME? error Free
- Calm a #DIV/0! with IFERROR Free
- Replace #N/A with a friendly note Free
- Repair a #REF! from a wrong tab name Free
- Clean a messy name with TRIM and PROPER Free
- List each station once with UNIQUE Free
- Alphabetize the clean list with SORT Free
Module 2: Counting & Totaling
Answer “how many?” and “how much?” in one cell with COUNTIFS and SUMIFS. Practice setting: District Supply P-Card Log.
- Count one department’s purchases Free
- Total one department’s spending Free
- Count with two conditions Pass
- Total with two conditions Pass
- Count amounts over a limit Pass
- Total the small approved purchases Pass
- Point at a cell instead of typing the word Pass
- Count anything that contains a word Pass
- Total everything that is not approved yet Pass
Module 3: Live Filtering & Tab Pulling
Build lists that update themselves with FILTER, and pull data from another file with IMPORTRANGE. Practice setting: Oakridge Elementary dismissal plan and the transportation office bus roster.
- Show only the bus riders Free
- Chase the missing permission slips Free
- Filter on two things at once Pass
- Filter for one thing OR another Pass
- Stay calm when nobody matches Pass
- Sort a filtered list Pass
- The IMPORTRANGE “Allow access” handshake Pass
- Add up numbers from another file Pass
- Which homerooms need a reminder? Pass
Module 4: Matching Two Lists Without #N/A
Look things up between two tabs with XLOOKUP, and never count columns again. Practice setting: Pinecrest Clinic daily schedule and provider directory.
- Your first XLOOKUP Free
- Return a different column Free
- Say something helpful when there is no match Pass
- Defeat the invisible space Pass
- Look to the left Pass
- Retire a fragile VLOOKUP Pass
- Bring back several columns at once Pass
- Look up something you type in Pass
- Fill the whole column with one formula Pass
Module 5: Flagship =QUERY() Instant Summary Reports
Turn a raw roster into a finished summary report with one formula that reads almost like English. Practice setting: Oakridge Elementary Field Trip & Activity Fund.
- Bring over the entire roster Free
- Pick and rearrange columns Free
- Total students and money for each status Free
- Clean out the empty rows Free
- Focus on one number Free
- Build a two-way grid with PIVOT Pass
- Filter for a word with single quotes Pass
- Filter by a number Pass
- Sort from largest to smallest Pass
- Format the totals as money Pass
- Give the heading a friendly name Pass
- Show only the top two Pass
Module 6: Whole-Column Magic
Write one formula in the top cell and let ARRAYFORMULA fill every row — even rows added next week. Practice setting: Oakridge Elementary Field Trip & Activity Fund payments.
- One formula for every row Free
- Keep empty rows blank Free
- Label every row in plain words Pass
- Join two columns into one label Pass
- Protect a whole column from #DIV/0! Pass
- Count how often each activity appears Pass
- Total a calculation in a single cell Pass
- A reminder column that maintains itself Pass
When the same chore comes back every week
Some jobs should not need a formula or a reminder at all. These are native Google Workspace™ add-ons by 864zeros that work inside Google Sheets™. There is no pressure: everything above this line keeps working without them.
RowArchiver
Automatically move Finished / Archived rows to a clean history tab on schedule so your active sheet stays fast.
SheetSync
Keep master rosters and department tabs synchronized without fragile copy-pasted formulas breaking.
Sheet2Calendar
Turn school event dates, duty rosters, or clinic shifts directly into Google Calendar™ entries in one click.
The plain-English guide to Google Sheets™ formulas for busy offices and schools
If you manage a field-trip roster, a conference sign-up, a supply budget or a clinic schedule, you already use a spreadsheet every day. You probably did not choose to become “the spreadsheet person.” It just happened, and now a single cell that says #REF! can ruin a perfectly good afternoon. This guide is written for you. It uses everyday words, real office situations and short examples you can try in the practice lab above without touching a real file.
How a formula is put together
Every formula has the same four parts, and once you can see them, formulas stop looking like secret code.
| Part | Example | What it means |
|---|---|---|
| The equals sign | = | “Sheet, please calculate what follows.” Without it, the cell is just text. |
| The function name | COUNTIF | The job you want done: count, add, look up, filter. |
| The parentheses | ( … ) | A container for the information the job needs. Every opening one needs a closing partner. |
| The pieces inside | B2:B8, "Bus" | Where to look and what to look for, separated by commas. Words go in double quotes. |
Read =COUNTIF(B2:B8, "Bus") out loud as “count the cells from B2 to B8 that say Bus.” Almost every formula in this guide can be read aloud that way. If you can say it, you can write it.
Why errors are less scary than they look
An error message in a cell is the spreadsheet asking a question. It is not a sign that data has been lost, and it is almost never a sign that you broke the master file. Each message has a small number of usual causes:
- #ERROR! — a typing slip, usually a missing parenthesis, comma or quote mark.
- #NAME? — a misspelled function, or a word that needs quote marks.
- #N/A — a lookup searched for something and did not find it.
- #REF! — the formula points at a cell, tab or file it cannot reach.
- #VALUE! — math was attempted on text, or two ranges are different sizes.
- #DIV/0! — something was divided by zero or by an empty cell.
The Error Un-Breaker at the top of this page walks through each of these with a before-and-after example. Module 1 of the practice lab lets you cause every one of them on purpose and then fix it, which is the fastest way to stop fearing them.
IFERROR: the calm wrapper
Sometimes an error is expected. A new student has no bus assignment yet, or a volunteer has zero shifts so far. In those moments you do not need to fix anything; you only need the cell to say something sensible. IFERROR does exactly that. Put it around any formula, add a comma, and then say what to show instead: =IFERROR(C4/D4, "No shifts yet"). Use it for errors you understand. If an error surprises you, look at it first, because the message is telling you something useful.
Cleaning up a messy list
Sign-up forms filled in on phones produce names with stray spaces, all capitals or no capitals at all. Three small functions tidy nearly everything:
TRIMremoves extra spaces at the beginning, the end and in between words.PROPERcapitalizes the first letter of every word.UNIQUEremoves repeated entries, andSORTputs what remains in order.
You can place one inside another, like nesting cups. =SORT(UNIQUE(B2:B8)) first removes the repeats, then sorts the result. That one formula builds a clean list for a dropdown menu, and it updates itself whenever the original column changes.
Counting and totaling without a calculator
Two questions come up in every office: “how many?” and “how much?” COUNTIF answers the first and SUMIF answers the second. When the question has two conditions — approved purchases from the Art Room, Grade 3 students who ride the bus — add an S and use COUNTIFS or SUMIFS. There are only two rules to remember. First, every range in the formula must cover the same rows. Second, with SUMIFS the column you are adding up always comes first. Module 2 practices both on a pretend supply purchasing log, including comparisons such as ">100" and the wildcard star in "*Supplies*".
Lists that update themselves
Copying and pasting a filtered list creates a second copy that is out of date within the hour. FILTER creates a live view instead. =FILTER(A2:C8, E2:E8="Missing") shows the rows where column E says Missing, and it changes the moment a slip is marked Returned. A comma between conditions means “and.” A plus sign between conditions in parentheses means “or.” When nothing matches, FILTER shows #N/A, which is the perfect place for the calm wrapper: =IFERROR(FILTER(…), "All caught up").
Pulling data from another file
IMPORTRANGE brings a range from a different spreadsheet into yours, so the transportation office can keep its bus roster and you can still total the riders. The first time you connect two files, the cell shows #REF! with a small “Allow access” button. That is not a failure. It is Google asking permission once, like a doorbell. Module 3 simulates the whole handshake so that the first time you see it for real, you already know what to click.
Matching two lists
Looking up a room number from a staff code, or a phone extension from a name, is the single most common spreadsheet task in an office. The modern tool is XLOOKUP, and it reads like a sentence: find this, in that column, and give me the matching cell from this other column. You never count columns, it can look to the left, and an optional fourth piece lets you choose what to show when nothing is found. If you inherited a sheet full of the older VLOOKUP, Module 4 shows how to replace it and why the replacement will not break when someone inserts a column next year.
Summary reports with QUERY
QUERY is the formula people are most nervous about and most delighted by. It turns a long roster into a finished summary: totals per grade, a grid of destinations by status, the top two fundraisers. Its instructions go inside one pair of double quotes and always follow the same order:
SELECT— which columns to show, by letter.WHERE— which rows to keep.GROUP BY— what to make one row for.PIVOT— what to spread across the top.ORDER BY— how to sort.LIMITandOFFSET— how many rows to show, and how many to skip.LABEL— friendlier headings.FORMAT— how numbers should look.
You rarely need all of them, but the ones you use must stay in that order. Two more habits prevent most trouble: column letters are capitals, and words inside the instructions use single quotes, as in WHERE A = 'Confirmed', because the double quotes are already in use around the whole instruction. Module 5 builds a complete report one clause at a time. The first five drills are free so you can reach the moment where a whole summary appears from one line.
One formula for a whole column
Dragging a formula down a column works until someone adds a row at the bottom and forgets to drag it again. ARRAYFORMULA removes that chore. You write the formula once, in the top cell, using ranges instead of single cells, and it fills every row — including rows added later if you use an open-ended range such as D2:D. The classic pattern is =ARRAYFORMULA(IF(A2:A="", "", D2:D - E2:E)): for every row, if there is no name leave the cell empty, otherwise calculate the balance. Module 6 practices this pattern until it feels natural.
Good habits that prevent most problems
- Keep one kind of thing in each column. Numbers in the amount column, notes in a notes column. “20 (cash)” in a number column is the usual cause of #VALUE!.
- Leave the original data alone. Build reports on a separate tab with QUERY or FILTER so the roster itself never gets sorted or overwritten.
- Name your tabs clearly. “Roster” and “Report” are easier to reference correctly than “Sheet7”.
- Use undo without hesitation. Ctrl+Z reverses almost anything, and File, then Version history, can restore the sheet as it was yesterday.
- Practice on pretend data. Every table in the lab above is synthetic, so you can experiment freely and then apply what worked to your real file.
How to use this page in a staff PD session
Many schools and offices use a single module as a one-hour professional development activity. Project the page, work the first two drills together, and then let everyone continue at their own pace on a Chromebook or laptop. When a staff member solves every drill in a module, the lab offers a printable certificate showing one clock hour of self-paced practice. Names are typed on the staff member’s own device at the moment of printing and are never transmitted. Print the one-page Desk Rescue Card for anyone who would like a reminder beside their monitor.
Common questions
Do I need to sign in or install anything?
No. The lab runs entirely in your web browser, with no account, no download and no browser extension. It works on school Chromebooks, office PCs, Macs and phones.
Can practicing here damage my real spreadsheet?
No. The lab is not connected to your Google account or to any of your files. Every table is made-up practice data that lives only on this page.
Is any student or patient information involved?
None. Every name, roster and schedule in the lab is synthetic. You never upload, paste or connect real records, which is why the lab is comfortable to use in schools and clinics.
Where is my progress saved?
Only in this browser on this device, using a small local setting. Nothing is sent to us. Use the “Reset My Progress” button under the lab to clear it at any time.
Which drills are free?
All of Module 1, the first two drills of Modules 2, 3, 4 and 6, and the first five drills of the QUERY module are open to everyone. The remaining drills open with a pass or a School Building Pass Code.
Will these formulas work in Microsoft Excel?
Most of them, yes: IFERROR, TRIM, COUNTIFS, SUMIFS, FILTER, UNIQUE, SORT and XLOOKUP work the same way in current versions of Excel. QUERY, IMPORTRANGE and ARRAYFORMULA are specific to Google Sheets™.
What if a formula works in the lab but not in my own sheet?
Check three things first: that your ranges match your real rows, that words are spelled exactly as they appear in your data, and that there are no hidden spaces. The Error Un-Breaker at the top of this page covers the rest.
Relief for the rest of Google Workspace™
Google Forms™ relief
Stop double-booked conference times and late quiz entries. Fix it now, practice safely for five minutes, then automate it for good.
Google Docs™ relief
Fill a stack of permission slips from a roster and stamp a draft clearly, without retyping a single name.
Google Slides™ relief
Turn a roster into a finished slide for every person, instead of duplicating and retyping one slide at a time.
Google Drive™ relief
Find the “Copy of Copy of” files and the links anyone on the internet can open, and tidy both with confidence.
Gmail™ relief
Practice catching the outside address that auto-complete slipped in, before the message leaves your inbox.