> ## Documentation Index
> Fetch the complete documentation index at: https://cubed3-claude-gallant-ramanujan-an09zv.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Cube Cloud for Sheets

> Cube Cloud for Sheets is the native Google Sheets add-on for Cube Cloud.

<Note>
  Available on [Premium and above plans](https://cube.dev/pricing).
</Note>

After [configuring](#configuration), [installing](#installation), and
[authenticating](#authentication) this add-on, you will be able to [create
explorations via pivot table](#create-explorations-via-pivot-table) and work with
[explorations](#work-with-explorations).

<iframe width="100%" height="400" src="https://www.youtube.com/embed/qPp9hroqd4g" title="YouTube video" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen />

## Configuration

Cube Cloud for Sheets uses the SQL API internally. So, the SQL API has to be
[enabled][ref-sql-api-enabled] in the Cube Cloud deployment settings.

## Installation

You have to install Cube Cloud for Sheets into your Google Workspace organization.
To do so, navigate to its [page in the Google Workspace
Marketplace][link-marketplace-listing] and click **Install**:

<Frame>
  <img src="https://ucarecdn.com/79a183d2-5c18-4adb-93f8-886ec513920f/" />
</Frame>

To verify that the add-on is successfully installed, go to any Google Sheets
document, open the **Extensions** menu, and check that there is the
**Cube Cloud for Sheets** menu item:

<Frame>
  <img src="https://ucarecdn.com/90f3a9d0-abde-4eb4-9222-27e4ebc46c6c/" />
</Frame>

## Authentication

You need to authenticate Cube Cloud for Sheets to retrieve data from Cube Cloud.
To do so, open the sidebar by going to the **Extensions** menu and choosing
**Cube Cloud for Sheets → Open Sidebar**. Then, click **Sign in**.

<Frame>
  <img src="https://ucarecdn.com/d47c8faa-97ed-4ce1-ba0e-99b7add1ab61/" />
</Frame>

A modal window with an authentication prompt will appear. Choose the deployments
that you want to work with in Google Sheets and click **Authorize**.
Once you see the `Access Granted` message, close the modal window.

If you want to revoke the authentication, open the add-on menu and click
**Sign out**.

## Create explorations via pivot table

To create an exploration, open the add-on and click **Create exploration**.
Then, select a Cube Cloud deployment from the drop-down. Finally,
you can start building a query by selecting a view and its members in the UI that
looks and feels like [Playground][ref-playground].

<Info>
  Cube Cloud for Sheets works only with [views][ref-views], not cubes.
</Info>

If the view defines [`default_ui_filters`][ref-default-ui-filters], those
filters are pre-populated as soon as you select the view — the same way they
are in workbooks. They are a starting point, not enforcement: you can change
their values, switch operators, or remove them.

Click on members to add them to **Rows** and **Measures**, or drag a member from
the list straight onto **Rows**, **Columns**, or **Measures**. You can also drag
members between zones to rearrange them. Click on the funnel buttons to add
members to **Filters**. Click on **×** to remove members from a query.

<Frame>
  <img src="https://ucarecdn.com/acc8e133-f237-4aa7-a725-f32dd4a2ebdb/" />
</Frame>

Use **Order** and **Filters** panes below to sort and filter the
data in the exploration.

If you'd like to move the exploration to a new location, click on the desired top-left
cell and then confirm with the target button under **Result location**.

<Frame>
  <img src="https://ucarecdn.com/5a8d2b6a-b415-46ee-9e03-57ea5eeb693a/" />
</Frame>

With every change to your query, Cube Cloud for Sheets will update the exploration on
the sheet after a slight delay. If you'd like to minimize it, consider
implementing [pre-aggregations][ref-pre-aggs].

### Measure position and order

By default, measures nest under each value of the dimension they're paired
with — every measure for the first column value, then every measure for the
next. Open the **Display** tab to change **Measure position** to **Before
columns** to get the opposite layout: each measure spans every column value,
with all values of one measure together before moving to the next.

For example, with `Forecast Sales Units` and `Forecast Net Sales` on Measures
and a `season` dimension on Columns:

* **After columns** (default): `Q1: [Sales Units, Net Sales] | Q2: [Sales
  Units, Net Sales]`
* **Before columns**: `Sales Units: [Q1, Q2] | Net Sales: [Q1, Q2]`

The same choice applies when measures are placed on **Rows** instead (set
with **Measures on**, in the same tab) — there it's labeled **After rows** /
**Before rows**.

To change the order measures appear in within their group, drag them within
the **Measures** pane on the **Pivot** tab. Position and order are saved with
the exploration and survive **Refresh**.

When your exploration is ready, click **Save** to add it to your workspace. You
can then [work with the exploration](#work-with-explorations) from the add-on.

## Work with explorations

Opening the add-on shows the current spreadsheet's home: every exploration
placed in this spreadsheet, grouped by sheet, with each placement's range and
how long ago it last refreshed. A placement is tagged **Stale** when its
source exploration has been edited since that copy was written to the sheet.
Running an exploration keeps its progress even if you close the pane before
saving — the spreadsheet home lists it under **Unsaved**, and reopening it
resumes exactly where you left off. The pane can also hold more than one
exploration open at once, switchable from a picker at the top.

Click **Browse all explorations** to search by name across your whole
deployment, not just the current folder — results are grouped by type and
show each item's folder location, and selecting one navigates you straight to
it.

An exploration can be placed more than once — on different sheets or at
different anchors in the same spreadsheet, and in more than one document at
once (a Google Sheets spreadsheet and an Excel workbook simultaneously).
Hovering a row in this list shows every placement it has in the **current**
document under **Location** / **Locations**. Click **Refresh** to update all
of that exploration's placements in the current document at once; click its
title to open it and change the query, which applies to every placement.

A placement survives renaming the sheet it's on or the spreadsheet it's in —
it's tracked by the sheet's and spreadsheet's own stable ids, not by name. A
placement's anchor is a fixed cell reference, though, so it does **not**
survive rows or columns inserted above it: the visible data shifts down with
the insert, but the stored anchor doesn't move with it, so the next refresh
targets the wrong cell.

<Frame>
  <img src="https://ucarecdn.com/c8d490c6-80bf-44fe-9233-45121a7c4088/" />
</Frame>

If a placement's written cells come back empty — for example, someone deleted
them by hand — the spreadsheet home shows a **No data** tag next to it. Opening
the pane also checks whether the cells it wrote still hold what was last
written; if any have been typed over or cleared since, it shows a notice with
an option to jump straight to the changed cells, which clears the next time you
run the exploration. Neither check catches rows or columns inserted above the
block — that's the anchor limitation described above.

Use the row menu's **Detach** or **Delete** to stop working with an exploration
in this document. **Detach** removes it from this spreadsheet only — it stays
in your Cube Cloud workspace and in any other document it's placed in.
**Delete** removes it everywhere it's been placed. Both offer to clear the
written cells, which is checked by default.

If an exploration has filters applied, an admin can turn on **Show applied filters
in reports** (Settings → Spreadsheet Add-ins) to make the filter state
visible on the sheet itself. When enabled, a summary of active filters is
added above the table, and filtered columns are marked "(filtered)" in
their header, both when the exploration is inserted and after **Refresh**. Each
user can override this for themselves from the add-on's own **Settings**.

Saved explorations also appear in the Cube Cloud workspace. See
[Saving explorations][ref-explorations] for details.

## Add-on settings

Open **Settings** from the add-on's menu to set personal preferences: whether
selecting a sheet jumps the pane to its exploration and vice versa, whether an
exploration runs automatically, whether duplicate values in the result are
suppressed, and the per-user override of **Show applied filters in reports**
described above.

[link-google-sheets]: https://workspace.google.com/products/sheets/

[link-marketplace-listing]: https://workspace.google.com/u/0/marketplace/app/cube_cloud_for_sheets/641460343379

[ref-playground]: /docs/explore-analyze/playground

[ref-views]: /docs/data-modeling/views

[ref-pre-aggs]: /docs/pre-aggregations/using-pre-aggregations

[ref-default-ui-filters]: /reference/data-modeling/view#default_ui_filters

[ref-sql-api-enabled]: /reference/core-data-apis/sql-api#cube-cloud

[ref-explorations]: /docs/explore-analyze/explore#saving-explorations
