Excel Pivot Tables Tutorial : What is a Pivot Table and How to Make one

Share

Facebook
Twitter
LinkedIn

Excel pivot tables are very useful and powerful feature of MS Excel. They are be used to create instant summaries, reports and data analysis from your raw data

In this page, learn all about how to create an Excel pivot table and customize it.

Table of Contents

What are Excel Pivot Tables?

A pivot table turns your data into report format. Here is a sample Pivot table from sales data, showing total sales by region.

Example of an Excel Pivot Table

How to create a Pivot Table?

We will use 2019 sales data of a fictional company. This data contains 466 rows of sales information in columns – Month, Salesman, Region, Product, No.  Customers, Net Sales, Profit / Loss. Here is a preview of our data.

Sample data - Pivot tables in Excel

Download the sample data & example pivot tables here.

To create a pivot table showing totals sales by region, follow these steps.

  1. Select any cell in the data.
  2. Go to Insert ribbon and click “Pivot Table” button.
    Insert Pivot Table button - Excel ribbon
  3.  Click ok on the next screen.
    Create Pivot Table dialog
  4. You will be taken a new spreadsheet with blank Pivot Table canvas.  Here, using the Pivot Table Fields panel set “Regions” field to row label area, “Products” to “Filter” area and “Net Sales” to values area. See below illustration.
    how to use pivot table fields - setting up a pivot table

Your pivot table will be ready. We can see that “West” is our best region. This is why Pivot tables are easy for finding answers to common business questions.

Two dimensional Pivots - Row & Column fields

You can add fields to both “Row” and “Column” label area of a pivot. Such Pivot Tables are normally called two dimensional pivots. Here is a demo of a two dimensional pivot table showing Total Sales by Region & Sales Person.

Two dimensional pivot - demo

Multi-dimensional Pivots - Row & Column fields

You can also add more than one item to “Row” or “Column” label area. This creates a multi-dimensional Pivot Report. Here is one such pivot report showing total sales by Region, Sales Person & Product for selected months.

Example Pivot Report - A very detailed Pivot Table with sub-totals and totals

 

How to format Pivot Table values?

By default, numbers in Pivot Tables tend to just look like zip codes, without any proper formatting. This is easy to fix though. Simply right click on the values and use “Value Field Settings” to set up the formatting. To set currency formatting for our Total sales by region Pivot Report, 

  1. Go to value field settings
  2. Click on Number Format button
  3. Set up the formatting to “Currency”
  4. Done.

See this illustration.

How to currency format pivot table values

 

Sorting in Excel Pivot Tables

You can easily sort pivot report by ascending or descending order of the value. To do this, just right click on the value, select Sort > and specify the order.

Here is an example of sorted pivot report of Number of customers by Sales person.

Sorting a pivot table in descending order of sales

Filtering Excel Pivot Tables

You are looking at Regional total sales and want to know what the total is for just “RapidZoo” product. You can do this by filtering the pivot table. Excel offers two powerful ways to filter Pivot Tables

  1. Report filters
  2. Slicers

Both methods are illustrated below. Read on to learn how to use them.

Filtering an excel pivot table - two methods

Filtering with Report Filters

Report filter is a great way to restrict the data that is flowing to your pivot. To set them up, just add the field to “Filters” area in the fields panel. Now, using the filter button next to “Product”, select the product you want.

Here is a quick demo of report filters in action.

Report filter demo

Filtering with Slicers

There are a ton of cool features in Excel Pivot Tables, but slicers are hands-down the best feature. At-least, that is what I think. They make filtering and ad-hoc data analysis a breeze.

A slicer is a visual filter. You can add a slicer on any field by right clicking on it from the fields panel. See the illustration “Adding filters to a pivot report” from above. 

Once you have a slicer on Product, simply click on any product name to see the report for that. 

Here is a quick demo of Pivot Table with slicers.

Filtering a pivot table with slicer - demo

Other kinds of filtering - Value & Label Filters

Apart from report filters & Slicers, Pivot Tables also allow you to filter by a field or value. 

Field or Label Filter: If you don’t want to see “Middle” region in a row label area, just click on the filter button next to “Row Labels” and uncheck the region. This type of filtering is called Label Filtering.

Value Filter: If you want to see just the top 2 regions by total sales, then you need a value filter. Simply go to filter button next to row labels and using value filters, apply a top 10 filter but set it to top 2 values by “Sum of net sales.”

Changing Calculations in Pivot Tables

The default calculation in Pivot Tables is SUM for number fields and COUNT for all others. But you can also customize the calculation easily. Just right click on the value field and choose different type of summary from right click menu.

Changing from SUM to AVERAGE in a Pivot Table

Here is a quick illustration of how to change calculation type from “SUM” to “AVERAGE”.

how to change pivot table calculations

Pivot Table Layouts & Colors

By default, Excel Pivot Tables are in compact layout. This means, if you add multiple fields to row label area, they will all be shown in same column, with indentation.

You can change the layout of a pivot table to other formats too. 

  • Compact form (default)
  • Outline form
  • Tabular form

You can change the layout from Pivot Table Design ribbon.

Pivot Table layout options

Here is an example of same Pivot Table in both Compact and Tabular layouts. 

Compact vs. Tabular Layouts for Pivot Tables in Excel

Styling & colors of Excel Pivot Tables

You can apply any formatting to the pivot tables. MS Excel has some very good pivot table styles. Just select pivot table cells, go to Pivot Table Design ribbon. See below image to understand various options available.

Pivot table design options

Visualizing with Pivot Charts

You can use Pivot Charts to visualize the same information in a graphic format. Here is a sample Pivot Chart of Net Sales by Region & Product.

Excel Pivot Chart - Example

Steps for creating a Pivot Chart:

  1. Select any cell in the Pivot Table.
  2. Click on Insert > Chart or Analyze > Pivot Chart button.
  3. Insert the type of chart you want.
  4. You will get a Pivot Chart.

Interactive Pivot Chart with Slicers

Slicers make it incredibly easy to create interactive charts. Once you have a regular Pivot Chart, simply add a slicer to it (right click on the field in “Pivot Table Fields” area and select “Add as Slicer”). You now have an interactive Pivot Chart.

Here is a demo of interactive Pivot Chart. 

interactive pivot chart with slicers

Updating Pivot Tables (Refresh)

Whenever you have new data, just use “Refresh” button to update your Pivot Tables. You can find this button in multiple places.

  • Data ribbon
  • Pivot Table Analyze ribbon
  • On right clicking any Pivot Table
  • By pressing ALT+F5 (refreshes single pivot) or CTRL+ALT+F5 (refreshes all pivots)

Refresh and change data source options - Excel Pivot Table Analyze ribbonWhat if you want to point Pivot to new data?

Select any cell in the Pivot Table and from Analyze ribbon, use the “Change Data Source” button. Point input data to a new source. As long as the new data has same fields, everything will work smoothly.

 

 

Pivot Tables in Excel - Complete video tutorial

I have made a 21 minute video explaining how to create, format, customize, visualize, filter and refresh Pivot Tables. This video is packed with many tricks, ideas and inspiration. Check it out below.

Download - Sample data & example Pivot Tables

Please click here to download the sample file for this article. It contains fictional sales data, several example pivot tables, charts and additional resources. 

Examine the pivot table settings and use the data to learn more.

Next Steps

Now that you are familiar with Pivot Tables, explore these additional pages to learn more about data analysis & reporting.

Beginner:

Intermediate & Advanced Users:

Recommended Websites & Books:

These are my favorite places to learn more about Pivot Tables.

Websites:

Books:

Courses:

Happy Learning.

 

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