Pivot table explained

A pivot table is a table of values which are aggregations of groups of individual values from a more extensive table (such as from a database, spreadsheet, or business intelligence program) within one or more discrete categories. The aggregations or summaries of the groups of the individual terms might include sums, averages, counts, or other statistics. A pivot table is the outcome of the statistical processing of tabularized raw data and can be used for decision-making.

Although pivot table is a generic term, Microsoft held a trademark on the term in the United States from 1994 to 2020.[1]

History

In their book Pivot Table Data Crunching,[2] Bill Jelen and Mike Alexander refer to Pito Salas as the "father of pivot tables". While working on a concept for a new program that would eventually become Lotus Improv, Salas noted that spreadsheets have patterns of data. A tool that could help the user recognize these patterns would help to build advanced data models quickly. With Improv, users could define and store sets of categories, then change views by dragging category names with the mouse. This core functionality would provide the model for pivot tables.

Lotus Development released Improv in 1991 on the NeXT platform. A few months after the release of Improv, Brio Technology published a standalone Macintosh implementation, called DataPivot (with technology eventually patented in 1999). Borland purchased the DataPivot technology in 1992 and implemented it in their own spreadsheet application, Quattro Pro.

In 1993 the Microsoft Windows version of Improv appeared. Early in 1994 Microsoft Excel 5[3] brought a new functionality called a "PivotTable" to market. Microsoft further improved this feature in later versions of Excel:

In 2007 Oracle Corporation made PIVOT and UNPIVOT operators available in Oracle Database 11g.[4]

Mechanics

For typical data entry and storage, data usually appear in flat tables, meaning that they consist of only columns and rows, as in the following portion of a sample spreadsheet showing data on shirt types:

ABCDEFG
1RegionGenderStyleShip dateUnitsPriceCost
2EastBoyTee2005-01-311211.0410.42
3EastBoyGolf2005-01-311213.0012.60
4EastBoyFancy2005-01-311211.9611.74
5EastGirlTee2005-01-311011.2710.56
6EastGirlGolf2005-01-311012.1211.95
7EastGirlFancy2005-01-311013.7413.33
8WestBoyTee2005-01-311111.4410.94
9WestBoyGolf2005-01-311112.6311.73
10WestBoyFancy2005-01-311112.0611.51
11WestGirlTee2005-01-311513.4213.29
12WestGirlGolf2005-01-311511.4810.67

While tables such as these can contain many data items, it can be difficult to get summarized information from them. A pivot table can help quickly summarize the data and highlight the desired information. The usage of a pivot table is extremely broad and depends on the situation. The first question to ask is, "What am I seeking?" In the example here, let us ask, "How many Units did we sell in each Region for every Ship Date?":

Sum of units Ship date ▼
Region ▼2005-01-312005-02-282005-03-312005-04-302005-05-312005-06-30
East6680102116127125
North96117138151154156
South123141157178191202
West7897117136150157
(blank)
Grand total363435514581622640

A pivot table usually consists of row, column and data (or fact) fields. In this case, the column is ship date, the row is region and the data we would like to see is (sum of) units. These fields allow several kinds of aggregations, including: sum, average, standard deviation, count, etc. In this case, the total number of units shipped is displayed here using a sum aggregation.

Implementation

Using the example above, the software will find all distinct values for Region. In this case, they are: North, South, East, West. Furthermore, it will find all distinct values for Ship date. Based on the aggregation type, sum, it will summarize the fact, the quantities of Unit, and display them in a multidimensional chart. In the example above, the first datum is 66. This number was obtained by finding all records where both Region was East and Ship Date was 2005-01-31, and adding the Units of that collection of records (i.e., cells E2 to E7) together to get a final result.

Pivot tables are not created automatically. For example, in Microsoft Excel one must first select the entire data in the original table and then go to the Insert tab and select "Pivot Table" (or "Pivot Chart"). The user then has the option of either inserting the pivot table into an existing sheet or creating a new sheet to house the pivot table. A pivot table field list is provided to the user which lists all the column headers present in the data. For instance, if a table represents sales data of a company, it might include Date of sale, Sales person, Item sold, Color of item, Units sold, Per unit price, and Total price. This makes the data more readily accessible.

Date of sale Sales person Item sold Color of item Units sold Per unit price Total price
2013-10-01 Jones Notebook Black 8
2013-10-02 Prince Laptop Red 4
2013-10-03 George Mouse Red 6 850 5100
2013-10-04 Larry Notebook White 10
2013-10-05 Jones Mouse Black 4 700 2800

The fields that would be created will be visible on the right hand side of the worksheet. By default, the pivot table layout design will appear below this list.

Pivot Table fields are the building blocks of pivot tables. Each of the fields from the list can be dragged on to this layout, which has four options:

  1. Filters
  2. Columns
  3. Rows
  4. Values

Some uses of pivot tables are related to the analysis of questionnaires with optional responses but some implementations of pivot tables do not allow these use cases. For example the implementation in LibreOffice Calc since 2012 is not able to process empty cells.[5] [6]

Filters

Report filter is used to apply a filter to an entire table. For example, if the "Color of Item" field is dragged to this area, then the table constructed will have a report filter inserted above the table. This report filter will have drop-down options (Black, Red, and White in the example above). When an option is chosen from this drop-down list ("Black" in this example), then the table that would be visible will contain only the data from those rows that have the "Color of Item= Black".

Columns

Column labels are used to apply a filter to one or more columns that have to be shown in the pivot table. For instance if the "Salesperson" field is dragged to this area, then the table constructed will have values from the column "Sales Person", i.e., one will have a number of columns equal to the number of "Salesperson". There will also be one added column of Total. In the example above, this instruction will create five columns in the table — one for each salesperson, and Grand Total. There will be a filter above the data — column labels — from which one can select or deselect a particular salesperson for the pivot table.

This table will not have any numerical values as no numerical field is selected but when it is selected, the values will automatically get updated in the column of "Grand total".

Rows

Row labels are used to apply a filter to one or more rows that have to be shown in the pivot table. For instance, if the "Salesperson" field is dragged on this area then the other output table constructed will have values from the column "Salesperson", i.e., one will have a number of rows equal to the number of "Sales Person". There will also be one added row of "Grand Total". In the example above, this instruction will create five rows in the table — one for each salesperson, and Grand Total. There will be a filter above the data — row labels — from which one can select or deselect a particular salesperson for the Pivot table.

This table will not have any numerical values, as no numerical field is selected, but when it is selected, the values will automatically get updated in the Row of "Grand Total".

Values

This usually takes a field that has numerical values that can be used for different types of calculations. However, using text values would also not be wrong; instead of Sum, it will give a count. So, in the example above, if the "Units sold" field is dragged to this area along with the row label of "Salesperson", then the instruction will add a new column, "Sum of units sold", which will have values against each salesperson.

Row labels Sum of units sold
Jones12
Prince4
George6
Larry10
Grand total32

Application support

Pivot tables or pivot functionality are an integral part of many spreadsheet applications and some database software, as well as being found in other data visualization tools and business intelligence packages.

Spreadsheets

Database support

Web applications

Programming languages and libraries

Programming languages and libraries suited to work with tabular data contain functions that allow the creation and manipulation of pivot tables.

Online analytical processing

Excel pivot tables include the feature to directly query an online analytical processing (OLAP) server for retrieving data instead of getting the data from an Excel spreadsheet. On this configuration, a pivot table is a simple client of an OLAP server. Excel's PivotTable not only allows for connecting to Microsoft's Analysis Service, but to any XML for Analysis (XMLA) OLAP standard-compliant server.

Further reading

Notes and References

  1. Web site: United States Trademark Serial Number 74472929. December 27, 1994. March 23, 2022.
  2. Book: Bill. Jelen. Bill Jelen. Michael. Alexander. Pivot table data crunching. registration. 2006. Que. Indianapolis. 0-7897-3435-4. 274.
  3. Book: Darlington. Keith. VBA For Excel Made Simple. Routledge. 2012. 19. 9781136349775. September 10, 2014. [...] Excel 5, released in early 1994, included the first version of VBA.. August 6, 2012.
  4. Book: Shah. Sharanam. Shah. Vaishali. Oracle for Professionals – Covers Oracle 9i, 10g and 11g. Shroff Publishing Series. Navi Mumbai. Shroff Publishers. July 2008. 549. 9788184045260. September 10, 2014. One of the most useful new features of the Oracle Database 11g from the SQL perspective is the introduction of Pivot and Unpivot operators.. 2008.
  5. Web site: LibreOffice Calc and Pivot table with empty cells. 2021-06-17. en-US. June 17, 2021. StackOverflow.
  6. Web site: Functionality request for PIVOTTABLE. LibreOffice bugs. March 19, 2012. 2021-06-17. en-US.
  7. Book: Dalgleish . Debra . Beginning PivotTables in Excel 2007: From Novice to Professional . 2007 . Apress . 9781430204336 . 233–257 . September 18, 2018 . en.
  8. Web site: Busy Developers' Guide to HSSF and XSSF Features . 2022-12-09 . poi.apache.org.
  9. Web site: Pivot Tables .
  10. Web site: Create & use pivot tables . Docs Editors Help . Google Inc. . August 6, 2020.
  11. Web site: iWork update brings major changes to Mac, iPhone, and iPad apps. 2021-09-28. Macworld. en-US.
  12. Web site: PostgreSQL: Documentation: 9.2: tablefunc. postgresql.org. November 9, 2017.
  13. Web site: CONNECT Table Types – PIVOT Table Type. mariadb.com.
  14. Web site: FROM clause plus JOIN, APPLY, PIVOT (T-SQL) – SQL Server.
  15. Web site: pandas.pivot_table. November 21, 2023.
  16. Book: dplyr and Pivot Tables.
  17. Book: Pivoting.
  18. Web site: pivottabler.