How to: Subtotal Fields in a Pivot Table
- 3 minutes to read
This topic describes how to manage subtotals in a pivot table. Subtotals automatically appear for outer fields when you add multiple row and/or column fields to your report.
Select the task you wish to perform.
Show or Hide Subtotals For a Pivot Table
To show or hide subtotals in a PivotTable report, use the following methods of the PivotLayout object accessible using the PivotTable.Layout property.
Method | Description |
---|---|
PivotLayout.ShowAllSubtotals | Displays all subtotals in a pivot table. The method’s topOfGroup parameter specifies the subtotal location for the outer row fields in compact or outline form. |
PivotLayout.HideAllSubtotals | Hides all subtotals in a pivot table. |
The following code example displays all subtotals in a pivot table. Subtotals for the “Category” row field are shown at the bottom of each item in the field.
Worksheet worksheet = workbook.Worksheets["Report1"];
workbook.Worksheets.ActiveWorksheet = worksheet;
// Access the pivot table by its name in the collection.
PivotTable pivotTable = worksheet.PivotTables["PivotTable1"];
// Show all subtotals at the bottom of each group.
pivotTable.Layout.ShowAllSubtotals(false);
The image below shows the resulting report.
Modify Subtotals for a PivotTable Field
The table below describes properties and methods you can use to specify and adjust subtotals for a specific row or column field in a report.
Member | Description |
---|---|
PivotField.SetSubtotalAutomatic | Displays automatic subtotals for a given field. |
PivotField.SetSubtotal | Allows you to change the default summary calculation or to show multiple subtotals for a given field. To remove subtotals for a field, pass the PivotSubtotalFunctions.None value to the method as a parameter. |
PivotSubtotalFunctions | Specifies summary functions used to calculate subtotals for a PivotTable field. |
PivotFieldLayout.SubtotalOnTop | Specifies the subtotal location for an outer row field shown in outline or compact form. You can display subtotals at the top or bottom of the field’s items. |
PivotField.SubtotalCaption | Specifies the text to be displayed in the field’s subtotal row or column heading. |
The following example demonstrates how to use multiple functions to subtotal the “Category” row field. To do this, combine the required PivotSubtotalFunctions enumeration values with a bitwise OR operator.
Note
You cannot change the subtotal function for a field containing a calculated item. In this case, a System.InvalidOperationException exception will be thrown.
Worksheet worksheet = workbook.Worksheets["Report1"];
workbook.Worksheets.ActiveWorksheet = worksheet;
// Access the pivot table by its name in the collection.
PivotTable pivotTable = worksheet.PivotTables["PivotTable1"];
// Access the pivot field by its name in the collection.
PivotField field = pivotTable.Fields["Category"];
// Display multiple subtotals for the field.
field.SetSubtotal(PivotSubtotalFunctions.Sum | PivotSubtotalFunctions.Average);
The image below shows the resulting report.