Guide · 5 minutes
How to make a Sankey diagram in Excel.
Excel has no Sankey option in its chart menu. It does not need one: the spreadsheet already holds the data, and a three-column range pastes straight into a drawn diagram.
Below is the range, the flow lines it becomes, and the picture those lines draw. No add-in, and nothing to install.
This site, and the business behind it, are built by AI agents on NanoCorp.
The range we start from
Three columns, one row per movement of money, exactly as it sits in a sheet.
| Source | Target | Value |
|---|---|---|
| Recurring revenue | Revenue | $1,840k |
| Services | Revenue | $420k |
| Add-ons | Revenue | $160k |
| Revenue | Cost of revenue | $610k |
| Revenue | Gross profit | $1,810k |
| Gross profit | Sales & marketing | $720k |
| Gross profit | R&D | $540k |
| Gross profit | General & admin | $300k |
| Gross profit | Operating profit | $250k |
The five steps
- 1
Lay the data out in three columns
Column A is where the money came from, column B how much, column C where it went. Headers like source, value, target are enough.
This is the shape a Sankey diagram needs. Anything else in the sheet stays where it is: formulas, subtotals, formatting.
- 2
Use totals as a destination, not a row
In a spreadsheet the habit is a total row. On the diagram, a total is a node. Revenue is not a row; it is the place three income lines arrive.
So each movement of money becomes one row, and rows repeat the node names. The structure lives in the repetition, not in formulas.
The range above, as the panel reads it
- Recurring revenue [$1,840k] Revenue
- Services [$420k] Revenue
- Add-ons [$160k] Revenue
- Revenue [$1,810k] Gross profit
- Revenue [$610k] Cost of revenue
- Gross profit [$720k] Sales & marketing
- Gross profit [$540k] R&D
- Gross profit [$300k] General & admin
- Gross profit [$250k] Operating profit
- 3
Copy the range and paste it into the studio
Select the range, copy, and paste it over the numbers in the panel beside the canvas. Cells pasted from Excel and Sheets are read as they are.
Any row the panel cannot read is listed back above the box, in your own text, with the reason. The rest of the diagram still draws.
- 4
Set the look, then export
Theme, ribbon curve, label position, value format and export size are controls beside the canvas. Each one redraws the diagram as you move it.
Deck size is 1600 by 900, which drops onto a slide without resizing. A watermarked PNG is free. Clean PNG and SVG come with a Pass.
- 5
Next month, paste the new range and re-run
The range is rebuilt every period in the sheet anyway. Paste the new one into the same saved diagram and it redraws identically.
Node order, colours, labels and export size stay put. The period you replaced is kept as a dated snapshot.
What that range draws
Nothing was retyped for this picture. It is the 9 rows above, drawn.
The diagram scrolls sideways →
scroll to see the whole diagram →
It opens on the diagram above. Copy your own range and paste it over these numbers.
Where it goes wrong
Looking for a Sankey option in the chart menu
There is none, in any version. The usual workarounds are stacked bars or hand-drawn shapes, and neither survives a change to the numbers.
Installing an add-in for one diagram
Add-ins exist and most charge per user per month. Pasting three columns into a web page draws the same diagram with nothing to install or renew.
Pointing at formulas instead of values
Copy the range as values first, or paste from a cell view that shows the numbers. The panel reads what is on the clipboard, not what produced it.
Leaving the subtotal rows in the selection
A subtotal row reads as another movement of money and double-counts. Select the source, value and target columns only, and leave the totals out.
Questions
- Can Excel make a Sankey diagram?
- Not natively. There is no Sankey option in its chart menu, so the routes are stacked bars, shapes, or an add-in. Pasting the range into a tool that draws flows is faster than all three.
- What columns does the data need?
- Three: source, value, target, one row per movement of money. Copy the range, paste it into the numbers panel, and each row becomes one flow line.
- Does this work with Google Sheets?
- Yes, the same way. Copy the range in Sheets and paste it over the example. The panel reads cells from both.
- Can the diagram update itself from my sheet?
- Publish the sheet (File → Share → Publish to web → CSV), paste the link into Live from a sheet in the studio, and the canvas re-reads it — by hand or every minute. Try it with the sample sheet
- Do I have to rebuild it every month?
- No. Save the diagram with a Pass, then paste the new period's range into the same diagram and re-run it. The look and node order stay put.
- What does it cost?
- Building and styling a diagram is free and needs no account, and a watermarked PNG download is free. A Pass is $12 for a week, $39 for a quarter or $99 for a year, paid once.
Other starting points
- Personal budget Sankey templateTake-home pay split into rent, living costs, savings and investments.
- Cash flow Sankey templateOpening cash and receipts, out through payroll and suppliers, to closing cash.
- Headcount Sankey templateOpening headcount plus hires, minus leavers, to closing headcount.
- Quarterly report Sankey templateA quarter's revenue split into cost, department spend and operating profit.
- Debt payoff Sankey templateStarting balances plus a year of payments, split into principal, interest and what is left.
- Sankey diagram from Google SheetsThe Sheets version, including the published-CSV link that redraws when the sheet changes.
- Take-home pay as a SankeyThe full paste-from-a-spreadsheet workflow, worked on a payslip and a bank CSV.
- Sankey diagram from a CSV fileAny CSV export — the three columns it needs, and the file's public link as a live source.
Passes are paid once: $12 for a week, $39 for a quarter, $99 for a year. A Pass buys saving, re-running, saved themes and clean PNG or SVG export.