26 January 2018

How to set up custom Gantt chart views in MS-Project ®

You are here:
How to set up Custom Gantt chart views in MS-Project

Part of a series on customising Microsoft® Project® to make working with project schedules more useful.

This post describes how to set up custom Gantt chart views to present schedule extracts based on the Live project schedule data, filtered and formatted to suit particular stakeholder audiences.

So why would you want to use this approach, how do you do it, and what’s in it for you as a result?

The Why

So you’ve created a useful programme schedule, and you want to create tailored views to suit stakeholder audiences. You need to generate a view for the programme team that contains all the detail and information needed to manage delivery. You also need to generate a view for the regular Steering Committee (SteerCo) meeting – but with less detail and with a whole lot less visual “clutter”. You could create something visually Gantt-like in PowerPoint, but that will end up with you dragging boxes around and lining them up with dates by eye every time you need to prepare a meeting pack.

Not a particularly efficient or rewarding use of your time.

A better way would be to create a special view of a real, live MS-Project schedule, which has these benefits:

  • Senior stakeholders (CxOs) like it – OK, maybe not as much as a manually-drawn Gantt in PowerPoint but it’s more Exec-friendly than a “classic” Gantt chart straight from MS-Project
  • Because it’s based on a “real” MS-Project schedule, you can add and delete lines, delay tasks, etc., and everything will move around in time automatically
  • You can show both baseline and “latest view forecast” milestone dates on the task bars so slippage is easy to see
  • There is no opportunity for the transcription errors that inevitably arise when updating a PowerPoint diagram by hand.

So how can we do it?

The How

The answer lies with custom Gantt chart views. You can build a custom “Exec” view comprising a minimal table, a filter (to focus attention on only the most important items), and some Gantt chart formatting.

The filter

This is how you specify which tasks are going to appear in the Exec view.

You can do this by setting up a numerical field called something like “Milestone level” (with level 0 being the most important, level 1 the next most important and so on), and setting a filter to determine which level milestones appear in which types of report. In my experience this rarely works smoothly, as different people often have different ideas what is a “level 0” milestone, and you often get the situation where an item is level 3 as far as the project is concerned but we want to include it in the Exec view because one of the Execs has a particular interest in it.

So instead I usually use a customised flag field (with a default of “no”) so that I can specifically select which items appear in a summarised Exec view.

To do this, pick an empty custom task flag field (in MS-Project 2016, select Project, Custom Fields, and look for a custom flag field with an uncustomised name, like “Flag1”), rename it something like “Exec view?” and click on Formula:

You need to add this to a Gantt table to select which tasks will appear in the Exec view, and create a new filter that uses it.

To do this in MS-Project 2016, select View, and in the Data group in the drop-down that appears next to the “Filter” item, select New Filter right near the bottom. Call it something like “Exec view” and set up the dialogue box so that it shows only tasks for which the custom flag “Exec view?” is Yes (see figure ), then click on Save.

The Table

Now you need to create a custom table that displays fairly minimal information alongside the Gantt chart.

To do this, first create a copy of an existing the table you use most. In MS-Project 2016, select View, Tables, More Tables, select the table you use most (if you are not aware that table views exist, you will probably have been working in the default “Entry” table), and click on Copy. Give the new table a helpful name like “Exec Table” and click OK.

Now we can add the new column we created for “Exec View?” to the table, and remove any columns we don’t need to Execs to see. First make sure you are using your new table (In MS-Project 2016, select View, Tables, More Tables, and select the “Exec view” table you just created). To add the new column, right-click in the heading of any of the columns, select “Insert Column” from the pop-up menu, and then select “Exec view?” from the long list. Then work through all the tasks and milestones in the plan, ensuring there is a “yes” in the Exec View column for every item you want to appear in the exec view, and a “no” or blank for the rest.

To remove unwanted columns, right-click on the column name and select “Hide Column” from the pop-up menu. For a really clean Exec view, you probably need only the Task title, a simple indication of status (MS-Project’s built-in “Status” field is probably fine for this), and the “Exec view?” column.

The Gantt chart

Now you need to create a view to hold all the elements together, including a nice clutter-free Gantt chart. A “view” in MS-Project comprises a filter, a grouping, a table, and some chart formatting (saved as part of the view, but not as a named item).

To create a new view, in MS-Project 2016 select View, Task Views, Gantt Chart, Other views, More views, select the view you use most (if you are not aware that chart views exist, you will probably have been working in the default “Gantt Chart” view), and click on Copy. Give the new view a helpful name like “Exec View”, select the filter you created, the table you created (don’t worry about the grouping) and click OK. The dialogue box should look something like this:

Now we get to customise the look of the Gantt chart itself.

There are several elements to this:

  1. Set the table/Gantt separator bar. If you left some columns in the table for convenience, you can hide them now by moving the bar separating the Table and the Gantt chart (highlighted in the figure below) by dragging it so that it only shows the columns you want: probably just the task names and status. If the fields are only partly shown, they will not print. Don’t drag the divider all the way over to the right though, because then the Gantt chart section won’t print. This raises a problem: If you can’t see all the fields you want to print, then you can’t print them all. You will have to make them narrower, rearrange their order, or hide some of them so that you reach some sort of compromise.
  2. Set the timescale so that all the tasks of interest are on one page. To change this, right-click in the time area (highlighted in the screenshot below). Bear in mind though that if you make the time resolution very detailed, the Gantt chart will end up very wide. For a “whole year” view I usually go with two-tier, quarters on the top (2Q16 format as it’s very compact) and months (Jan, Feb, etc.) underneath. For a more detailed “look-ahead” view I usually go with two-tier, months on the top (Jan16, Feb16 format as it’s very compact) and weeks (1, 2 … 52) underneath.
  3. Configure the Gantt chart formatting.
    1. Gridlines. Right click anywhere on the Gantt area (not on a task bar); select “Gridlines” and format the gridlines to show the bare minimum you need (probably just light gridlines for the top middle and bottom date tiers). While you’re in here, add a vertical line for today’s date by selecting “Current date” in the menu, and formatting a line style and colour (a solid red line is usually the most visible)
    2. Gantt bars. Right click anywhere on the Gantt area (not on a bar) and select “Bar Styles”. In here it is possible to assign different formatting to different types of Gantt item. For Exec views, simple usually works best, so delete all the lines containing special formatting for more unusual task types. For the rest I would suggest a simple two-tone colour scheme, with tasks shown in a pale colour, and progress overlaid in a darker tone of that colour.

      It is also possible to attach text to Gantt bars. Again I would urge simplicity. Something like the start date (for tasks) or the item name (for milestones) to the left of the bar, with the finish date to the right is completely adequate and keeps clutter to a minimum.  You can set formatting and text styles for each type of bar by clicking on the item type in the top area of the dialogue box, and changing the text and bar settings in the tabs at the bottom. The upper section of the dialogue box gives you a preview of the formatted bar. Be aware that MS-Project renders the items in this list in the order shown, so items nearer the bottom of the list will be ‘drawn’ on top of items nearer the top of the list, potentially obscuring them.

Using it

To use the view you have created, in MS-Project 2016 select View, Task Views, Gantt Chart, Other views, More views, select the Exec View you created, and click on Apply. This will apply the filter, table and Gantt chart formatting to generate the Exec view.

To use this view in other applications (such as a PowerPoint® meeting pack or Word® document), in MS-Project 2016 select Task, Copy, Copy Picture, and in the dialog box that appears choose Selected Rows, and set the timescale so that it includes the tasks of interest. You can then paste the graphic into the application of your choice.

The Result

The result is a Gantt chart like this:

Although admittedly there is a fair bit of set-up work involved, you only have to do this once, and you can save all the filters, tables and views you like in a file you can use as a template. After that, each time you want an up to date summary view for a report, all you have to do is apply the custom Gantt chart view – with just a few clicks. You can enhance this approach by combining it with some of the other approaches in this series (e.g. to show only tasks that start or finish in the next 28 days) or to do things like automatically colouring milestones according to RAG status – but for that you’ll need to get in touch as it’s a bit too complex to explain in a blog post (which I try to keep to around 500 words – so I failed on this one!).

So that’s how to set up custom Gantt chart views in MS-Project for simple Exec reporting on project progress. This approach comes to you from my experience of doing things the hard way and coming up with something better.

Is this approach useful to you? How do you use custom filters, tables and Gantt chart views in MS-Project? How else could you use them? Let me know in the comments.

If you would like to have the benefits of an approach like this but would prefer not to get bogged down in the detail, The PMO Professionals can help. Why not take a look at our “Savvy scheduling” service, and if that looks interesting, get in touch to discuss how we can help you?


® Microsoft, Project, Word, PowerPoint and Excel are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.