Google Sheets

10 Google Sheets Formulas for Work: Build One Real Sales Report (Free Practice File)

Every month the operations manager at Copper Kettle Foodservice Supply, a restaurant supply wholesaler in Nashville, Tennessee, exports the orders and spends a morning with a calculator: who sold what, which deliveries ran late, which orders were biggest. This tutorial turns that morning into 10 Google Sheets formulas for work: SPLIT, XLOOKUP, IFS, NETWORKDAYS, TEXT, UNIQUE, SUMIFS, AVERAGEIFS, COUNTIFS and SORTN. You use all ten on one real sheet, a monthly sales report with 104 orders, a sales rep scorecard and a top 5 orders list. The free practice file has the raw export on the Practice tab and the finished report on the Solution tab.

10 Google Sheets formulas for work on one sales report
The finished report: $85,678 in sales from 104 orders, built with ten formulas.

📥  Download the FREE Practice File (Excel .xlsx)
Offline copy: README, Practice, Solution and Lists tabs

📄  Make Your Own Copy in Google Sheets
Opens a copy in your Google Drive – sign in to Google first

Watch the Video Tutorial

Video Overview

The video opens with the finished report: $85,678 in total sales, 104 orders, 8 large orders, 2.0 days average delivery and October up 7.0% on September. Then you move to the Practice tab and add the ten formulas one by one, about 15 minutes in total. One mistyped product code (CK-2O4 with a letter O) hides a $4,700 order until XLOOKUP flags it, and the fix changes Daniel Garcia from -30.7% to +12.3%. Pause anywhere and follow along with the practice file.

What You Will Build

  • Five KPI cards: total sales, orders, large orders, average delivery days and October against September.
  • A sales rep scorecard with September and October sales, growth, average order and late deliveries for six reps.
  • A top 5 orders list that updates by itself.
  • Seven helper columns in the order log: city, state, product, unit price, order size, ship days and month.
KPI cards in the Google Sheets sales report
Cards: $85,678 total sales, 104 orders, 8 large orders, 2.0 days delivery.
Sales rep scorecard with Oct vs Sep growth
The scorecard: Michael Smith is up 14.1%, Emily Johnson is down 6.7% and turns red.

The Problem: A Raw Order Export

The export has 104 orders from September 1 to October 30, 2026, ten products, fourteen restaurant customers and six sales reps. The ship-to column holds city and state in one cell, the product and price are missing, and nothing is grouped. Start on the Practice tab: the report area is empty and waits for formulas.

Practice tab with the raw order export
The Practice tab: raw export below, empty report above.

Formula 1: SPLIT (City and State)

Select G24 and split the Ship-to text at the comma. Type the default version first and fill it down: row 36, St. Louis, MO, splits into St., Louis and MO and spills into the sales rep column with a #REF! error. The third argument FALSE fixes it by splitting only on the whole comma-and-space, not on each character.

=SPLIT(F24,", ",FALSE)
SPLIT formula and the REF error on St. Louis
Without FALSE, St. Louis, MO is cut into three pieces and collides with the next column.

Formula 2: XLOOKUP (Product and Unit Price)

Pull the product name and price from the Lists tab by product code. Because the return range covers two columns, one formula in K24 fills both the Product and the Unit price cells. The fourth argument shows Check code when a code is not found, and the Amount column (quantity times price) lights up.

=XLOOKUP(J24,Lists!$B$5:$B$14,Lists!$C$5:$D$14,"Check code")

Scroll to row 82 and you see the red Check code: the product code says CK-2O4 with a letter O instead of the zero. Retype it as CK-204 and the row becomes a Convection Oven, $2,350 times 2 = $4,700 for Delta Soul Kitchen on 10/06/2026.

XLOOKUP returning product and unit price
One XLOOKUP returns the product and the unit price.
Check code error on row 82 fixed to CK-204
Row 82: the letter O in CK-2O4 is the cause of the red Check code.

Formula 3: IFS (Order Size)

Label every order Large (1,500 and up), Medium (400 and up) or Small. The empty check keeps blank rows blank, and TRUE as the last test means everything else. Large orders then show as green chips and the card counts them.

=IF(N24="","",IFS(N24>=1500,"Large",N24>=400,"Medium",TRUE,"Small"))
IFS formula for order size
IFS checks the tests in order and stops at the first match.

Formula 4: NETWORKDAYS (Ship Days)

Count working days between the order date and the delivery date, skipping the company holidays on the Lists tab. Two details matter: NETWORKDAYS counts both end days, so subtract 1; and orders on 09/03 and 09/04 delivered on 09/08 cross Labor Day, which shows 3, 2 and 2 days without the holiday range but the correct 2, 1 and 1 with it. The average delivery card becomes 2.0 days, and anything above 3 days turns red.

=NETWORKDAYS(C24,D24,Lists!$F$5:$F$7)-1
NETWORKDAYS with a holiday range
Working days between order and delivery, with company holidays skipped.

Formula 5: TEXT (Month Label)

Turn the order date into a month label such as Sep 2026. The result is text, so the report headers for September and October must be text as well. If you type Sep 2026 into a normal cell, Sheets converts it to a date and SUMIFS returns 0.

=TEXT(C24,"mmm yyyy")
TEXT formula returning Sep 2026
TEXT turns a date into the label Sep 2026.

Formula 6: UNIQUE (Sales Rep List)

Build the scorecard rows from the data instead of typing names. UNIQUE returns the six reps, SORT puts them in A to Z order, and a new rep in next month’s export appears automatically.

=SORT(UNIQUE(I24:I127))

Formula 7: SUMIFS (Sales by Rep and Month)

This is the formula you will use most. It adds the Amount column for one rep in one month. Fill it right and down: the dollar signs lock the rep column ($B15) and the month header row (C$14), so one formula fills the whole table and the growth column and the Oct vs Sep card come alive.

=SUMIFS($N$24:$N$127,$I$24:$I$127,$B15,$Q$24:$Q$127,C$14)
SUMIFS result before the product code fix
Before the fix: Daniel Garcia shows -30.7% and the card -4.3%, because the $4,700 order is missing.

Now the payoff. With CK-2O4 still in the data, Daniel Garcia looks like -30.7% and the card says -4.3%. After the code is fixed to CK-204 the same formulas give +12.3% and +7.0%. A one-character typo changed the story, and XLOOKUP was the formula that caught it.

Report after the fix with +7.0% October vs September
After the fix: total sales $85,678 and October +7.0% against September.

Formula 8: AVERAGEIFS (Average Order per Rep)

The average order value for each rep, using the same rep criteria as SUMIFS. Daniel Garcia averages $966 and Olivia Brown $617.

=AVERAGEIFS($N$24:$N$127,$I$24:$I$127,$B15)
AVERAGEIFS formula for average order
AVERAGEIFS gives each rep’s average order.

Formula 9: COUNTIFS (Late Deliveries per Rep)

Count the orders that took more than 3 days. The condition goes in quotes: “>3”. Michael Smith has 4 late deliveries, Olivia Brown 3, and Daniel Garcia none.

=COUNTIFS($I$24:$I$127,$B15,$P$24:$P$127,">3")
COUNTIFS formula for late deliveries
COUNTIFS counts the orders above 3 shipping days per rep.

Formula 10: SORTN (Top 5 Orders)

SORTN returns the top rows of a sorted range. The curly brackets build a three-column range of customer, amount and order date; 5 is the number of rows, and sorting on column 2 descending gives the biggest orders: Delta Soul Kitchen $4,700, Bluegrass Bistro $2,350, Peachtree Kitchen $1,904, Buckeye Burger Bar $1,612 and Palmetto Seafood House $1,568.

=SORTN({E24:E127,N24:N127,C24:C127},5,0,2,FALSE)
SORTN returning the top 5 orders
SORTN returns the five biggest orders in one formula.

Use These Google Sheets Formulas on Your Own Data

Next month, paste the new export into the order log and the whole report updates by itself. Swap in your own products on the Lists tab and your own holidays, keep the column order, and compare with the Solution tab if a result looks off. The Excel download is an offline copy for reading the layout; the Google Sheets copy keeps every formula working.

📥  Download the FREE Practice File (Excel .xlsx)
Offline copy: README, Practice, Solution and Lists tabs

📄  Make Your Own Copy in Google Sheets
Opens a copy in your Google Drive – sign in to Google first

Want a Ready-Made Sales Report?

If you want a sales report that does even more, look at the Monthly Sales Tracker and Report in Google Sheets from Next Gen Templates. To learn Sheets step by step, see the Google Sheets Course: Beginner to Advanced on Next Gen Templates Academy.

🛒  Get the Monthly Sales Tracker and Report
Google Sheets · Next Gen Templates

Related Google Sheets Tutorials

The official Google Docs Editors function list explains every argument of these formulas.

Frequently Asked Questions

Which Google Sheets formulas are used most at work?

For business reports the workhorses are SUMIFS, COUNTIFS and AVERAGEIFS for totals by group, XLOOKUP to pull a price or name from a list, IFS to label rows, and TEXT, SPLIT and UNIQUE to clean and group the data. This tutorial uses all of them on one sales report.

Why does SPLIT break a city name like St. Louis?

By default SPLIT cuts on every character in the delimiter, so ", " cuts on the comma and on the space. St. Louis, MO becomes three pieces and spills into the next column. Adding FALSE as the third argument tells SPLIT to cut only on the whole comma-plus-space.

How can XLOOKUP return two columns at once?

Point the return range at two columns, such as Lists!$C$5:$D$14, and type the formula in one cell. The result spills into the cell next to it, so one formula brings back the product name and the unit price.

Why do I subtract 1 from NETWORKDAYS?

NETWORKDAYS counts both the start day and the end day. An order delivered the next day would show 2 working days, so subtracting 1 gives the days between the two dates. The holiday range makes it skip company holidays such as Labor Day.

Why is the Sep 2026 header in the report text and not a date?

Typing Sep 2026 in a normal cell turns it into a date, and SUMIFS then finds no match and returns 0. TEXT(C24,"mmm yyyy") returns text, so the log column and the report headers match exactly.

What do the dollar signs in the SUMIFS formula do?

$B15 locks the rep column while the row changes, and C$14 locks the month header row while the column changes. One formula then fills the whole rep by month table.

Will this report update when I add next month's orders?

Yes. Paste the new export into the order log and the formulas fill in the city, product, size, shipping days and month, and the scorecard and cards update by themselves.

More Google Sheets tutorials are on the NeoTech Navigators blog and the YouTube playlist.

PK
Written by PK (Priyendra Kumar)
Microsoft Certified Professional with 15+ years in data analysis, dashboards and automation. Creator of PK: An Excel Expert and NeoTech Navigators on YouTube. About the author
Tested in the real tool · Last reviewed November 12, 2026
PK
Meet PK, the founder of NeotechNavigators.com! With over 15 years of experience in Data Visualization, Excel Automation, and dashboard creation. PK is a Microsoft Certified Professional who has a passion for all things in Excel. PK loves to explore new and innovative ways to use Excel and is always eager to share his knowledge with others. With an eye for detail and a commitment to excellence, PK has become a go-to expert in the world of Excel. Whether you're looking to create stunning visualizations or streamline your workflow with automation, PK has the skills and expertise to help you succeed. Join the many satisfied clients who have benefited from PK's services and see how he can take your data analysis skills to the next level!
https://neotechnavigators.com