'Table Contents' settings Reference
Overview

Table Type
Setting: Table type (Percentage or Mean)
Default: Percentage
Percentage Tables
Used to analyze distributions, proportions, and response rates.
Available Displays:
- Values: Raw count or sum
- Vertical Percentage (%): Percentage within each column
- Horizontal Percentage (%): Percentage within each row
- Cell Percentage (%): Each cell's value divided by its own base (alternative to the vertical percentage)
- Indice: Index value (typically 100 = average)
Example: In a survey of 100 respondents:
Very Satisfied Satisfied Neutral
North 45 (60%) 30 (40%) 25 (33%)
South 35 (47%) 45 (60%) 45 (60%)
Total 80 (53%) 75 (50%) 70 (47%)
Mean Tables
Used to analyze averages and their statistical properties.
Available Displays:
- Mean Values: Average of the metric
- Count: Number of observations used in calculation
- Standard Deviation: Measure of variability
- Indice: Index based on mean values
Example: Average customer satisfaction score:
Display Options
Values
Label: Show values
Type: Toggle
Default: Off
When enabled, displays the raw count or sum in each cell.
Vertical Percentage
Label: Vertical percentage
Type: Toggle
Default: On
Shows each cell's value as a percentage of its column total. Useful for comparing across categories within groups.
Horizontal Percentage
Label: Horizontal percentage
Type: Toggle
Default: Off
Shows each cell's value as a percentage of its row total. Useful for comparing category distribution within segments.
Cell Percentage
Label: Cell percentage
Type: Toggle
Default: Off
Shows each cell's value divided by its own base, read directly from the Base Series at that crossing:
Cell Percentage = Value (row × column) / Base (row × column)
How it differs from the vertical percentage: the vertical percentage divides by the column total of the Base Series, which the visual builds by going through the rows. Cell Percentage only looks at the current crossing. Use it when your model already provides the right denominator for every cell, for example a base that varies from one row to the next (items asked to different sub-samples, a rating scale with a per-item base, a "value + its base" pair computed in DAX).
Example:
Value Base (per cell) Cell %
Brand A / North 120 300 40%
Brand B / North 90 150 60% ← asked only to half the sample
With the vertical percentage, both rows would be divided by the same column total.
Subtotals and totals: on a group row or column, value and base are both summed over the children, and the ratio of the two sums is shown. No extra setting is needed.
Mutually exclusive with Vertical Percentage: both use the same slot in the cell and act as the table's main percentage, so turning one on turns the other off automatically.
It replaces the vertical percentage everywhere downstream, not just in the display:
- Significance tests: the proportion tested is the Cell Percentage, and the sample size is the cell's own base instead of the column total. The same data can therefore give a different verdict depending on which percentage is selected. See Significance Testing.
- Sorting and ranking: Cell Percentage becomes available as a Column Property and a Ranking cell value.
- Tooltip: a separate Cell % line can be shown, see Tooltip.
- Cell rules (CrossTable): available as the
cellPctvariable, see Cell Rules. - CrossTable InCell Charts: Data Bars, Data Lines and the Gap Mode use it as the cell's quantity.
- Excel export: exported in place of the vertical percentage.
Cell Percentage only applies to percentage tables. It is left empty on mean tables.
Indice
Label: Show indice
Type: Toggle
Default: Off
Displays index values (typically with 100 as base). Useful for comparing relative performance against an average.
Calculation: (Cell Value / Average) × 100
Empty Datasets
When the incoming dataset contains no rows — most commonly when a page or report filter excludes everything — the table is never drawn (no empty "shell" made of a column header and a Base row at 0), and the Excel export button is hidden whatever the Show Excel Export Button setting says, since there would be nothing to export.
What the visual shows instead — a message you style yourself, or nothing at all — is controlled by the Global Threshold card, shared with CrossTable InCell Charts. That card also hides the table on a test of your own (a base below your publication threshold, say): see Global Threshold.
The toggle that used to live here only chose between a hard-coded "No data to display" message and a blank screen. It is gone, replaced by the Global Threshold card — its Empty Panel property has the opposite polarity, and the old value is not carried over. See Coming from Clear on Empty dataset.
Masking
When you filter data in Power BI, the underlying data is removed from the visual, which can affect calculations like totals and percentages. Masking allows you to hide specific data points while still including them in calculations, ensuring accurate results.
Mask Pattern
Label: Mask Pattern
Type: Text area
Default: Empty
Allows you to mask (hide) data from specific rows or columns using regular expressions.

User will input a pattern to match the rows/columns to be hidden. As an example, if you want to show ONLY Brand A and Brand B, you need to hide everything which is NOT Brand A or B.
Label_Brand != BrandA AND Label_Brand != BrandB
or better with the IN operator
NOT Label_Brand IN (BrandA, BrandB)
Therefore, if also you do not want the "No answer" to gender question while still using it in calculations:
(NOT Label_Brand IN (BrandA, BrandB)) OR Customer_Gender = "Not Stated"
etc ...
(NOT Label_Brand IN (BrandA, BrandB)) OR (Customer_Gender IN ("Not Stated", Other))
The pattern defines what to HIDE, this can be somewaht counter-intuitive at first.
Valid operators are:
- IN - for multiple values
- AND - for logical conjunction
- OR - for logical disjunction
- NOT - for negation
- = - Equals
- != - Not equals
- < - Less than
- > - Greater than
- LIKE - Pattern matching with % wildcard
if you want to filter for years greater than or equal to 2020, you need to use Year > 2019
The LIKE operator works with the % symbol, for example:
Customer_Gender LIKE %ale
Will hide M'ale' AND Fem'ale', and therefore show only "Not Stated" and "Other"
To show only Male AND Female, you need to invert the logic:
NOT Customer_Gender LIKE %ale
Will show ONLY Male and Female
If a category has no value in your data (Power BI shows it as blank), it appears as an empty label in the table — not the word "Null". A pattern like Label_Brand = Null will therefore never match it.
To target blank values specifically, compare against an empty string:
Label_Brand = ""
To exclude blanks while keeping everything else, use the greater-than operator:
Label_Brand > ""
Use Cases:
- Hide sensitive data in shared reports
- Remove small brands/categories from view
- Focus on top-performing segments
- Filter out "Other" or "Not answered" categories while still taking them into account for calculations
Series Configuration
For detailed series configuration options (Value Series, Base Series, Mean Series, etc.), see:
- Percentage Series Usage — For percentage tables
- Mean Series Usage — For mean tables
Best Practices
- Choose Table Type First: Percentage vs Mean fundamentally changes how data is displayed
- Limit Display Fields: Use 2-3 display options maximum for clarity
- Use Masking Sparingly: Masked data is still calculated but hidden
- Precision for Business: Use 0-1 decimal places for most business reporting
- Totals Context: Show totals to help readers understand the base size
Related Settings
- Totals Settings — Configure total rows and columns
- Series Configuration — Detailed data mapping
- Sorting Options — Arrange rows and columns
Troubleshooting
Q: Values appear as "0%" or very small numbers
A: Check that your base series is correctly mapped in percentage series settings.
Q: Indice values don't look right
A: Ensure you've configured both values and base series correctly.
Q: Mask pattern isn't working
A: Check your regular expression syntax. Use simple patterns like Total before complex regex.
For more help, see the Quick Start Guide.