4. Creating your first PivotTable from CAE results

With a clean, well-structured nodal stress dataset in hand, the next step is to convert that flat table into a PivotTable that answers a specific engineering question. This chapter walks through the complete first-build workflow: choosing the right fields, understanding what each of the four PivotTable areas does, and arranging a layout that summarizes nodal stresses by part, load case, and location. The goal is not merely to produce a table, but to produce a table whose numbers you can defend in a design review.

Starting Point: The Flat Nodal Stress Table

Assume the dataset exported from the solver contains one row per node per load case, with the following columns: NodeID, PartName, LoadCase, X, Y, Z, vonMises_MPa, MaxPrincipal_MPa, and MinPrincipal_MPa. A typical extract might look like this:

NodeID  PartName   LoadCase   X       Y       Z      vonMises_MPa  MaxPrincipal_MPa  MinPrincipal_MPa
10241   Bracket_A  LC1_Brake 12.50   0.00   45.20   182.4         96.1              -41.7
10242   Bracket_A  LC1_Brake 18.75   0.00   45.20   201.7         110.3             -52.9
10241   Bracket_A  LC2_Corner 12.50  0.00   45.20   244.9         131.8             -60.2
...

Before inserting the PivotTable, confirm three things: the header row is a single row with no merged cells, every column has a unique name, and there are no blank rows inside the data range. If the export contains a units row or a title row above the headers, delete it first — PivotTables treat the first row of the source range as field names, and a stray title row will produce fields named "Column1", "Column2", and so on.

Inserting the PivotTable and Reading the Four Areas

Select any cell inside the data range and choose Insert → PivotTable. Excel proposes the full contiguous range and a new worksheet. Accept both, then confirm the PivotTable Fields pane appears on the right. That pane exposes four drop zones, and understanding their distinct roles is the core skill of this chapter:

  • Rows — defines the vertical grouping hierarchy. Each unique combination of row-field values becomes one row in the output. For nodal stress work, PartName and LoadCase are natural row fields.
  • Columns — defines horizontal grouping. Use sparingly; a column field with many unique values (such as NodeID) will explode the table width.
  • Values — holds the numeric fields to be aggregated. The default aggregation for numeric fields is Sum, which is almost always wrong for stress. You will change it to Max, Average, or Count depending on the question.
  • Filters — applies a page-level restriction to the whole PivotTable, such as showing only LC1_Brake or only nodes above a stress threshold.
Critical default to fix immediately: when you drag vonMises_MPa into Values, Excel sums it. A summed nodal stress has no physical meaning. Right-click the value field, choose Value Field Settings, and switch to Max for peak-stress screening or Average for trend comparison. Always verify the aggregation label in the column header — it will read "Max of vonMises_MPa" once corrected.

A First Layout for Peak Nodal Stress

A defensible first layout for screening is: PartName in Rows, LoadCase in Columns, and vonMises_MPa in Values with aggregation set to Max. This produces a compact matrix where each cell is the highest von Mises stress found anywhere in that part under that load case — exactly the number a stress engineer checks against yield.

To make the result readable, apply these formatting steps in order: set the value field number format to one decimal place, rename the value header from "Max of vonMises_MPa" to "Peak vonMises (MPa)" via Value Field Settings → Custom Name, and enable Design → Grand Totals → On for Rows and Columns. The grand total row then reports the global peak across all parts for each load case, which is a useful cross-check against the solver's own global maximum report.

Adding Location Context Without Breaking the Layout

Part-level peaks tell you where in the assembly the problem is, but not which node. Adding NodeID under PartName in the Rows area creates a nested hierarchy: each part expands to its nodes, and the Max aggregation at node level equals the raw nodal value. This is useful for drill-down but produces a very long table. A practical compromise is to keep NodeID out of the default layout and instead use it only when a part-level peak looks suspicious — expand that part, sort the node values descending, and read off the top few nodes. Record those NodeIDs; they become the coordinates you feed into the contour plot or the hand-calculation check.

The SVG below shows how the same source columns map into the four PivotTable areas and how the resulting matrix is assembled, including the aggregation decision that must be made for the stress field.

From Flat Nodal Table to PivotTable Layout Source Columns NodeID PartName LoadCase X, Y, Z vonMises_MPa Max/MinPrincipal_MPa ROWS PartName (optional: NodeID) COLUMNS LoadCase VALUES vonMises_MPa aggregation: MAX (not Sum!) FILTERS e.g. LoadCase = LC1 Resulting Matrix Part LC1 LC2 Bracket_A 244.9 201.7 Bracket_B 158.2 173.5 Housing 96.4 88.1 Grand Total 244.9 201.7 Check against yield: Bracket_A / LC1 peak = 244.9 MPa If yield = 250 MPa, margin = 2.0% → drill into NodeID for location → verify with contour plot Dashed arrow: NodeID is kept out of the default layout and used only for drill-down. Yellow fields are numeric stress results; blue fields are categorical identifiers.

Verifying the First PivotTable

A PivotTable is only trustworthy after it has been reconciled against an independent source. Three checks are worth performing on every first build:

  1. Grand-total cross-check. Compare the grand total of the Max aggregation against the solver's reported global maximum von Mises stress. They should match to the displayed precision. A mismatch usually means the source range excluded some rows, or a filter is silently active.
  2. Row-count sanity check. Add NodeID to Values with aggregation Count. The total should equal the number of unique nodes multiplied by the number of load cases. If it is lower, duplicate rows were collapsed or the range was truncated.
  3. Spot-check one cell. Pick the highest cell, expand its part to node level, and confirm the node value equals the raw value in the source table. This catches aggregation errors such as Sum being left in place.
Layout hygiene: resist the urge to add many fields at once. Build the PivotTable one field at a time, checking the row count and grand total after each addition. A layout that grows incrementally is far easier to debug than one assembled in a single drag session and then found to be wrong.

Common Failure Symptoms and Fixes

SymptomLikely CauseFix
Fields named "Column1", "Column2"Title or units row above headersDelete rows above the header, re-insert PivotTable
Stress values far too largeSum aggregation left as defaultValue Field Settings → Max or Average
Table much wider than expectedHigh-cardinality field in Columns (e.g. NodeID)Move field to Rows or remove it
Grand total lower than solver maximumSource range truncated or filter activeCheck Change Data Source and clear Filters area
New rows missing after re-exportPivotTable not refreshedRight-click → Refresh, or widen source to a table

Once the layout is verified, save the workbook with the PivotTable on its own sheet and the source data on a separate sheet. This separation keeps the analysis reproducible: when the solver exports a revised result set, you replace the source sheet, refresh, and the same layout regenerates the summary without rebuilding it. That reproducibility is the real deliverable of this chapter — a first PivotTable that is correct, explainable, and ready to be extended in later chapters with calculated fields, grouping, and multi-load-case comparisons.