The Tableau View Is Blank: Working Through the Causes in Order
The sheet is empty. Or it shows a column of nulls, or the same number repeated down every row. All three are the same class of problem: the marks Tableau was asked to draw have nothing behind them.
What you do: right click the sheet and choose View Data before changing anything. That single step splits the causes in two, because it tells you whether rows exist at all.
The short version. Find out whether there is no data or no drawing, before you start fixing.
Check in this order
1. The filter shelf
Read every pill, including the ones that are collapsed. Look for a date filter with a range that ended, a relative date filter such as last 30 days on data that stops in June, and a filter set on a different sheet with Apply to All Using This Data Source.
Also check hidden members with Analysis, Reveal Hidden Data. Hidden rows do not appear anywhere on the filter shelf, so nothing on screen says they exist.
2. The join
On the Data Source page, look at the join type and the clause. An inner join returns nothing when the keys do not overlap, and the two usual reasons are a type difference, such as a number against text, and trailing spaces. Change it to a left join temporarily: if rows appear with nulls on the right, you have confirmed a key problem rather than a data problem.
The equivalent problems in SQL are the same ones, and the diagnosis is in SQL JOINs and lookups that return not-found.
3. The relationship direction
Relationships, the noodle lines on the newer data model, keep tables separate and join them per view. Cardinality and referential integrity settings on a relationship tell Tableau what it may assume, and setting them wrongly can drop rows. If a view lost data after you changed those settings, put them back to Many and Some records.
Related tables also mean that a measure from one table can be filtered by a dimension from another only if the path between them supports it. A view combining two fact tables with no shared dimension is a common cause of a blank result. See relationships.
4. The aggregation and the grain
If every row shows the same number, a measure is being computed at a grain that does not vary with the view. Check for a FIXED expression: it ignores the view by design, and that is usually the answer. Check too whether Analysis, Aggregate Measures has been switched off, which puts every underlying row on the view and can produce a wall of marks or a very slow, unreadable sheet.
5. Nulls in the measure
A measure that is entirely null draws nothing. In the bottom right corner Tableau reports the number of null marks, and it is easy to miss. Nulls arrive from a failed type conversion, a division by zero, or a calculation where one input was null and no ZN was applied.
ZN(SUM([Sales])) // null becomes 0
IFNULL([Region], "Unknown") // label the nulls
IIF([Sales] = 0, NULL, [Profit]/[Sales]) // avoid dividing by zero
6. The data source itself
An extract that failed to refresh keeps the last successful data, or none. Check the extract date on the Data Source page. For a live connection, check the credentials and whether the underlying table was renamed. A custom SQL query that now returns nothing produces exactly this symptom and gives no hint of it in the view.
7. The mark type has nothing to draw
A line chart needs at least two points per line, so a single date renders as nothing visible. A map needs a recognised geographic role. A shape mark with no shape assigned draws an empty area. And a mark whose colour matches the background is invisible while being perfectly present.
The two-minute triage
| Symptom | Most likely | Check |
|---|---|---|
| Completely empty | Filter or inner join | Filter shelf, then View Data |
| Rows but all null | Calculation or type | The measure, and the null count |
| Every number identical | Grain, or a FIXED expression | Relationships and calculations |
| Fewer rows than expected | Inner join, or hidden members | Join type, Reveal Hidden Data |
| Was fine yesterday | Refresh or a schema change | Extract date, source columns |
How to apply this to your own work
- Make View Data your first move on any surprising sheet. It answers the only question that matters at that point.
- Test key columns for type and whitespace before building on a join.
- Prefer left joins while developing, so missing matches show up as nulls rather than as absence.
- Put a row-count sheet in every workbook, hidden or not, so an empty load is visible.
- Before reporting a zero, run the unfiltered count and say which of the two you have.
The one habit to keep
Treat blank as a result. It has a cause, and the cause is either in your data or in your build. Deciding which one takes thirty seconds and saves an hour of rebuilding a sheet that was correct.
When a view of yours came back empty, did you check the unfiltered count?
Tableau for Analysts is 110 pages on how Tableau actually thinks: dimensions against measures, relationships against joins, sets, and level of detail. Enough that you stop dragging fields until it looks right.
Tableau for Analysts, $19 →Relationships covers the join side, and the order of operations covers the filter side. The Tableau Kit has the drills.
Read Relationships →