The Matrix component renders a cross-tabulated (pivot) table where rows represent one dimension, columns represent a second dimension, and each cell shows an aggregated value at their intersection. Use a matrix when the audience needs to compare a measure across two simultaneous groupings β such as activity count by discipline and month, cost by package and contractor, or resource usage by role and work area.

Data bindingβ
| Property | Description |
|---|
| Section | The data section that provides the rows. |
| Row group | The dimension shown down the left side. Supports up to 3 nested row levels. |
| Column group | The dimension shown across the top. One level of column grouping is standard; two levels are supported for nested column headers. |
| Value field | The numeric measure to aggregate for each rowβcolumn intersection. Multiple value fields create multiple rows of values per row group. |
| Aggregation | Sum, Average, Count, Count Distinct, Min, Max, First, Last, or Custom expression. |
Row grouping (stepped layout)β
When more than one row group field is configured, the matrix can be displayed in:
| Mode | Description |
|---|
| Stepped layout | Each nested level is indented within the parent level column. All row labels share a single column. |
| Separate columns | Each nested level gets its own dedicated column. Takes more horizontal space but keeps levels visually distinct. |
Subtotals and grand totalsβ
Row subtotalsβ
- Enable a subtotal row at the bottom of each row group band.
- Configure subtotal position: above group or below group.
- Set the subtotal label text independently for each level.
Column subtotalsβ
- Enable a subtotal column at the right of each column group.
- Useful when column groups represent time periods: a cumulative or total column at the end of each quarter.
Grand totalsβ
- Row grand total: A final row at the bottom aggregating all rows.
- Column grand total: A final column at the right aggregating all columns.
- Each grand total uses the same aggregation as the body cells, unless overridden.
Aggregation optionsβ
| Aggregation | Description |
|---|
| Sum | Total all values in the cell group. |
| Average | Mean value. |
| Count | Count of rows in the cell group. |
| Count distinct | Count of unique values. |
| Min | Minimum value. |
| Max | Maximum value. |
| First | First value in sort order. |
| Last | Last value in sort order. |
| Custom expression | Enter a DAX-style or formula expression combining fields. |
Matrix cells support the same conditional formatting rules as table cells:
- Cell background color β threshold-based fill.
- Font color and weight β text styling based on value rules.
- Icon sets β RAG traffic light or arrow icons per cell.
- Color scales β gradient fill across the cell range for heatmap-style matrices.
Color scales are particularly effective in matrices: set a 3-color gradient (e.g., green β amber β red) across the entire value range to instantly communicate relative performance across all rowβcolumn intersections.
Layout and display optionsβ
| Option | Description |
|---|
| Column header orientation | Horizontal (default) or rotated 45Β°/90Β° to save space on date or code columns. |
| Frozen row headers | Row labels stay fixed while columns scroll in interactive mode. |
| Empty cell value | What to show for intersections with no data: blank, zero, or a custom string (e.g., "β"). |
| Repeat row headers on page break | Row labels repeat at the start of each PDF page. |
| Alternating row colors | Subtle background alternation for readability. |
When to use a matrix vs. a tableβ
| Use matrix when⦠| Use table when⦠|
|---|
| You need to compare values across two dimensions simultaneously. | You need row-level records with many fields per record. |
| The column dimension is dynamic (e.g., months in a period). | Columns are fixed and known in advance. |
| You want a heatmap or color scale across all cells. | You need conditional formatting on specific columns. |