Back to Blog

How to Build a Profit and Loss Report in Google Sheets

D
David De Souza
May 4, 2026
Illustration of a profit and loss report in Google Sheets with revenue, expenses, and net income rows

A profit and loss report tells you whether your business made or lost money in a given period. In Google Sheets, you can build one that's clean, accurate, and easy to update every month — without paying for accounting software to generate it for you.

This guide walks through building a P&L from scratch, including the structure, the formulas, and how to set it up so monthly updates take minutes instead of hours.

The Structure of a P&L

A P&L has three sections: Revenue, Cost of Goods Sold (COGS), and Operating Expenses. The math flows like this:

  • Revenue minus COGS equals Gross Profit
  • Gross Profit minus Operating Expenses equals Net Income

Set up your Google Sheet with these sections as row groups. Column A holds the line item labels. Columns B onward hold monthly values — one column per month.

A clean layout looks like this:

                    | Jan     | Feb     | Mar
REVENUE             |         |         |
  Product Sales     | 42,000  | 38,500  | 51,000
  Service Revenue   | 12,000  | 14,000  | 13,500
Total Revenue       | 54,000  | 52,500  | 64,500

Keep line items granular in the source data, then sum them into category totals with SUM formulas.

Setting Up the Formulas

Total Revenue for January:

=SUM(B3:B4)

Gross Profit:

=B5-B8

Where B5 is Total Revenue and B8 is Total COGS.

Net Income:

=B9-B15

Where B9 is Gross Profit and B15 is Total Operating Expenses.

Use SUM for the expense subcategories (salaries, rent, software, marketing, etc.) and reference those totals in the Net Income formula.

Adding Variance vs. Budget

If you have a budget, add two columns next to each month: Budget and Variance. Variance is actual minus budget:

=B5-C5

Apply conditional formatting to variance cells: green if positive (over budget on revenue, under on expenses), red if negative. This makes it immediately obvious where you're off plan.

Month-over-Month Change

Add a % Change column between months:

=IF(B5=0, 0, (C5-B5)/B5)

Format as percentage. This gives you a quick read on whether revenue and expenses are trending in the right direction month to month.

Making It Easy to Update

The part most people get wrong is making the monthly update painful. Fix this by keeping your raw transaction data on a separate sheet — one row per transaction with columns for date, category, amount, and type (revenue or expense). Then use SUMIFS in your P&L to pull totals by category and month:

=SUMIFS(RawData!C:C, RawData!B:B, "Product Sales", RawData!D:D, "Revenue", RawData!A:A, ">="&DATE(2026,1,1), RawData!A:A, "<="&DATE(2026,1,31))

Now you just paste new transactions into the raw data sheet each month and the P&L updates automatically.

The Easy Way: Using SheetXAI in Google Sheets

Example 1: You have transaction data already in the sheet.

"I have monthly transaction data on Sheet 1 with columns for date, category, type, and amount. Build a P&L report showing revenue, COGS, gross profit, operating expenses, and net income by month, with a variance column comparing to budget."

SheetXAI reads your data, structures the P&L layout, writes the SUMIFS formulas, and adds the variance column.

Example 2: Your data is in your accounting software.

"Pull this year's transactions from QuickBooks and build a monthly P&L report with revenue, COGS, and operating expenses broken down by category."

SheetXAI connects to QuickBooks, pulls the data, and builds the full P&L automatically.

Try SheetXAI free and see what it builds for you.


Published May 2026. See also: How to Build a Budget vs. Actuals Report in Excel, How to Create a Cash Flow Forecast in Google Sheets, and Google Sheets AI Guide.

Stop memorizing formulas.
Tell your spreadsheet what to do.

Join 3,000+ professionals saving hours every week with SheetXAI.

Learn more