Shading above or below a line in Excel charts [tutorial]

Share

Facebook
Twitter
LinkedIn

When comparing 2 sets of data, one question we always ask is,

  • How is first set of numbers different from second set?

A classic example of this is, lets say you are comparing productivity figures of your company with industry averages. Merely seeing both your series as lines (or columns etc.) is not going to tell you the full story. But if we can shade our productivity line in red or green when it is under or above industry average… now that would be awesome! Something like below:

Shaded line charts - help us tell a better story when comparing one series with another

The above chart tells us where we are lagging and where we are good. It will let us ask poking questions about the gap and find answers (may be removing coffee machine from 2nd floor last May was a bad idea!)

So how do we create such a chart?

PS: This chart and article is inspired from a question asked by arobbins & excellent solution provided by Hui here.

Creating a shaded line chart in Excel – step by step tutorial

1. Place your data in Excel

Lay out your data like this.

Original Data - Shaded line chart in Excel

2. Add 3 extra columns – min, lower, upper

If you look at the chart closely, you will realize it is a collection of 4 sets of data. See this illustration to understand.

Anatomy of Shaded line chart made in Excel - 3 extra series explained

Write formulas to load values in to min, lower (green) & upper (red) series.

  • Min is minimum of productivity and ind. average
  • Lower (green) is difference between productivity and ind. average (or NA() if negative)
  • Upper (red) is difference between ind. average and productivity (or NA() if negative)

3. Create a stacked area chart from this data

Select all the 4 series (productivity, min, lower & upper) and create a stacked area chart.

This is how it looks.

Step 1 - create a stacked area chart - shaded line chart in Excel

4. Format the productivity series as line

Right click on productivity series and using “Change series chart type” option, change it to line chart.

Step 2 - Format Productivity series as line - Shaded line chart in Excel

5. Make the min series transparent

Select min series and fill it with “No color”

Step 3 - make the min series transperant - Shaded line chart in Excel

6. Format lower & upper in green & red colors respectively

Step 4 change the colors for lower & upper series - shaded line chart in Excel

And you are done!

Optional: adjust series formatting, add grid lines etc.

As a bonus, you can add vertical grid lines (so that we can understand the red green changes easily) and format the horizontal axis. You can also move around the legend and remove the words “min” from it.

This will make the chart look really awesome.

Shaded line charts - help us tell a better story when comparing one series with another

Is this the only way to compare productivity with industry averages?

Although our shaded line chart is an excellent way to visualize differences between 2 series of data, I kept thinking if there are other ways to compare this.

After a bit of doodling & drawing inspiration from various charts I have seen earlier, here are 4 more options we can consider.

Option 1 – Productivity vs. variance wrt Ind. average

Alternative 1 - shaded line chart in Excel

This chart shows the variance (industry average-productity) at bottom so that we can easily look at overall trend & understand how we fared with respect to industry.

To create this chart, you just have to calculate the variance in a separate column and create a column & line chart combination (column for variance & line for productivity). Once such a chart is ready, go to fill options for the column chart and check invert colors if negative option and set up green & red colors!

Option 2 – Productivity vs. better or worse indicators

Alternative 2 - Shaded line chart in Excel

This chart just shows whether productivity surpassed industry average or not in a boolean state (green for yes, red for no)

This chart is a combination of line & column chart with same principle as above (invert if negative option).

Option 2 (made using Excel 2010 Sparklines)

Alternative 2 - made with Sparklines - Shaded line chart in Excel

You can create this chart very easily with Excel 2010 sparklines. Line chart for productivity and win-loss chart for better or worse indicators.

Option 3 – Collapsed Productivity vs. variance wrt Ind. average

Alternative 3 - collapsed - Shaded line chart

Since the color is already telling us whether variance is negative or positive, we can collapse both to same side of axis (thus saving some space & reducing redundant information).

To create this chart, we need two series of data – positive variance & negative variance as 2 sets of areas on the chart.

Option 4 – Collapsed Productivity vs. better or worse indicators

Alternative 4 - Shaded line chart with collapsed indicators in Excel

Well, this is same as option 2 but collapsed.

Download Example workbook

Click here to download the Excel workbook containing all these examples. You can also see detailed steps for making the shaded line chart in it.

How do you compare one series with another?

I must confess that I never made shaded line chart until today. For smaller data sets (<15 items), I usually compare by making column charts or thermo-meter charts. These are easy to make and easy to understand. For larger data sets, I try to make dynamic charts so that I can choose which series to include in comparison or make indexed charts.

Now that I learned how to set up shaded line charts, I will try them in my upcoming projects & consulting assignments to see how they fare.

What about you? Which types of charts do you use to compare one series with another? Please share your techniques & implementations using comments. I would love to learn more from you.

Compare often? Check out these charts

If you compare apples to apples (or to an occasional  bushel of oranges) for living, then check out these charting tutorials & techniques.

WARNING: After learning these techniques, Suddenly you will become incomparably awesome in your office.

Facebook
Twitter
LinkedIn

Share this tip with your colleagues

Excel and Power BI tips - Chandoo.org Newsletter

Get FREE Excel + Power BI Tips

Simple, fun and useful emails, once per week.

Learn & be awesome.

Welcome to Chandoo.org

Thank you so much for visiting. My aim is to make you awesome in Excel & Power BI. I do this by sharing videos, tips, examples and downloads on this website. There are more than 1,000 pages with all things Excel, Power BI, Dashboards & VBA here. Go ahead and spend few minutes to be AWESOME.

Read my storyFREE Excel tips book

Overall I learned a lot and I thought you did a great job of explaining how to do things. This will definitely elevate my reporting in the future.
Rebekah S
Reporting Analyst
Excel formula list - 100+ examples and howto guide for you

From simple to complex, there is a formula for every occasion. Check out the list now.

Calendars, invoices, trackers and much more. All free, fun and fantastic.

Advanced Pivot Table tricks

Power Query, Data model, DAX, Filters, Slicers, Conditional formats and beautiful charts. It's all here.

Still on fence about Power BI? In this getting started guide, learn what is Power BI, how to get it and how to create your first report from scratch.

25 Responses to “Shift Calendar Template – FREE Download”

  1. Alvin says:

    Hi Chandoo,

    your recent postings include only Excel 2007 templates. Unfortunately the company I work at still runs Excel 2003. Is it possible to get your awesome files in other excel version as well?

    Thanks so much for your great excel stuff!

  2. Stelios Tserkezis says:

    Is it possible to do this for shifts with hours instead of days? To organise a three shift day?

    Thanks in advance,

    Stelios

  3. MASTHAN says:

    In my organization there are 45 employees i need split then into three shifts ex:A shift:14,B shift:14,C shift:14 and week off:3 kindly help me on this.

  4. Hui... says:

    @Masthan

    You need to understand what rules your company has for the various shifts / roster combinations

  5. Georges Lacombe says:

    Chandoo, I once did a shift control spreadsheet for my team. I put one person in each line, the columns were the days. I put a shift code in each cell indicating in which shift that person should work, or if the person were out that day. I have two codes for being out. One is for vacations and one is to compensate days worked in weekends. This way I was able to count how many persons I have in each shift, how many were on vacations and how many were out compensating (that's the term we use here) weekend worked hours.
    Later I included the possibility of a person be in two lines one for normal hours other for overtime. This is mainly used for planning purposes. If you would like I can send you an example. The only problem of this spreadsheet is that we don't have a person view, only this consolidated view.

    • Chuck Vaughan says:

      Hi George, I would like to have a copy of your spreadsheet if you can share it.
       
      Thanks in advance, Chuck   

  6. Idan says:

    Hi Chandoo,

    Where is the code located ? is it VBA ? If so , how do you hide it ? Or it is .NET ?

    Thx

  7. Hui... says:

    @Idan
    .
    No VBA or code, it is all done with Mirrors.
    Only Joking,
    .
    But there is no VBA or code,
    It is all done with Named Formulas and Lookups.
    Have alook at the cells in the calander area and Named Formulas in the Formulas, Name Manager Tab.

  8. Anand Sant says:

    How can i calculate between two or more different workbooks? Please, reply me as early as possible.

    • Hui... says:

      @Anand
      Open the workbooks you want to link to
      Start a formula = and click and change between workbooks as required.
      You can use the View, Switch window menu to change workbooks mid formula

      The format for using workbooks is
      =[Workbook.xlsm]Sheet1!$A$1
      or
      =SUM('[Book2.xls]Sheet1'!$A$1:$D$10)
      etc

  9. Shemi says:

    Hi Chandoo,
    I am working with a call centre wherein i ned to update at the month end 20 to 30 employees login hours which are defict to track it at the month end is very difficult is there any template which can be made to track that why on a particular day a guy who needs to be on calls was why not on calls.

  10. Denice Lognshaw says:

    Thank you so much Chandoo. This is really helping me. As usual, you rock.

  11. Mukesh Verma says:

    What's FortyTwoDays and Calendar in Name manager?

    Both are unused and FortyTwoDays doesn't make any sense.

  12. Dave says:

    I have a SQL db that contains records of events scheduled/completed on a particular date. Can this method ous building a calendar be used to display those events on the respective day?

  13. Jan Halliday says:

    Positively awesome!
    I'm attempting to help a friend create a schedule for adult classes - and of course its not"paid help".  Here is the scenario:
    20 classes, instructor, room#, student class size, start date, number of class days (need to subtract weekends)

    class
    instructor
    room
    students
    start
    #days

    PATH
    karen
    201
    21
    01/01/13
    11

    BILLING
    jane
    401
    15
    01/12/13
    13

    MEDISOFT
    mike
    301
    11
    01/25/13
    9

    he'd like to see these classes show up in different colors within the same month's calendar chart.  He can draw it, but I'd like to see it done automatically through data, and I just can't visualize it, but I KNOW this will work - can you help?
    Jan 🙂
     

  14. Chan Tean says:

    Dear chandoo,

    Try many way to download still can't access. Any way we want to try out 3 shifts with 3 guys in a group .eg Group A Morn, Group B Night and Group C Rest. And every each group must work on sunday to take turns. In fact we are security teams so that's why sunday is required to work. Pls guide and show how to put in the working calendar. Thank you in advance.

  15. Veronica Burggren says:

    I've been trying to copy and/or recreate this to use in a workbook I'm doing for the transportation department I'm working for. I need to have the calendar on the first sheet in my document (it has graph's from data on another sheet). I'm trying to use it to track (with the conditional formatting) accidents and injuries. I've redone the conditional formatting to do 4 different accident types (no injury, near miss, OSHA recordable injury and work loss injury), but when I enter the formula's you have in the calendar portion where it says "DateOfFirst-FirstWeekDay" I can't figure out how you did that. Are you able to help?

  16. Pipin Fantom says:

    I would like to use Excel to solve the following problem for a community work. I want to create a Driver schedule for a given month from a pool of volunteers for a community service. Each of these volunteers can drive only on specific days in a week. I would like to populate the driving schedule for each weekday with primary, secondary and tertiary drivers in a random fashion so that I do not overburden one person. I would greatly any help you can provide.

  17. Ravichandra says:

    Hi chandoo,
    Thanks for your valuable effort for create this template and let me know how to add multiple employees in the the Roaster.

  18. Savitha says:

    Hi Chandoo,

    This article on shift roaster is very helpful. Could you please let me know how i can use the same for n number of resources who work 24/7, considering their leaves and holidays?

    Thanks,
    Savitha

  19. Balu says:

    Hi Chandoo,

    This article on shift roaster is very helpful to all. Could you please let me know how i can use the same if I want to add for some more shifts, since the color is not getting change if I add more shifts like 4,5 etc.,

    Thanks,
    Murali

  20. Sarah says:

    How can I change the date to 2017 under Shift Data worksheet.

  21. Cad says:

    solution 1:
    mydata=B2:C16
    stoplist=E2:E8

    =LET(RNG,A2:A16,SMR,C2:C16, F,(RNG=E2)+(RNG=E3)+(RNG=E4)+(RNG=E5)+(RNG=E6)+(RNG=E7)+(RNG=E8),SUM(SMR)-SUM(SMR*F))

    =LET(RNG,A2:A16,SMR,C2:C16,RH,N(B2:B16=B2), F,(RNG=E2)+(RNG=E3)+(RNG=E4)+(RNG=E5)+(RNG=E6)+(RNG=E7)+(RNG=E8),TOT,SUM(SMR)-SUM(SMR*RH*F),SUM(SMR*RH)-SUM(SMR* RH*F))

    ALTERNATE SOLUTION
    =SUM(C2:C16)-SUM(FILTER(C2:C16,ISNUMBER(BYROW(A2:A16,LAMBDA(a,TOROW(SEARCH(a,E2:E8),2))))))

    =SUM((B2:B16=B2)*(C2:C16))-SUM((ISNUMBER(BYROW(A2:A16,LAMBDA(a,TOROW(SEARCH(a,E2:E8),2))))*(B2:B16=B2)*(C2:C16)))

  22. Cad says:

    let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Replaced Value" = Table.ReplaceValue(Source,null,";",Replacer.ReplaceValue,{"Column1"}),
    #"Transposed Table" = Table.Transpose(#"Replaced Value"),
    #"Removed Other Columns" = Table.SelectColumns(#"Transposed Table",{"Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "Column9", "Column10", "Column11", "Column12", "Column13", "Column14", "Column15", "Column16", "Column17", "Column18", "Column19", "Column20", "Column21", "Column22", "Column23", "Column24", "Column25", "Column26", "Column27", "Column28", "Column29", "Column30", "Column31", "Column32", "Column33", "Column34", "Column35", "Column36", "Column37", "Column38", "Column39", "Column40", "Column41", "Column42", "Column43", "Column44", "Column45", "Column46", "Column47", "Column48", "Column49", "Column50", "Column51", "Column52", "Column53", "Column54", "Column55", "Column56", "Column57", "Column58", "Column59", "Column60", "Column61", "Column62", "Column63", "Column64", "Column65", "Column66", "Column67", "Column68", "Column69", "Column70", "Column71", "Column72", "Column73", "Column74", "Column75", "Column76", "Column77", "Column78", "Column79", "Column80", "Column81", "Column82", "Column83", "Column84", "Column85", "Column86", "Column87"}),
    #"Merged Columns" = Table.CombineColumns(#"Removed Other Columns",{"Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "Column9", "Column10", "Column11", "Column12", "Column13", "Column14", "Column15", "Column16", "Column17", "Column18", "Column19", "Column20", "Column21", "Column22", "Column23", "Column24", "Column25", "Column26", "Column27", "Column28", "Column29", "Column30", "Column31", "Column32", "Column33", "Column34", "Column35", "Column36", "Column37", "Column38", "Column39", "Column40", "Column41", "Column42", "Column43", "Column44", "Column45", "Column46", "Column47", "Column48", "Column49", "Column50", "Column51", "Column52", "Column53", "Column54", "Column55", "Column56", "Column57", "Column58", "Column59", "Column60", "Column61", "Column62", "Column63", "Column64", "Column65", "Column66", "Column67", "Column68", "Column69", "Column70", "Column71", "Column72", "Column73", "Column74", "Column75", "Column76", "Column77", "Column78", "Column79", "Column80", "Column81", "Column82", "Column83", "Column84", "Column85", "Column86", "Column87"},Combiner.CombineTextByDelimiter("|", QuoteStyle.None),"Merged"),
    #"Split Column by Delimiter" = Table.ExpandListColumn(Table.TransformColumns(#"Merged Columns", {{"Merged", Splitter.SplitTextByDelimiter(";", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Merged"),
    #"Added Prefix" = Table.TransformColumns(#"Split Column by Delimiter", {{"Merged", each "|" & _, type text}}),
    #"Replaced Value1" = Table.ReplaceValue(#"Added Prefix","||","|",Replacer.ReplaceText,{"Merged"}),
    #"Split Column by Delimiter1" = Table.SplitColumn(#"Replaced Value1", "Merged", Splitter.SplitTextByDelimiter("|", QuoteStyle.Csv), {"Merged.1", "Merged.2", "Merged.3", "Merged.4", "Merged.5", "Merged.6", "Merged.7", "Merged.8"}),
    #"Removed Columns" = Table.RemoveColumns(#"Split Column by Delimiter1",{"Merged.1"}),
    #"Removed Duplicates" = Table.Distinct(#"Removed Columns")
    in
    #"Removed Duplicates"

Leave a Reply