trolls.dev

the honest guide

How to make a Gantt chart in Google Sheets

Google Sheets has no Gantt chart button — but it can be talked into one. Here are the three ways that actually work, with the formulas to copy, and an honest accounting of what the spreadsheet will never do for you.

We use the same six-week bakery-website plan as our worked Gantt chart examples, so you can compare the spreadsheet version with the generated one. Using Excel instead? The same plan, done Microsoft's way, is on our Gantt chart in Excel guide — or, for a slide, our Gantt chart in PowerPoint guide.

One sheet feeds all three methods

Whichever method you pick, the raw material is identical: one row per task, with a start date and an end date. Two helper columns turn the dates into numbers a chart can use — days from project start and duration in days. Set this up once and every method below is a few clicks away.

bakery-website-plan · Google Sheets
D2 =INT(B2)-INT($B$2)
ABCDE
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 math is whole calendar days.

The stacked bar chart with an invisible series

This is the trick behind almost every Google Sheets Gantt chart on the internet: 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.

  1. List tasks with start and end dates

    In columns A to C, list each task with its start date and end date — one row per task, real dates in the date columns.

  2. Add two helper columns

    In column D, compute days from project start: =INT(B2)-INT($B$2). In column E, compute duration in days: =INT(C2)-INT(B2). Fill both down.

  3. Insert a stacked bar chart

    Select the task names (column A) and the two helper columns (D and E), then choose Insert → Chart and set the chart type to Stacked bar chart.

  4. Make the first series invisible

    In the chart editor, open Customize → Series, choose the "Start on day" series, and set its Fill opacity to 0%. The remaining bars float — that is your Gantt chart.

  5. Tidy the chart

    Remove the legend, title the chart, and set the horizontal axis minimum to 0 so the first task starts flush against the axis.

what Sheets gives you

Design
Build
Copy
Photos
QA & fixes

Two stacked series: the striped “Start on day” segment, then the real bar.

after fill opacity → 0%

Design
Build
Copy
Photos
QA & fixes

The first series is still there — it's just invisible. The bars float.

Twenty minutes, no add-ons, and it prints well. 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.

SPARKLINE bars, drawn inside the cells

The elegant hack: skip the chart editor entirely and draw each bar inside a cell with the SPARKLINE function. Each formula draws a two-segment bar — an invisible offset, then the visible task — so the timeline lives right next to your data and updates the instant a date changes.

F2 =SPARKLINE({D2, E2}, {"charttype","bar"; "color1","white"; "color2","#0e93bd"; "max",42})
A F
2 Design
3 Build
4 Copy
5 Photos
6 QA & fixes

color1 hides the offset segment (match it to your background), color2 paints the task, and "max" pins every row to the same scale — here 42, the project's total days. If Sheets rejects the formula, your locale wants backslashes instead of commas inside the braces: {D2\ E2}.

This is our favorite of the three, in the way you'd admire a clever crossword answer. It's fast, it lives where the data lives, and it needs no chart editor. It is also a bar chart made of punctuation: no axis labels, no weekend awareness, and the same blindness to dependencies as method one.

Timeline view, the closest Sheets gets

Newer versions of Google Sheets include a timeline view: select your task range, choose Insert → Timeline, and Sheets opens a new tab with each row drawn as a card on a horizontal timeline. You get zooming, card colors from a column, and honest handling of single-date rows — the closest thing to a native Gantt chart in the product.

The fine print: it's a view, not a chart. It lives in its own tab, can't be embedded in a doc or slide the way a chart can, and its availability depends on your Google plan — some personal accounts don't have it. And like the other two methods, the cards don't know about each other: no dependency arrows, no critical path, no reflow when a date moves.

Quick test: open a sheet and look for Insert → Timeline. If it's there, this is the fastest built-in option for a dated task list. If it isn't, you're back to methods one and two — or a tool that was built for this.

What the spreadsheet won't do

All three methods share one limitation, and it's the one that matters: a spreadsheet stores the picture of your plan, not the plan. The bars don't know they're connected. That surfaces in four specific ways:

  • No dependencies. When Design slips a week, Build doesn't move — you re-enter every downstream date by hand and hope you caught them all. This is the Tuesday-afternoon failure mode of every spreadsheet Gantt chart ever made.

  • Calendar days, not working days. The INT subtraction counts weekends and holidays as work time. A "14-day" bar is ten working days pretending to be fourteen — fine for a rough plan, misleading for a tight one.

  • Milestones are second-class. The moments people actually care about — launch, review, handoff — are zero-length, and zero-length bars are invisible. The workaround is a fake one-day task, which is a small lie in the middle of your plan.

  • Sharing means sharing the machinery. Send the sheet and you send the helper columns, the formulas, and edit access to all of it. There's no clean, read-only "here's the plan" link — the audience sees the engine room.

None of this means don't use Sheets. If the plan is short, the dates are stable, and everyone already lives in the spreadsheet, method one or two is genuinely fine — spreadsheets are the world's most installed project tool for a reason. But if you'll update the plan more than twice, the tool fights you exactly when you're busiest. (Not sure a timeline is even the right shape for your work? That's one question.)

Or: type the plan as a sentence

Every method above starts from the same place — a plan you could say out loud in one breath. That sentence is the actual source code of your timeline; the spreadsheet is just you compiling it by hand. So we built ganttchart.ai to skip the compiling:

Launch the bakery website in six weeks: design, build, taste-testing photos, then go live.

Ten seconds later that sentence is a real chart — with dependencies that reflow when a date slips, milestones drawn as milestones, and a clean link you can share without handing anyone your formulas. The examples page shows five plans built exactly this way, and the full guide covers how to write the sentence well.

common questions

Sheets and Gantt charts

Does Google Sheets have a built-in Gantt chart?

No. There is no Gantt option in the chart picker. Every Google Sheets Gantt chart is a workaround: a stacked bar chart with an invisible first series, SPARKLINE bars drawn inside cells, or the timeline view, which is a separate tab rather than a chart type.

Can a Google Sheets Gantt chart show dependencies?

Not really. The spreadsheet stores dates, not relationships — it has no idea Build waits on Design. When one task slips, nothing downstream moves; you re-enter every affected date by hand. Arrows between bars are not possible in any of the three methods.

How do I add milestones to a Gantt chart in Google Sheets?

Awkwardly. A milestone is a zero-length task, and a zero-length bar in a stacked bar chart is invisible. The usual workaround is to give the milestone a fake one-day duration and a different color — which puts a false day on your timeline. Timeline view handles single dates a little better.

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 spreadsheet methods on this page take fifteen to thirty minutes; the sentence takes about ten seconds, and the result reflows when a date changes.

Troll mascot sketching a project plan

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.