Back to Devexpress

How to: Subtotal Fields in a Pivot Table

windowsforms-118120-controls-and-libraries-spreadsheet-examples-pivot-tables-how-to-subtotal-fields-in-a-pivot-table.md

latest6.0 KB
Original Source

How to: Subtotal Fields in a Pivot Table

  • Jun 11, 2023
  • 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.

MethodDescription
PivotLayout.ShowAllSubtotalsDisplays 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.HideAllSubtotalsHides 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.

csharp
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);
vb
Dim worksheet As Worksheet = workbook.Worksheets("Report1")
workbook.Worksheets.ActiveWorksheet = worksheet

' Access the pivot table by its name in the collection.
Dim pivotTable As 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.

MemberDescription
PivotField.SetSubtotalAutomaticDisplays automatic subtotals for a given field.
PivotField.SetSubtotalAllows 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.
PivotSubtotalFunctionsSpecifies summary functions used to calculate subtotals for a PivotTable field.
PivotFieldLayout.SubtotalOnTopSpecifies 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.SubtotalCaptionSpecifies 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.

View Example

csharp
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);
vb
Dim worksheet As Worksheet = workbook.Worksheets("Report1")
workbook.Worksheets.ActiveWorksheet = worksheet

' Access the pivot table by its name in the collection.
Dim pivotTable As PivotTable = worksheet.PivotTables("PivotTable1")
' Access the pivot field by its name in the collection.
Dim field As PivotField = pivotTable.Fields("Category")
' Display multiple subtotals for the field.  
field.SetSubtotal(PivotSubtotalFunctions.Sum Or PivotSubtotalFunctions.Average)

The image below shows the resulting report.