Skip to main content

Xero Profit & Loss in Excel

Live monthly P&L from Xero, in any Excel workbook — refresh on demand, no exports.

What it is

The Profit & Loss statement — also called the income statement — is the report that tells you whether a business made or lost money over a defined period. It groups revenue, cost of sales, gross profit, operating expenses, and net income, usually by month and year-to-date. In Xero it is the most consulted report on the dashboard, and the one accountants and CFOs rebuild in Excel every month-end.

Xero generates the P&L from posted transactions in real time. The challenge for anyone reporting outside Xero is keeping that real-time view synchronised with the workbook the board, investors, or operating team actually read. Every export-paste cycle is one more chance for the numbers to drift from the underlying ledger.

Why analysts want it in Excel

Excel remains the lingua franca of management reporting because it does things Xero's standard report viewer cannot: pivot drill-down, scenario modelling, side-by-side multi-period comparison, integration with budget sheets, custom KPIs, and a presentation layer that fits the firm's board pack template. CFOs do not want to recreate Xero in Excel — they want Xero's numbers, in their Excel layout.

Live P&L in Excel also unlocks dashboards: a single workbook that refreshes a 12-month trend, a year-over-year variance grid, or a multi-entity roll-up, all on demand. Once the data layer is live, the analyst's time shifts from data wrangling to actual analysis.

For accounting firms, a live Profit & Loss in Excel is how a fixed management-reporting template gets reused across clients. The same workbook structure — the same KPIs, the same comparative columns, the same commentary cells — points at a different Xero organization simply by swapping the org reference. What used to be one bespoke deliverable per client becomes one template applied to twenty engagements, with the actual numbers refreshed at the click of a Refresh button instead of a thirty-minute manual rebuild.

Why the manual method breaks

  • Export the P&L from Xero, paste it into Excel, re-format columns, rebuild totals — repeat every month, every period, every meeting. The cycle compounds across entities and reporting calendars.
  • Breaks the moment Xero renames an account, splits a chart-of-accounts node, or you change date settings. The named ranges in your workbook silently stop matching the export.
  • Adds up to thirty minutes of clerical work per entity per month — most of it spent reconciling export totals back to the live ledger.
  • FX adjustments, late journals, and prior-period corrections are invisible until the next export — you only learn about them when someone notices a discrepancy in board pack week.
  • No live reconciliation against Xero — the workbook drifts the moment it is emailed. Two readers of the same monthly pack can have different numbers if they reopen it on different days.
  • Multi-period comparison requires stitching multiple exports together by hand; tracking-category drill-down requires a fresh export per filter combination.

The live add-in method

XO Report exposes the P&L two ways. Pick the one that fits your workflow.

Primary: insert the full Profit & Loss report via the task pane. Open the Tables and Reports tab in the XO Report task pane, select Profit & Loss (it is a Date Rangereport — pick From and To dates), then click Insert. The full P&L lands on a new sheet named “P&L” with the same structure Xero generates: revenue rows, expense rows, sub-totals, gross profit, and net income. Comparison columns and tracking-category filters are available on the configuration step.

Complementary: pull a cell-level Net Income with XO.PROFIT. XO.PROFIT returns the single Net Income value for a date range. Use it for dashboard tiles, multi-period comparison grids, board pack KPIs, or any workbook that needs the bottom line without the full report layout.

# Single Net Income for a date range (org_id, from_date, to_date)
=XO.PROFIT($A$2, $C1, $D1)

# Multi-period dashboard layout (drag down to add periods)
| Org ID  | From       | To         | Net Income                     |
| !abc123 | 2026-01-01 | 2026-01-31 | =XO.PROFIT($A$2, B2, C2)       |
| !abc123 | 2026-02-01 | 2026-02-28 | =XO.PROFIT($A$2, B3, C3)       |
| !abc123 | 2026-03-01 | 2026-03-31 | =XO.PROFIT($A$2, B4, C4)       |

# A$2 is the Org ID returned by =XO.ORG() in a separate setup cell.

XO.PROFIT takes three required arguments: org_id (use =XO.ORG() in a setup cell and reference that cell, locked with $A$2), start_date, and end_date. The function calls the Xero P&L report API for the range and returns the Net Income line — positive for profit, negative for loss.

Locking $A$2 with absolute references lets you drag the formula down a period column without rewriting the org reference. The date cells (B2, C2) stay relative so each row pulls its own month.

For the full P&L breakdown (revenue lines, expense lines, gross profit, EBITDA), use the task pane wizard above — that is what it is designed for. XO.PROFIT is the right call when you need one number per cell, not a full report block.

Xero's P&L API limits the date range to 365 days; XO Report blocks longer ranges in the wizard and returns an error if the formula spans more than a year.

Related docs

Frequently asked questions

What is the difference between the task pane Profit & Loss report and the XO.PROFIT formula?
The task pane wizard inserts the full Profit & Loss report — every revenue, expense, sub-total, and gross-profit row — onto a new sheet, matching how Xero displays it. The XO.PROFIT formula returns a single Net Income value for the date range you pass. Use the wizard for the full report; use the formula for dashboard cells, multi-period grids, and KPI tiles.
Does the Profit & Loss in Excel refresh live?
Yes. Both surfaces refresh: the inserted task pane report re-pulls when you click Refresh in the XO Report task pane, and XO.PROFIT formulas re-evaluate on workbook recalculation. Cache TTL is five minutes per organization and per request — repeated formula calls inside that window read from cache, not from the Xero API.
Which Xero plan do I need to pull a P&L into Excel?
Any Xero plan that exposes the standard Reports API — Starter, Standard, and Premium are all supported. Ledger and Cashbook (the accountant-only plans) do not expose the report endpoint and are therefore unsupported.
Can I use the P&L add-in with Excel for Mac?
Yes. XO Report is built on Office.js and runs in Excel for Windows, Excel for Mac, and Excel on the web. The same formula and the same task pane wizard work in every Excel client signed into the same Microsoft account.
Does the P&L support multi-currency reporting?
The P&L is generated in the organization’s base currency — Xero handles the underlying currency conversion of foreign-currency transactions before the report is computed. Per-account currency breakdowns are visible in the full task pane report; the XO.PROFIT formula returns the base-currency Net Income figure.
Can I pivot or chart the P&L once it is inserted in the workbook?
Yes. Once the P&L lands on a sheet it behaves like any other Excel range — convert it to a table, pivot it, chart it, copy it into a board pack template, or link it to other sheets. Refreshing the report rewrites the same range in place, so downstream pivots and charts stay wired.

For a complete overview of building Xero reports in Excel — including how this function fits into a full workflow — see our complete Xero to Excel guide.

Stop exporting. Start refreshing.

Install XO Report and pull live Xero data into Excel with a single formula. 14-day free trial — no credit card.

Free trial · No credit card · Cancel anytime