Skip to content

Filtering and Sorting Tables

The Table component supports built-in filtering and sorting of its columns. Filtering and sorting are configured in two places - a master toggle on the table itself, and individual toggles per column - and both only work if the underlying column instructions are set up correctly.

1. Enable Filtering and Sorting on the Table

Select the table's root (the grid icon in the top-left corner of the table) to bring up the table's own properties. Under the Table section, set Enable Filtering to Yes. This single table-level toggle enables both filtering and sorting for the table - there's no separate table-level toggle for sorting.

Enable Filtering at the table level

INFO

The per-column Enable Filtering / Enable Sorting toggles (below) are visible and editable regardless of this setting, but neither does anything until this table-level toggle is enabled.

2. Enable Filtering and Sorting per Column

Select the top-right corner triangle of a column's header cell to bring up that column's properties. Under the Table section you'll find:

  • Enable Filtering - turns on the filter control for this column
  • Enable Sorting - turns on click-to-sort for this column
  • Filter Type - how the column's values should be interpreted for filtering: string, number, or date

Enable Filtering and Sorting at the column level

Filter Type options: string, number, date

INFO

Filter Type also governs how the column sorts, not just how it filters. A string type sorts lexicographically (1, 10, 11, 12, 2, ...), while number sorts numerically (1, 2, 10, 11, 12, ...). If a numeric column is sorting oddly, check that its Filter Type is set to number rather than string.

3. One Dimension per Column

Filtering and sorting only work correctly when a column is generated from a single dimension. In the column's Column Instructions set editor, the instruction should contain only one dimension entry:

A Column Instructions set with a single dimension

TIP

Multiple elements within that one dimension are fine - each element loops out into its own actual column, and each of those columns is individually filterable/sortable.

What breaks filtering is stacking a second dimension into the same Column Instructions entry.

Filtering and Sorting Read from a Direct Cube Reference

Filtering and sorting both read their value from a Text component's Text property, and that property needs to be a direct LINK to a cube and data - e.g. LINK("Commentary", []). This can be set up via the Insert Data Text right-click helper, but what actually matters is the LINK() formula in the Text property, not the helper itself. If the Text property instead holds a formula, concatenation, or other derived value rather than a direct LINK() to a cube, there's nothing for filtering/sorting to read.

Workaround: filtering on a hidden value

If the value you actually want displayed on the card isn't a direct LINK() - for example, an Input component the user interacts with, rather than a Text component - add a second, separate Text component into the same cell whose Text property is a direct LINK() to that cube's data. Then attach a hide Custom Style (e.g. display: none) to that Text component so it's not visually shown, while it still supplies the value filtering/sorting reads from.

In the example below, the visible content of the cell is an Input component. Alongside it sits a hidden Text component (named descriptively, e.g. "Text - link to filtering", so it's easy to identify later) whose Text property holds LINK("Commentary", []), with its Custom Style set to hide:

An Input component displayed on the card, alongside a hidden Text component linked to a cube purely to feed filtering

See Card Styles for how to build and attach a style like this.