Datasets that load in the background
Creating a dataset does not block the app any more. The dataset appears in the Datasets panel straight away and fills in as its columns become ready — and until it is ready, nothing can bind to it. That last part is deliberate: a chart bound to a half-finished dataset would show a partial answer and look correct.
This page covers what you see while that happens, and what to do about the limits.
What you see
| What the panel shows | What it means | What to do |
|---|---|---|
| A spinner beside the dataset name, row count and columns greyed | Still loading | Nothing. It is usually a moment. |
| Loading… (3/5 fields) | Columns are ready one by one; the count tells you how far along | Nothing |
| Row count and column types filled in | Ready | Bind it, chart it, continue |
| A red error marker on the dataset | One or more columns could not be computed | Open it to see which column failed and why — usually the source range or a formula inside it |
The same rule applies to the agents: when you ask one to create a dataset and chart it, it waits for the dataset to finish loading before binding. You do not have to time anything yourself. If a binding attempt is made too early, it is refused with an explanation rather than producing an empty chart.
Why this exists: a dataset can wrap a large or derived range. Building it lazily keeps the interface responsive — you can keep working in the spreadsheet while the dataset fills in, instead of staring at a frozen window.
Size limits
A dataset holds up to 2,000 records of up to 15 fields. Select a bigger range and the app refuses at creation time and tells you what happened, rather than quietly handing you a truncated dataset.
That ceiling is a design choice, not an engine limitation. A chart fed 2,000 aggregated points renders instantly and reads clearly; the same chart fed 500,000 raw rows is slow for you and unreadable for your audience.
So when you hit the limit, aggregate rather than trim:
- Summarise in the spreadsheet —
SUMIF/SUMIFS, a pivot-style summary, or a formula that groups by the category you actually want to chart. - Bind the summary. Keep the raw rows in the Dataspace as the source of truth; they are still there and still queryable.
- If you genuinely need to explore hundreds of thousands of rows, do the heavy shaping before import and bring in the result.
Placing datasets without collisions
Every dataset writes its data into an area of the Dataspace, and two things cannot share one area. The app checks the target before it commits, and refuses when the range:
- is not empty — values or formulas are already there,
- overlaps another dataset's area, or
- sits where an array formula spills its results.
When you create a dataset by dragging a selection, you pick the starting cell, and a clear message names the range that got in the way. When an agent places a dataset, it looks for a clear area first for the same reason. This is also why dataset areas and slice areas are best kept in their own part of the sheet, away from the formulas you write by hand.
Good habits
- Name your datasets. After a few of them,
SalesByRegionbeatsDataset 7— names are what the agents quote back to you, too. - Aggregate before you bind. The limit is a nudge in that direction; a chart does not need raw transaction granularity.
- Let a load finish before the next step. If you drive the app by hand, give the dataset a second; if you drive it by conversation, the agent handles it.
Where to go next
- Datasets — creating and managing datasets
- Data Slice — the widget-owned output areas that selection writes to
- Data Binding — how widgets consume a dataset