the honest guide
How to make a Gantt chart in Excel
Excel has no Gantt chart button — but it can be talked into one two different ways. Here are both, with the exact clicks, the formulas to copy, and an honest accounting of what a spreadsheet will never do for you.
We use the same six-week bakery-website plan as our worked examples, our Google Sheets guide, our PowerPoint guide, and our Word guide, so you can line them all up side by side.
the setup — five minutes
One table feeds both methods
Whichever method you pick, the raw material is the same: one row per task, with a start date and an end date. Two helper columns turn those dates into numbers a chart can use — days from project start and duration in days. Build this once and the chart is a few clicks away.
=INT(B2)-INT($B$2) | A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Task | Start | End | Start on day | Duration |
| 2 | Design | Oct 5 | Oct 19 | 0 | 14 |
| 3 | Build | Oct 12 | Oct 30 | 7 | 18 |
| 4 | Copy | Oct 22 | Oct 29 | 17 | 7 |
| 5 | Photos | Oct 26 | Nov 5 | 21 | 10 |
| 6 | QA & fixes | Nov 5 | Nov 12 | 31 | 7 |
The highlighted helper columns:
D2 =INT(B2)-INT($B$2)
and
E2 =INT(C2)-INT(B2),
filled down. INT strips any time-of-day, so the maths is whole calendar days.
method 01 — the classic
The stacked bar chart with an invisible series
This is the trick behind almost every Excel Gantt chart on the internet, and behind Microsoft's own template: a stacked bar chart where the first segment — the days before each task starts — is made invisible. What's left appears to float, and floating bars on a shared axis are a Gantt chart.
-
List tasks with start and end dates
In columns A to C, put one task per row with its start date in column B and end date in column C — real dates, formatted as dates.
-
Add two helper columns
In column D, days from project start: =INT(B2)-INT($B$2). In column E, duration in days: =INT(C2)-INT(B2). Fill both down to the last task.
-
Insert a stacked bar chart
Select the task names in column A, then Ctrl-select the two helper columns D and E. Insert → Charts → Bar → 2-D Stacked Bar.
-
Make the offset series disappear
Click the first (left-hand) series — the "Start on day" segment — and set Format Data Series → Fill → No fill. The remaining bars float: that is the Gantt chart.
-
Turn it right-side up and tighten the axis
Excel stacks the first task at the bottom. Select the vertical axis → Format Axis → check "Categories in reverse order". Then set the horizontal axis minimum to 0 so task one starts flush.
what Excel gives you
Two stacked series: the striped “Start on day” segment, then the real bar.
after fill → no fill
The offset series is still there — it's just invisible. The bars float.
Twenty minutes, no add-ons, and it prints cleanly. The catch: the chart is a picture of columns D and E. It doesn't know Build waits on Design — there are no dependencies, so when a date slips you re-type every downstream date yourself. And a milestone — a zero-day task — renders as nothing at all: a zero-width bar.
method 02 — no chart at all
A calendar grid, coloured by a formula
The other honest way skips the chart engine entirely. Lay a row of dates across the top, then let a single timeline of cells fill themselves in with a conditional-formatting rule. The bars live right next to your data and re-colour the instant a date changes — no chart editor, no hidden series.
=AND(F$1>=$B2, F$1<=$C2) | Task | Oct 5 | Oct 12 | Oct 19 | Oct 26 | Nov 2 | Nov 9 |
|---|---|---|---|---|---|---|
| Design | ||||||
| Build | ||||||
| Copy | ||||||
| Photos | ||||||
| QA & fixes |
Row 1 holds each column's date; the rule fills a cell when that date falls inside the task's span. Select the whole grid, add it under Home → Conditional Formatting → New Rule → “Use a formula”, and pick a fill. One column per week keeps it compact; one column per day draws a finer bar.
It's fast, it prints, and it needs no chart at all — but it's still a coloured picture of your dates. It can't hold a dependency, it counts weekends as working days, and the same milestone problem applies. Change a date and only the colours move; the plan underneath still doesn't understand what waits on what.
the honest part
What neither method can do
Both methods draw a convincing chart. Neither builds a plan that maintains itself — because a spreadsheet stores dates, not the relationships between them. That gap is the same in Excel as it is in Google Sheets:
- No dependencies. Nothing knows Build waits on Design. Slip one date and every downstream date is a manual edit — the critical path is invisible.
- No working days. The maths counts calendar days, so weekends and holidays quietly land inside every bar unless you hand-build a WORKDAY column.
- Milestones fight you. A zero-day marker is invisible in a bar chart and needs a separate scatter series or a fake one-day bar to show up at all.
- Sharing is a screenshot. Send the file and the recipient needs Excel, the right version, and the nerve to edit your formulas. A link is easier for everyone.
None of this makes Excel wrong — for a short, stable plan the stacked bar chart is genuinely fine. It's when the plan starts moving that the re-typing begins. If you're weighing the trade-off, our guide to planning a project walks through when a spreadsheet is enough and when it isn't.
questions we actually get
Excel Gantt charts, answered
Does Excel have a built-in Gantt chart?
No. There is no Gantt chart type in the Insert → Charts menu. Every Excel Gantt chart is a workaround: a stacked bar chart with an invisible first series, a grid coloured in by conditional formatting, or one of Microsoft's downloadable templates — which are themselves stacked bar charts with the formatting done for you.
Why is my Excel Gantt chart upside down?
Because Excel plots the first row of a bar chart at the bottom of the axis, so your task list comes out reversed. Select the vertical (category) axis, open Format Axis, and tick "Categories in reverse order". The first task jumps to the top and the timeline reads top-to-bottom the way you wrote it.
Can an Excel Gantt chart show dependencies?
Not on its own. The spreadsheet stores dates, not relationships — it has no idea Build waits on Design. When one task slips, nothing downstream moves; you re-type every affected date by hand. There is no supported way to draw the arrows between bars that a real Gantt chart uses to show what waits on what.
How do I add milestones to an Excel Gantt chart?
Awkwardly. A milestone is a zero-length task, and a zero-width bar is invisible. The usual fixes are to add the milestone as a separate scatter series plotted as a diamond, or to give it a fake one-day duration in a different colour — which quietly puts a day on your timeline that is not really there.
What's the fastest way to make a Gantt chart?
Describe the plan in a sentence and let ganttchart.ai draw it — tasks, durations, dependencies, and milestones included. The Excel methods on this page take fifteen to thirty minutes and break when a date changes; the sentence takes about ten seconds, and the chart reflows itself.
New to the vocabulary? Every planning term on this page is defined in the plain-English glossary.
Skip the helper columns
Describe your project in plain English and get a shareable, editable Gantt chart in seconds — dependencies and milestones included.