Exceljet

Quick, clean, and to the point

5 pivot tables you probably haven't seen before

by Dave Bruns | September 18, 2014

One thing you might have noticed about pivot tables is that almost all the examples you see are based on sales data. This makes sense in a way: sales is where the money is, and companies always have sales data in one form or another. However, pivot tables can handle a lot more than just sales. Any time you need to work with data, you should be thinking about pivot tables.

To illustrate how flexible and useful pivot tables are, here are five interesting examples you probably haven't seen before. I'm not going to explain how to create each pivot table in this article (I'll leave that for another day). I just want to give you some ideas about how you can use pivot tables with your own data.

Time tracking

Imagine you need to log time for different clients and projects and periodically report your time by client and project. There are of course many applications dedicated to time-tracking, but you can easily create your own flexible system using Pivot Tables.

At a minimum, what you need to record is a date, the time you spent, the client name, and the project. So, after you enter the data consistently, you might end up with source data that looks something like this:

Simple time tracking data by client and project

Note that there are no blank lines - you just need to enter the data as you go.

Now the summaries. First, you might want an overview of your time by week. Here we are using the week numbers provided by Excel's WEEKNUM function (see column C of the source data):

A summary of time by week number

You might also want to arrange the pivot table to show a more traditional timesheet layout, with days of the week across the top:

A summary of time logged for one week

Each time you filter on a different week number, your pivot table will build a new time sheet that displays the dates that belong to the week.

Note that by adding a column for Name to the data, you could track and report time for multiple people. You could also add a rate column to the data and use a pivot table to summarize the cost or billing rate of time logged.

If you want to learn more about pivot tables, see Core Pivot.

User activity in a web portal

Imagine that you're given a data dump from a large company's website. The website is a portal that provides product information to partners. Partners sign-up on an on-going basis throughout the year, and the portal has been running for a long time. You open up the data and take a look. Yikes. There are more than 30,000 users in there! The data looks something like this:

Raw server data showin user account details
Lots of user data. Emails are fictitious, of course!

Your boss wants to know some basic information: how many users are currently active? How many users are being created each month? What partners have the most user accounts, and so on. Also, she's meeting for CEO at lunch. Can you get that info to her in the next hour? Gulp.

Before you panic and break out heavy-duty functions like COUNTIF, SUMIF, INDEX, and so on, take a deep breath. This kind of data is perfect for pivot tables, which will crunch through it quickly and still leave you time for a cup of coffee. First, active vs. inactive users. This kind of summary is a piece of cake with pivot tables, even with huge data sets:

A simple summary of all users by status
Interesting. Some users are "suspended". Who knew?

Next, the top 10 partners by number of active users. This is easily done by using the pivot tables built-in "Top 10" value filter.

The top 10 partners by number of active users

And finally, by grouping user creation dates by year and month, you can easily show the complete history of user creation:

The number of users created by year and month
There must have been an import back in December 2009.

Class list

In this example, you're helping to coordinate sign-ups for a class that's offered Mondays, Wednesdays, and Fridays.

Each day during the sign-up period, you get a set of data that looks like this:

This data shows which students have registered for which class
Note the data is formatted as a Table; important for updating later

Your job is to send a simple report to the instructor at the start of each day that shows current registrations. There's not a lot of data here, but if you create the report manually, you'll need to use some combination of filtering, sorting, copying, and pasting, and you'll have to repeat the process each day.

Once again, this is an easy job for a pivot table. Just build a simple pivot table that summarizes by class day:

A summary of current class registrations
35 people have registered so far. Only 8 for the Friday class.

By adding names, you can quickly create a full class list.

Pivot table: Current class registrations with student names

By moving the Class field into the column labels area, you can create a report that keeps all students together in alphabetical order.

Pivot table: Current class registrations all students in alphabetical order
One Pivot Table quirk is a tendency to want to count everything.

Now that you've got a report layout you like, how do you update the report each day? Simple. Just paste in the latest data, overwriting the existing data, and refresh the pivot table(s). Should take less than a minute, with no busy work.

See also: Why should use a table for your Pivot table

Instrument measurements

You've got measurement data from a system that records the temperature, relative humidity, and dew point in a greenhouse every two minutes. The data looks like this:

Raw data: instrument readings taken every two minutes

What you need is a quick breakdown that shows the average reading per hour. Yes, you could construct your own formulas to do this, but it's going to be a lot of work. By flowing the data through a pivot table, you can simply add each measurement as a value, and change the display to show average instead of sum. This will give you a tidy summary that shows the average of each reading by hour:

Pivot table: instrument readings averaged by hour
Average readings per hour in less that 5 minutes

Email signups

You're working with a client who is tracking email signups on their website. The client is planning a new marketing campaign and wants to know which day of the week is best for signups, based on the data they have so far. Day of week is a little tricky, since it doesn't appear anywhere in the data, but you can easily add it to the data using the WEEKDAY function. Your data now looks like this:

Raw data: email signups with day of week added with a formula

And an initial summary looks like this:

Pivot table: email signups by year, month, and day of week
Every email sign-up to date in one tidy little pivot table

Looking at the data, you realize it would be more useful to show the total signups as a percentage rather than an absolute number. By setting the email count to display a percentage of row, the pivot table will show a breakdown by day of week. In addition, you add conditional formatting to make the higher and lower percentages stand out. Green for higher percentages, blue for lower percentages.

Pivot table: email signups by year, month, and day of week by percent, w/ conditional formatting
Now it's clear: most sign-ups are on weekdays. Tuesdays and Wednesdays are especially good days.

Summary

Hopefully this short tour of "unconventional" pivot tables tables has inspired you to try some new pivot tables on your data. You don't need to have a huge set of data to see the benefit of using a pivot table. Pivot tables will save you time and energy any whenever need to create a report based on data, especially a report you'll need to update again in the future.

Already making useful pivot tables? Confused by pivot tables? Feel free to comment below.

Want to know still more about pivot tables? See Core Pivot.