How to: Create a Calculated Item
- 6 minutes to read
If the predefined aggregation functions or Show Values As calculation options do not meet your requirements, you can create your own formulas to calculate values in a PivotTable report by inserting calculated fields and calculated items. A calculated item is a custom item in a PivotTable field whose value is produced based on values of other items in the same field.
All calculated items added to a PivotTable field are stored in the PivotCalculatedItemCollection collection, which can be accessed using the PivotField.CalculatedItems property. Use the collection’s methods to create, modify or remove calculated items.
Calculated Item Limitations
Before inserting a calculated item, take into account the following resrictions.
- You cannot add a calculated item to a page field. Also, you cannot move a row or column field containing calculated items to the page area of the PivotTable report.
- You cannot add a calculated item to a grouped field. Ungroup the field before inserting the calculated item.
- You cannot add multiple copies of a field containing calculated items to the data area.
- You cannot add a calculated item to a PivotTable report that uses the PivotDataConsolidationFunction.Average, PivotDataConsolidationFunction.StdDev, PivotDataConsolidationFunction.StdDevp, PivotDataConsolidationFunction.Var, or PivotDataConsolidationFunction.Varp aggregation function in the data area.
Create a Calculated Item
To create a calculated item, use the PivotCalculatedItemCollection.Add method. The first parameter of this method allows you specify a formula for the calculated item.
A formula string should conform to the common syntax rules and contain only supported elements.
In the formula, you can use constants and refer to other items in the same field where the calculated item resides. To create an item reference, use one of the approaches listed in the table below. All examples in the table refer to the pivot table shown later in this section.
Refere By
Description
Example
Item Name
Refer to an item by its name in the PivotTable field (PivotItem.Caption).
When creating a reference, you can enclose the item’s name in apostrophes or omit them.
The following example demonstrates how to sum up the first three items in the “State” field:
=Arizona+California+Colorado
…or…
='Arizona'+'California'+'Colorado'
Item Position
Refer to an item by its position in the PivotTable as currently sorted and displayed.
Hidden items are ignored.
The following example demonstrates how to sum up the first three items in the “State” field:
=State[1]+State[2]+State[3]
Item Relative Position
Refer to an item by its position relative to the calculated item containing the formula.
Positive numbers refer to items below or to the right of the calculated item.
Negative numbers refer to items above or to the left of the calculated item.
If the specified position is before the first item or after the last item in the field, the #REF! error is displayed.
The following example demonstrates how to sum up the first three items in the “State” field relative to the “West Total” calculated item:
=State[-6]+State[-5]+State[-4]
- You cannot create formulas that use a cell reference, defined name, circular references and arrays.
- You cannot use worksheet functions that require cell references or defined names as arguments.
- The formula cannot refer to the PivotTable’s subtotals, totals and Grand Total value.
The following code demonstrates how to create two calculated items to calculate total sales for each region.
Dim worksheet As Worksheet = workbook.Worksheets("Report10")
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("State")
' Add calculated items to the "State" field.
field.CalculatedItems.Add("=Arizona+California+Colorado", "West Total")
field.CalculatedItems.Add("=Illinois+Kansas+Wisconsin", "Midwest Total")
The resulting PivotTable report is shown in the image below.
Modify a Calculated Item
To change a formula for a calculated item, get access to the required item by its index in the PivotCalculatedItemCollection collection and then assign a new formula to the item’s PivotItem.Formula property. To rename a calculated item, use the PivotItem.Caption property.
Dim worksheet As Worksheet = workbook.Worksheets("Report7")
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("Customer")
' Add a calculated item to the "Customer" field.
Dim item As PivotItem = field.CalculatedItems.Add("='Big Foods'*110%", "Big Foods Sales Plan")
'Change the formula for the calculated item.
item.Formula = "='Big Foods'*115%"
Remove a Calculated Item
To remove a calculated item from the field, use the PivotCalculatedItemCollection.Remove or PivotCalculatedItemCollection.RemoveAt method. To remove all calculated items from the collection at once, use the PivotCalculatedItemCollection.Clear method.
Dim worksheet As Worksheet = workbook.Worksheets("Report7")
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("Customer")
' Add a calculated item to the "Customer" field.
field.CalculatedItems.Add("='Big Foods'*110%", "Big Foods Sales Plan")
'Remove the calculated item by its index from the collection.
field.CalculatedItems.RemoveAt(0)