Skip to main content
The table visualization presents query results in a structured grid. Unlike the raw results table in the query panel, the table visualization is designed for sharing — it supports pivots, conditional formatting, custom styling, and a per-cell menu for links, copy, and drill-down.

Showing and hiding columns

Right-click a column header in the table visualization to hide it. Hidden columns can be restored from the Fields section of the configuration panel. You can also hide columns from the column options menu (the three-dot menu on each column header).

Reordering columns

Drag a column header to reorder columns. Dimensions and measures can be interspersed freely when no pivot is active.

Sorting

Sorting is set on the query, not on the table — use the column header menus or the Sort button. See Sorting. Pivot columns are the exception: they can also be sorted from the table itself, as described under Pivots.

Pivots

Pivoting a dimension turns its unique values into columns, creating a cross-tab view. Drag a dimension to the Pivot columns drop zone in the Fields section to pivot it. Pivot behavior:
  • Pivot columns can be sorted by clicking the column header, including the totals column.
  • Pivot columns can also be sorted by row values — click a row number to sort by that row, including the totals row.
  • Pivoted columns can be hidden, but hiding is indexed to the specific value (e.g. hiding status: returned), not position.

Column field options

Configure individual columns in the Columns section of the Style tab (or via the dropdown arrow on a field in the Fields section): When a cell’s value is too long for its column and word wrap is off, the value is truncated with an ellipsis. Hover over a truncated cell to see its full value in a tooltip.

Column width

Each column’s width is set independently on its card in the Columns section of the Style tab, using the Flex / Fix pair and the number next to it. A column is in one of two modes:
  • Flex (the default) — the column shares the table’s available width with the other flexible columns, in proportion to its weight, entered next to the mode as ×1. A column with weight 2 is twice as wide as a column with weight 1. New columns start at weight 1, so by default all columns share the width equally and the table stretches to fill its tile.
  • Fix — the column is locked to an exact pixel width, entered as px, and no longer participates in the weight-based distribution. Fixed columns keep their width regardless of the tile size; if the fixed columns don’t fill the tile, the remaining space is left blank. Pixel widths start at 10 and step in tens.
You can mix the two: give a label column a fixed width and let the metric columns flex to share the rest.

Setting widths

  • In the panel — pick Flex or Fix for a column and enter its weight or pixel value. Switching to Fix reuses the column’s last fixed width if it had one, and otherwise starts from the width it’s currently drawn at.
  • By dragging — drag the border between two column headers on the table. The change is saved into the column’s current mode (a flexible column keeps flexing at its new relative size; a fixed column updates its pixel width).
  • Fit — the Fit button on a column’s card sizes it to its content and switches it to Fix at that width.
    Fit measures the rows currently rendered on screen. If a wider value is further down a long, scrolled table, fit again after scrolling to it.

Bulk controls

At the top of the Columns section, three buttons apply a width mode to every column at once:
  • Flex — converts every column to flexible, deriving each weight from its current width (so the layout doesn’t jump). Enabled only when at least one column is fixed.
  • Fix — freezes every column at its current rendered pixel width. Enabled only when at least one column is flexible.
  • Fit — sizes every column to its content and fixes it at that width, in a single action. Like the per-column Fit, it measures the rows currently rendered on screen.
Under a column pivot, a width set on a measure applies to every column generated for that measure.

Showing columns as bars or sparklines

By default, a column displays its value. A numeric column can also be drawn as an in-cell visualization — an inline bar or a sparkline — from the column’s card in the Columns section of the Style tab. Each card has a Value toggle and, next to it, a Bars / Sparkline pair:
  • Value shows the formatted number in the cell. It composes with a visualization rather than excluding it — a cell can show a bar and its value together.
  • Bars and Sparkline are mutually exclusive with each other: picking one replaces the other. Clicking the active one again clears it, returning the column to a plain value.
  • With no visualization active, Value is forced on and its toggle disabled — so a plain column always shows its value.
These controls appear only on numeric columns.

Inline bars

Display a numeric column as a proportional in-cell bar by selecting Bars on the column’s card. Each bar’s length reflects the value’s magnitude within the column’s range. When a column contains both positive and negative values, bars are drawn in both directions from a centered zero baseline — positive values to the right, negative to the left — using the positive and negative bar colors. Values outside the scale are clamped to a full or empty bar, but the displayed number is always the true value.

Sparklines

Display a numeric column as a sparkline — a mini trend chart in each cell that plots the measure across a time dimension. Select Sparkline on the column’s card in the Columns section of the Style tab. A sparkline needs a time dimension to use as its horizontal axis. When you switch a column to Sparkline and pick its horizontal axis time dimension, that dimension is removed from the table query (if it was there): the table shows one row per remaining dimension, correctly aggregated, while the sparkline plots the measure’s value across the time dimension. Values are always correct for any measure type, including counts of distinct values, averages, and custom measures. Removing the dimension is a one-way change — turning the sparkline back off doesn’t restore it to the query. Add it again yourself if you want it back.
The time dimensions on offer come from the semantic view the query is built on, not from the query itself — so Sparkline is disabled whenever that view has no time dimension, and equally for a query not built on a view at all, however many time dimensions the query selects.
Internally, sparklines are powered by additional queries grouped by time dimension and granularity: measures sharing the same dimension and granularity are fetched together, so a chart with several sparklines runs at most one extra query per distinct dimension and granularity combination.
A row needs at least two data points to draw a sparkline; cells with fewer fall back to the formatted value.
Choose a reasonable granularity for the data’s time span. An overly fine granularity (e.g. by the second over several years) makes the background queries return many rows and can compromise the chart’s performance.

Cell menu

Left-clicking a table cell opens a context menu with any links defined on the dimension — drill into another dashboard (dashboard:) or open an external URL (url:) — plus Copy value and, where they apply, Drill down options. Drill down works in two ways:
  • On a measure cell whose data model defines drill members, it opens the underlying rows behind that value.
  • On a time-dimension cell shown at a granularity, it opens a submenu of finer granularities. Picking one re-buckets the same measures to that granularity, scoped to the period you clicked — drilling 2024 to Quarter shows the four quarters of 2024. You can keep drilling, then close the view to return to the original table.
Because a week can straddle two months or quarters, Week is never a drill target from a coarser granularity — a week cell drills only to Day and finer.

Selecting and copying cells

You can copy a single cell or a rectangular block of cells straight out of the table — copied values paste cleanly into a spreadsheet or text editor.

Copy a single cell

Click the cell to select it, then press Cmd/Ctrl+C or choose Copy value from the cell menu. Either way copies that cell’s raw (unformatted) value.

Select and copy a range

  • Click and drag across the cells to sweep out a rectangle, or Shift+click a second cell to extend the selection from the first.
  • Press Cmd/Ctrl+C to copy the selected cells. When more than one cell is selected, the cell menu also offers Copy values and Copy values with headers — the latter prepends a row of column titles.
Copied cells use the raw (unformatted) values. A range is joined by tabs across columns and newlines across rows, so it lands in a spreadsheet as a matching grid; a single cell copies as just its value. The same single-cell and range selection works in the Results table on the query panel, not just the table visualization.

Style options

The Style tab controls the visual appearance of the table. It is organized into sections — Headers, Values, Totals, Columns, Borders, and Pagination — each with its own Reset button in the section header that appears once you’ve changed anything in that section.

Headers, Values, and Totals formatting

Each of these sections has a compact formatting toolbar that sets, for that part of the table:
  • Colors — text and background color (the paired color chip).
  • Text formatbold, italic, and underline toggles.
  • Alignment — left, center, or right.
  • Overflow — truncate or wrap long content.
When you don’t pick a color, the element uses the theme’s default, which adapts to light and dark mode automatically. Alignment is set independently in each of the three sections, and their defaults differ: headers align left, totals align right, and values follow the column’s data type — numbers right, everything else left. A column’s own alignment, set in the Columns section, overrides all three.
Because the values default follows the data type, the alignment control in the Values section shows left until you set it, even where numeric columns are drawn right-aligned. Choosing left there is still meaningful: it pins numeric columns to the left instead of letting them follow their data type.
The Values section also holds these table-wide row toggles, shown as icon buttons:
  • Row numbers — show or hide the row number column.
  • Hover row — highlight the row under the pointer.
  • Row banding — alternate the row background with a secondary color (its color chip sits next to the toggle).
The Totals section holds the Column totals and Row totals toggles (see Totals).

Borders

The Borders section of the Style tab controls which table borders are drawn. Five borders are configurable, each with its own toggle, color, and width (1–10 pixels): Each border is a row in the section: click the icon button to toggle the border on or off, and use the color swatch and width input next to it to style it. Color and width are only available while the border is on. When you don’t pick a color, the border uses the theme’s default border color, which adapts to light and dark mode automatically. Next to the first border’s width input is a link toggle that syncs all widths: while it’s on, editing that width applies the same value to every border, so the whole table shares one line weight. It turns on automatically when all borders already share a width, and off as soon as they differ (for example after applying the Accounting preset). Because every border has its own color and width, styles like a financial report — a thick line under the header, above the totals, and around the table, with thin lines between value rows — are a few clicks away. Or one: see presets below.

Border presets

Open the menu in the corner of the Borders section to apply a preset — a one-shot configuration of all five borders that you can tweak further afterwards:
  • Rows (default) — horizontal row lines with header and totals separators; the standard look.
  • Full grid — all borders on; a spreadsheet look.
  • Minimal — dark lines under the header and above the totals, nothing else.
  • Accounting — thin light row lines with a thick dark header separator, totals separator, and outer frame; a financial-statement look.
  • None — no borders at all.
Use Reset in the section header to clear all border settings.

Pagination

The Pagination section holds a single toggle, off unless you turn it on. With it off, the table renders every row in one scrollable grid; with it on, rows are split into pages of 50, with page controls below the table. The page size is fixed and can’t be changed. Totals are pinned to the bottom of the table rather than being part of the paged rows, so a totals row stays visible on every page.

Conditional formatting

The Formatting tab applies cell or row styling based on conditions you define. Configure:
  1. The field to evaluate
  2. The condition — an operator and, for most operators, a value to compare against (see Conditions)
  3. The styling to apply when the condition is met (background color, text color)
To make a background transparent, open the color picker and clear the hex value.

Conditions

The operators offered depend on the evaluated field’s data type. is null and is not null are available for every type and take no value. Text Numbers Dates Booleans

Which cells a rule styles

Each rule’s Format control sets how far its styling reaches:
  • Source column — only the column the rule evaluates. The default.
  • Entire row — every cell in a matching row.
  • Select columns — a chosen set of columns, picked from a checklist in the same popover.
Select columns starts with the rule’s own field checked. Clearing every column would leave a rule that styles nothing, so it falls back to Source column instead. Under a column pivot, a row spans several values of the same measure (one per pivot combination), so a row-spanning rule (Entire row or Select columns) styles each measure cell by its own combination’s value. Cells with no single value to test — row headers, row dimensions, and any rule whose source dimension has been pivoted into columns — are left unstyled.

Color scale

A color scale (heat map) tints each cell of a numeric column with a gradient based on where its value falls in the column’s range. It is a rule type in the Formatting tab, alongside conditional formatting — switch a rule between Conditional formatting and Color scale with the Type selector inside the rule. To add one quickly, open the menu next to Add rule and pick a color-scale preset:
  • Outstanding values — a two-color scale that highlights the highest values.
  • Divergent values — a three-color scale that distinguishes low, middle, and high values.
  • Traffic light gradient — a red–yellow–green three-color scale.
A color scale requires a numeric source column. For non-numeric columns (strings, dates, booleans), the Scale type is disabled — use conditional formatting instead. Configure the gradient with three stops, laid out top-to-bottom to mirror the column:
  • Start (low end) — anchored at the column Minimum by default, or a custom Number or Percentile.
  • Center (optional middle) — Disabled by default, which produces a two-color gradient. Enable it for a three-color gradient anchored at the Midpoint, Average, Median, or a custom Number / Percentile.
  • End (high end) — anchored at the column Maximum by default, or a custom Number or Percentile.
Each stop has its own color. The anchor determines which value in the column the stop’s color is pinned to:
  • Minimum / Maximum — the lowest / highest value in the column.
  • Midpoint — the halfway point of the range, i.e. (minimum + maximum) / 2. Independent of how the values are distributed.
  • Average — the mean of all values (sensitive to outliers).
  • Median — the middle value when sorted (robust to outliers).
  • Number — a fixed value you enter.
  • Percentile — a value at the given percentile (e.g. 90 = the 90th percentile).
For the computed anchors (Minimum, Maximum, Midpoint, Average, Median), the dropdown previews the resolved value from your data. Use Reverse color scale to swap the Start and End colors. Treat nulls as zero is on by default, coloring null/blank cells as zero; turn it off to leave them uncolored. The scale is normalized per column — each targeted column uses its own value range, taken from the column’s data cells only. With totals enabled, the row totals and subtotal columns are still colored by the scale of the measure they aggregate, but they don’t widen its range: a total past the column’s highest stop is clamped to that stop’s color. Cells in the column totals row are never colored by a scale, since totals rows don’t take formatting rules.

Totals

Enable column totals and row totals from the Totals section of the Style tab. Totals rows and columns are styled separately from body cells.

Subtotals

When the table is pivoted by two or more dimensions, you can also enable subtotals — a bold Total for ‹value› column appended after each pivot group’s columns, at every nesting level. Subtotals combine freely with column and row totals, work in workbooks and on dashboards, and — like the other totals — carry over from the results table when you switch the chart type to Table. See Subtotals for details and limitations.