How to Make a Gantt Chart in Excel With Dates and Progress

Updated 7 minute readBy the Exclusive Design Lab team

Here is how to make a Gantt chart in Excel: enter each task with a start date and a duration, insert a stacked bar chart, format the start-date series as No Fill so only the durations show, and reverse the category order so the first task sits at the top. If you prefer a grid to a chart, one conditional formatting rule, =AND(F$1>=$B2,F$1<=$C2), colors the cells between each task’s dates instead.

The steps below are for Excel for Microsoft 365 and Excel 2016 or later on Windows. Excel for Mac uses the same panes, with some menus in slightly different places.

Enter Your Tasks With Dates

Both methods use the same table. Our example is an office move from Monday, August 16 to Friday, September 10, 2027, with Labor Day (Monday, September 6) off. Headers go in row 1:

Row A: Task B: Start C: End D: Duration E: % done
2 Choose movers and book the date 8/16/2027 8/18/2027 3 100%
3 Plan the new floor layout 8/17/2027 8/20/2027 4 100%
4 Order furniture and network gear 8/23/2027 8/27/2027 5 40%
5 Pack and label 8/30/2027 9/3/2027 5 0%
6 Move and connect IT 9/7/2027 9/8/2027 2 0%
7 Unpack and settle in 9/9/2027 9/10/2027 2 0%

Duration in D2 is =C2-B2+1, filled down. The +1 counts both the first and last day; without it, a one-day task would have zero length and no bar. This is calendar length, which is what a bar needs. If you also want working days, add a column with NETWORKDAYS, which our NETWORKDAYS guide explains with holidays and custom weekends.

Make sure the dates are real dates. Excel right-aligns numbers and dates by default, so a date that sits against the left edge of its cell was probably stored as text, and the chart will plot it as zero.

Method 1: Stacked Bar Gantt Chart in Excel

  1. Select A1:B7, hold Ctrl and select D1:D7, so you have Task, Start and Duration.
  2. Go to Insert > Insert Column or Bar Chart and choose Stacked Bar under 2-D Bar.
  3. Click any of the Start bars (the first series, blue by default), right-click and choose Format Data Series. Under Fill & Line, set Fill to No Fill and Border to No line. Only the Duration bars stay visible, each floating at its start date.
  4. Right-click the task names on the vertical axis and choose Format Axis. Under Axis Options, tick Categories in reverse order, and the first task moves to the top. The date axis jumps to the top of the chart as well, so in the same pane set Horizontal axis crosses to At maximum category to bring it back down.
  5. Right-click the dates on the horizontal axis and choose Format Axis. Under Bounds, set Minimum to 46615 and Maximum to 46643. Under Units, set Major to 7.
  6. Still in Format Axis, open Number, type mmm d in Format Code and click Add.
  7. Click a Duration bar and, under Series Options, set Gap Width to 50% for thicker bars. Delete the legend.

Step 5 is the one people skip. Excel stores dates as serial numbers, and 46615 is Monday, August 16, 2027, while 46643 is Monday, September 13. Left on automatic, the axis picks its own start and end, which rarely line up with your first Monday. With a Monday minimum and a major unit of 7, every gridline falls on a Monday. To find the serial number of any date, type the date in a spare cell and change its format to General.

Axis bounds do not follow cell values, so update them if the project moves.

Show Progress on the Excel Gantt Chart

To split each bar into done and remaining, add two helper columns:

  • F1: Done, and in F2: =D2*E2
  • G1: Remaining, and in G2: =D2-F2

Fill both down to row 7. Right-click the chart, choose Select Data, select the Duration series and click Edit: set Series name to F1 and Series values to F2:F7. Then click Add, with Series name G1 and Series values G2:G7. Give Done a dark fill and Remaining a light version of the same color.

Order furniture and network gear now shows 2 dark days (5 days at 40%) and 3 light ones. Percent done is only as good as the number you type, so our guide on how to track project progress covers better ways to measure it than a guess.

Add a Today Line

A vertical line for today takes a small two-point scatter series. In I1 type Today, in I2 enter =TODAY() and in I3 enter =I2. In J2 enter 0 and in J3 enter 1.

  1. Right-click the chart, choose Select Data and click Add. Set Series name to I1 and Series values to J2:J3.
  2. Right-click the chart, choose Change Chart Type, then Combo. Set the Today series to Scatter with Straight Lines and tick its Secondary Axis box. Leave the other series as Stacked Bar.
  3. Open Select Data again, select Today and click Edit. Set Series X values to I2:I3 and Series Y values to J2:J3.
  4. Right-click the new vertical axis on the right and choose Format Axis. Set Minimum to 0 and Maximum to 1, then set Label Position to None to hide it.
  5. Click the line and give it a red color and a width of about 2 pt.

Both points share today’s date, so the line runs from the bottom of the chart (0) to the top (1) and moves on its own each day. It only appears when today falls inside the axis bounds, so to test the example now, type 8/25/2027 in I2 instead of =TODAY(). If the line lands somewhere odd, open Chart Elements (the plus sign) > Axes and make sure Secondary Horizontal is unticked, so the line uses the date axis.

Method 2: Conditional Formatting Gantt Chart in Excel

The grid method is quicker to build, shows weekends and holidays as gaps, and prints well. Use columns A to E on a fresh sheet, since the grid starts in column F.

  1. In F1 type 8/16/2027. In G1 enter =F1+1 and fill right to AE1, which gives 26 days. In Microsoft 365 or Excel 2021 you can use =SEQUENCE(1,26,DATE(2027,8,16)) in F1 instead.
  2. Select F1:AE1, press Ctrl+1, choose Custom and type d so each header shows the day number. Select columns F to AE and set Home > Format > Column Width to 3.
  3. Select F2:AE7 and go to Home > Conditional Formatting > New Rule > Use a formula to determine which cells to format. Enter =AND(F$1>=$B2,F$1<=$C2), click Format, choose a light fill on the Fill tab and click OK twice.
  4. For progress, add a second rule on F2:AE7 with a darker fill: =AND(F$1>=$B2,F$1<$B2+$D2*$E2). In row 4, only August 23 and 24 turn dark.
  5. For days off, list holidays on a sheet named Holidays in A2:A12 (here, 9/6/2027). Select F1:AE7 and add a gray rule: =OR(WEEKDAY(F$1,2)>5,COUNTIF(Holidays!$A$2:$A$12,F$1)>0).
  6. For today, select F1:AE7 and add =F$1=TODAY(). Click Format, and on the Border tab choose a red line for the left and right edges, with no fill.
  7. Open Home > Conditional Formatting > Manage Rules, set Show formatting rules for to This Worksheet, and use the arrows to order the rules: gray days off, then progress, then the plain bar.

The dollar signs do the work. F$1 keeps each cell reading the date in its own column, and $B2, $C2, $D2 and $E2 keep it reading its own row. WEEKDAY(F$1,2) numbers Monday as 1 and Sunday as 7, so anything above 5 is a weekend.

When two rules give the same cell a fill, the one higher in Manage Rules wins, which is why gray goes first. The today border does not clash with any fill, so it shows on top of whatever color the cell has. Unlike Google Sheets, Excel lets a rule read another sheet directly, so the holiday range needs no INDIRECT.

Which Excel Gantt Method to Choose

Stacked bar chart Conditional formatting grid
Build time Longer: chart and axis formatting Short: four rules
Weekends and holidays Inside the bars, no gaps Shown as gray gaps
Progress Done and Remaining series Darker fill rule
Today Two-point scatter line Red border rule
Best for Reports and slides Daily planning and printing

For team files kept in Google Sheets, the same ideas work with a few changes, covered in how to make a Gantt chart in Google Sheets. On longer projects, add a header row per phase (Plan, Prepare, Move, Settle) so the bars read in groups; our guide to project phases has phase sets for common project types.

If you would rather not build and maintain these rules yourself, our Gantt chart template draws the chart from a task list with phases, status colors and holidays already set up. Either way, start with the grid method: if you later need a chart for a report, the same table feeds it without retyping a single date.

Frequently asked questions

Does Excel have a built-in Gantt chart?

There is no Gantt chart type in Excel's chart menu. You build one from a stacked bar chart or with conditional formatting, or start from a ready-made file by searching for Gantt under File > New.

How do I add milestones to an Excel Gantt chart?

Give each milestone its own row with the same start and end date, so it draws as a one-day bar. In the conditional formatting grid, add a rule such as =$B2=$C2 above the bar rule with a darker fill so milestones stand out.

How do I show weeks instead of days in an Excel Gantt chart grid?

Put each week's Monday in the header row (8/16/2027, then =F1+7 copied right) and use the rule =AND(F$1<=$C2, F$1+6>=$B2). A cell fills whenever the task overlaps that week.