Home › Practice Tools › Chart Builder (Tableau-style)
๐Ÿ“ˆ
Data Viz

Chart Builder (Tableau-style)

Paste your own data and build bar, line or pie charts right in the browser. Save and share your chart.
Ideal for: Anyone practicing choosing the right chart type for a dataset before learning a full BI tool.

What you'll practice

Start practicing

Chart Builder (Tableau-style) is part of Practice Tools. Sign in or create an account, then subscribe for โ‚ฆ4,000/month to unlock it.

๐Ÿ“‹ Lab Instructions

Step-by-step exercises for Chart Builder (Tableau-style) - read them here, then practice live in the tool above.

Beginner

Last updated: August 22, 2026
Tableau Public โ€” Beginner Lab Instructions | CRMNuggets
Practice Tools & Labs โ€บ Tableau Public โ€บ Beginner
๐ŸŸข Beginner

Tableau Public โ€” Beginner Track

A full walkthrough of installing Tableau Public, connecting your first dataset, understanding the interface, and building your first bar chart, line chart, and simple dashboard.

No prior Tableau experience required Windows or macOS Free Tableau Public account 45โ€“60 min lab

1. What Tableau Public actually is

Tableau Public is a free version of Tableau's data visualization software. It works the same way the paid Tableau Desktop product does for building charts and dashboards, with two differences that matter: every workbook you save is published publicly to Tableau Public's gallery (there's no private/local save), and it can't connect to internal databases behind a company firewall โ€” only flat files (Excel, CSV, text) and a limited set of public/cloud data sources. That trade-off is exactly why it's a good free lab environment: you get the real Tableau interface and the real drag-and-drop visual-building workflow with zero cost and zero install friction beyond the desktop app itself.

The beginner track gets you from "never opened Tableau" to "can take a spreadsheet and turn it into a clean chart and a two-visualization dashboard" without assuming any prior data-viz background.

2. Environment setup

  1. Create a free account at public.tableau.com โ€” this is required both to download the desktop app and to publish any workbook you build.
  2. Download and install Tableau Public Desktop from the same site. It's a full desktop application, not a browser tool โ€” installation takes a few minutes on either Windows or macOS.
  3. Grab a starter dataset. Tableau Public ships with sample data (look for "Sample - Superstore" in the connection pane on first launch) โ€” use that for this track rather than hunting for your own dataset, so you're learning the interface, not fighting messy data.
  4. Open the app and connect to Sample - Superstore under "Saved Data Sources" or via Connect โ†’ To a File โ†’ Microsoft Excel if it's not pre-loaded.

3. The Tableau interface, in plain terms

Everything in Tableau revolves around dragging fields from a list on the left onto "shelves" that control what a chart shows. Learn these five areas before building anything:

AreaWhat it does
Data pane (left sidebar)Every column from your connected data, split into Dimensions (categories โ€” text, dates) and Measures (numbers you can aggregate, like Sales or Profit)
Columns / Rows shelvesDrag fields here to define the X and Y axes of your chart
Marks cardControls how each data point is drawn โ€” as a bar, line, dot, etc. โ€” and lets you set Color, Size, Label, and Detail by dragging fields onto it
Show Me panelA chart-type picker that highlights which chart types are valid given the fields you've currently selected
Sheet tabs (bottom)Each sheet is one chart. Dashboards combine multiple sheets into one view.
The single most important habit in Tableau: Dimensions are blue, Measures are green. Once you internalize that color-coding, you'll immediately know what kind of field you're looking at anywhere in the interface.

4. Building your first chart

  1. Double-click Category in the Data pane (a Dimension) โ€” Tableau automatically adds it to Columns and switches to a bar-chart-friendly layout.
  2. Double-click Sales (a Measure) โ€” a bar chart appears immediately, one bar per category, showing the sum of Sales.
  3. Drag Sub-Category onto the Rows shelf, after Category, to break each bar down further.
  4. Drag Region onto Color on the Marks card โ€” every bar now splits into colored segments by region.
  5. Rename the sheet tab at the bottom (double-click it) to something descriptive like "Sales by Category".

Building a second chart type: a line chart over time

  1. Open a new sheet (click the small sheet icon at the bottom, or right-click a tab โ†’ New Worksheet).
  2. Double-click Order Date โ€” Tableau adds it to Columns as a date hierarchy and automatically builds a line chart.
  3. Double-click Profit to add it as the Y-axis measure.
  4. Right-click the date field on Columns and try switching between Year, Quarter, and Month granularity to see how the line reshapes.

5. Filtering and sorting basics

  • Filter: drag any field (e.g. Region) onto the Filters shelf, then choose which values to include or exclude โ€” this restricts what the whole sheet displays.
  • Sort: click the small sort icon that appears on the axis when you hover over a bar chart, or right-click the axis and choose Sort โ†’ Descending by the measure.
  • Quick Filter (interactive): right-click a field already on the Filters shelf and choose "Show Filter" โ€” this adds a clickable filter widget to the sheet itself, which becomes important once you build dashboards.

6. Formatting for clarity

  • Use Label on the Marks card to show data values directly on bars โ€” helpful for small charts where hovering for a tooltip is friction.
  • Rename axis titles and legend titles by double-clicking directly on them in the view.
  • Use Format โ†’ Font and Format โ†’ Borders from the top menu for consistent, presentation-ready styling rather than leaving Tableau's defaults.

7. Lab: build a two-chart dashboard

Beginner capstone lab

~30 min ยท Uses Sample - Superstore
  1. Build the "Sales by Category" bar chart and the "Profit over Time" line chart from sections 4 above, each on its own sheet.
  2. Create a new Dashboard (bottom tab bar โ†’ the dashboard icon), then drag both sheets from the left panel onto the dashboard canvas.
  3. Add a Region filter to one sheet, then right-click it in the dashboard and set Use as Filter so clicking a bar filters the line chart too.
  4. Give the dashboard a title via the dashboard's title area, and resize the two sheets so neither is cut off.
  5. Publish it: Server โ†’ Tableau Public โ†’ Save to Tableau Public, sign in if prompted, and give the workbook a name.

8. Pre-attempt checklist

  • I know the difference between a Dimension (blue) and a Measure (green)
  • I can build a bar chart and a line chart from scratch without following steps
  • I can add a field to Color, Size, or Label on the Marks card
  • I can add a filter and make it interactive with "Show Filter"
  • I've published at least one workbook to Tableau Public

9. What to do after this lab

Compare your published dashboard against a few highly-viewed vizzes in the Tableau Public gallery (search "Superstore" โ€” thousands of people have built on this same sample dataset, so it's a fair comparison). Note what makes the well-designed ones easier to read: consistent color use, clear titles, and restrained use of chart types. Once bar/line charts, filtering, and basic dashboards feel automatic, move to the Intermediate track, which covers calculated fields, table calculations, and multi-source joins.

โ† Back to all practice tools & labs

Intermediate

Last updated: August 22, 2026
Tableau Public โ€” Intermediate Lab Instructions | CRMNuggets
Practice Tools & Labs โ€บ Tableau Public โ€บ Intermediate
๐ŸŸ  Intermediate

Tableau Public โ€” Intermediate Track

Where drag-and-drop stops being enough. This guide covers calculated fields, table calculations, joining and blending multiple sources, parameters, and building a genuinely interactive dashboard.

Completed the Beginner track Comfortable with Shelves & Marks Tableau Public Desktop installed 60โ€“75 min lab

1. What changes at this level

Beginner charts use fields exactly as they exist in your source data. Intermediate work is about creating new fields Tableau doesn't have out of the box โ€” profit margin, a running total, a custom category grouping โ€” and about combining more than one data source into a single view. This is also where dashboards stop being "two charts side by side" and start being genuinely interactive, with actions that let a user click one chart to filter or highlight another.

2. Calculated fields

A calculated field is a new column you define with a formula, built from existing fields. Create one via Analysis โ†’ Create Calculated Field, or right-click empty space in the Data pane โ†’ Create Calculated Field.

// Basic arithmetic between two existing measures
[Profit] / [Sales]

// A conditional (IF) calculation โ€” bucket orders by size
IF [Sales] >= 1000 THEN "Large"
ELSEIF [Sales] >= 100 THEN "Medium"
ELSE "Small"
END

// String manipulation
LEFT([Customer Name], 1) + ". " + SPLIT([Customer Name], " ", -1)

// Date math
DATEDIFF('day', [Order Date], [Ship Date])
Once created, a calculated field behaves exactly like any other field โ€” it shows up in the Data pane (green if it returns a number, blue if it returns text/date/boolean) and can be dragged onto any shelf.

Common beginner-to-intermediate calculations worth practicing

  • Profit Ratio: SUM([Profit]) / SUM([Sales]) โ€” note the explicit SUM() here; without it, a calculation dividing raw row-level values instead of aggregates behaves differently once placed on a shelf.
  • Days to Ship: DATEDIFF('day', [Order Date], [Ship Date])
  • Custom grouping: an IF/ELSEIF chain bucketing a continuous measure into named tiers, as shown above.

3. Table calculations

Table calculations are different from calculated fields โ€” they operate on the data after it's already been aggregated and arranged in the view, which makes them the right tool for running totals, rank, and percent-of-total. Right-click any measure already on a shelf and choose Quick Table Calculation, or build a custom one via Analysis โ†’ Create Calculated Field using functions like RUNNING_SUM, RANK, and WINDOW_AVG.

// Running total of Sales along the current table's partition
RUNNING_SUM(SUM([Sales]))

// Rank each Sub-Category by total Sales, highest = 1
RANK(SUM([Sales]))

// Percent of total โ€” each mark's share of the whole view
SUM([Sales]) / TOTAL(SUM([Sales]))
Table calculations depend on the fields currently in the view and their order โ€” the same formula can produce different results if you add another dimension to the view or change the "Compute Using" direction. Always check the little triangle/warning icon Tableau shows if a table calc's addressing looks ambiguous.

4. Joins vs. blends โ€” combining more than one data source

JoinBlend
Where it happensAt the data-source level, before any sheet is builtAt the sheet level, combining two separately-connected sources on the fly
When to use itSame source type, related tables (e.g. Orders + Returns from the same Excel file)Different source types entirely (e.g. an Excel file + a Google Sheet), or when a full join isn't possible
How to set it upOn the Data Source tab, drag a second table in and define the join clause (equivalent to SQL JOIN)Connect both sources normally, then on a sheet, use a common field (like Region) โ€” Tableau links them automatically if the field names/types match
  1. Practice a join first: connect Sample - Superstore's Orders and Returns tables, join them on Order ID, and build a chart showing Sales for only returned orders (drag Returned onto Filters).
  2. Then practice a blend: connect a second, unrelated data source (even a small CSV you make yourself with a Region column) and blend it against Superstore on Region to combine values from both in one view.

5. Parameters โ€” user-controlled inputs

A parameter is a single value a user of your dashboard can change, which then drives a calculated field, a filter, or a title. Create one via the dropdown in the Data pane โ†’ Create Parameter.

// A calculated field that swaps which measure is displayed,
// driven by a parameter named [Measure Selector]
CASE [Measure Selector]
    WHEN "Sales" THEN SUM([Sales])
    WHEN "Profit" THEN SUM([Profit])
    WHEN "Quantity" THEN SUM([Quantity])
END

Show the parameter control on your sheet (right-click the parameter in the Data pane โ†’ Show Parameter Control), and users can now switch what the chart displays without you building three separate charts.

6. Dashboard actions โ€” real interactivity

Beyond the "Use as Filter" quick-toggle from the beginner track, Dashboard โ†’ Actions gives you fine control over three interaction types:

  • Filter actions โ€” clicking a mark in one sheet filters another. Configure which fields are passed and what happens when the selection is cleared.
  • Highlight actions โ€” clicking a mark highlights matching marks elsewhere without filtering anything out.
  • Set actions / Parameter actions โ€” clicking a mark updates a Set or Parameter value, which is how you build things like a chart that changes based on which bar a user last clicked.

7. Lab: an interactive, calculated-field-driven dashboard

Intermediate capstone lab

~45 min ยท Builds on the Beginner capstone
  1. Create a Profit Ratio calculated field and a Days to Ship calculated field.
  2. Build a scatter plot: Profit Ratio on Columns, Days to Ship on Rows, one dot per Sub-Category, colored by Region.
  3. Add a Rank table calculation on a separate bar chart ranking Sub-Categories by total Sales.
  4. Create a Measure Selector parameter (Sales/Profit/Quantity) and wire it into a calculated field driving a third chart.
  5. Combine all three sheets on one dashboard, then add a filter action so clicking a Sub-Category bar filters the scatter plot.
  6. Publish the updated workbook to Tableau Public.

8. Pre-attempt checklist

  • I can write a calculated field using IF/ELSEIF logic and basic arithmetic
  • I understand the difference between a calculated field and a table calculation
  • I know when to join vs. blend two data sources
  • I've built and shown at least one parameter control
  • I've configured a filter action between two sheets on a dashboard
Once calculated fields, table calculations, and dashboard actions feel natural, move to the Expert track, which covers LOD (Level of Detail) expressions, advanced layout/performance techniques, and building for storytelling at a portfolio-ready standard.

โ† Back to all practice tools & labs

Expert

Last updated: August 22, 2026
Tableau Public โ€” Expert Lab Instructions | CRMNuggets
Practice Tools & Labs โ€บ Tableau Public โ€บ Expert
๐Ÿ”ด Expert

Tableau Public โ€” Expert Track

LOD expressions, advanced table calculations, performance optimization, and dashboard storytelling โ€” enough to build something worth putting in a portfolio.

Completed calculated fields & table calcs Comfortable with joins/blends Own dataset recommended 90+ min lab

1. What changes at this level

Intermediate work solves "how do I calculate this" problems. Expert work solves "how do I calculate this at exactly the right level of granularity, keep it fast on a large dataset, and present it so a stranger understands the point in five seconds" โ€” which is a design and performance problem as much as a formula problem. This track assumes you're comfortable with everything in the intermediate guide and are ready to work with a real dataset of your own choosing rather than Sample - Superstore.

2. Level of Detail (LOD) expressions

LOD expressions let you compute an aggregation at a granularity different from whatever's currently in the view โ€” something regular calculated fields and table calculations can't do cleanly. There are three types:

// FIXED โ€” always computes at the specified dimension(s), ignoring the view
{ FIXED [Customer Name] : SUM([Sales]) }
// โ†’ total sales per customer, no matter what else is on the sheet

// INCLUDE โ€” adds a dimension to the computation beyond what's in the view
{ INCLUDE [Product Name] : SUM([Sales]) }
// โ†’ useful inside a view that's aggregated higher than product level

// EXCLUDE โ€” removes a dimension from the computation
{ EXCLUDE [Sub-Category] : SUM([Sales]) }
// โ†’ e.g. total category sales, shown alongside sub-category rows

A worked example: customer segmentation with FIXED

// Step 1: total sales per customer, fixed regardless of view granularity
{ FIXED [Customer Name] : SUM([Sales]) }

// Step 2: bucket customers using that fixed value
IF { FIXED [Customer Name] : SUM([Sales]) } >= 5000 THEN "High Value"
ELSEIF { FIXED [Customer Name] : SUM([Sales]) } >= 1000 THEN "Mid Value"
ELSE "Low Value"
END
The classic mistake: using a regular table calculation when the question actually needs a FIXED LOD, or vice versa. Table calculations depend on what's in the view and its sort order; LOD expressions are computed at the data-source level before the view is built. If your number changes when you add an unrelated dimension to the sheet and it shouldn't, that's usually a sign you need FIXED instead of a table calc.

3. Advanced table calculations and addressing

At this level you should understand addressing and partitioning โ€” which dimensions a table calculation "moves across" versus which it's "fixed within." Configure this explicitly via Edit Table Calculation โ†’ Compute Using โ†’ Specific Dimensions, ordering the dimensions to control the calculation direction precisely, rather than relying on Tableau's automatic default.

// A moving average table calc, explicit window
WINDOW_AVG(SUM([Sales]), -2, 0)   // average of current + prior 2 periods

// Year-over-year growth using LOOKUP
(SUM([Sales]) - LOOKUP(SUM([Sales]), -1)) / ABS(LOOKUP(SUM([Sales]), -1))

4. Performance optimization

Public workbooks with slow-loading vizzes get abandoned by viewers. A few habits that matter once your dataset grows past a few thousand rows:

  • Use extracts, not live connections where possible โ€” Tableau Public publishes an extract (a compressed snapshot of the data) rather than querying a live source on every view, which is both required for most Public data sources and generally faster.
  • Hide unused fields in the Data pane (right-click โ†’ Hide) โ€” this isn't just cosmetic, it reduces what Tableau has to account for when building the extract and the view.
  • Avoid excessive quick filters on high-cardinality fields (e.g. a filter with thousands of unique Customer Names) โ€” use a search-enabled filter or a parameter-driven approach instead.
  • Check the Performance Recording tool (Help โ†’ Settings and Performance โ†’ Start Performance Recording) to see exactly which queries or rendering steps are slow before you guess at optimizations.

5. Dashboard layout and storytelling

Expert-level dashboards are built with intentional layout, not just sheets dropped onto a canvas:

  • Switch from the default "Tiled" layout to explicit Floating containers when you need precise overlap (a KPI number floating over a background chart, for example).
  • Use horizontal and vertical container objects to group related sheets so resizing the dashboard reflows predictably instead of breaking.
  • Build a Story (a separate object type from a dashboard, found in the same tab bar) when you need to walk a viewer through a sequence of views with narrative captions โ€” useful for portfolio pieces that need to explain themselves without you standing next to them.
  • Set an explicit fixed-size dashboard (rather than "Automatic") when you know your target device, so text and marks don't rescale unpredictably.

6. Working with your own dataset

This track assumes you bring a real dataset rather than continuing with Sample - Superstore โ€” public data from sources like data.gov, Kaggle, or a national statistics office works well. Before building anything:

  1. Open the data source in Tableau and check every field's assigned data type (right-click a field header โ†’ Change Data Type) โ€” misdetected dates or numbers-stored-as-text will quietly break calculations downstream.
  2. Identify the actual grain of one row (one transaction? one day? one customer?) โ€” this determines which LOD expressions you'll need and is the single most common source of double-counting bugs in dashboards built by people at this level.
  3. Sketch the story you want the dashboard to tell before opening Show Me โ€” expert vizzes are built backward from a question, not forward from whatever chart type looks good first.

7. Lab: a portfolio-ready, LOD-driven dashboard

Expert capstone lab

90+ min ยท Uses your own dataset
  1. Pick a public dataset with at least a few thousand rows and a clear analytical question worth answering.
  2. Build at least one FIXED LOD expression that answers a question a plain aggregation couldn't (e.g. per-customer lifetime value shown alongside per-order detail).
  3. Build at least one table calculation using explicit Compute Using addressing (not the default).
  4. Assemble a dashboard using container objects (not just freely placed sheets), with a floating KPI element.
  5. Run a Performance Recording, identify the single slowest step, and fix it.
  6. Publish to Tableau Public with a clear title and a one-paragraph description explaining the question the viz answers.

8. Pre-attempt checklist

  • I can explain the difference between FIXED, INCLUDE, and EXCLUDE LOD expressions
  • I can set explicit Compute Using addressing on a table calculation rather than relying on the default
  • I know how to identify the grain of a dataset before building anything
  • I've used the Performance Recording tool at least once
  • I've built a dashboard using container objects and at least one floating element
This is the last of the three standard tracks. From here, the natural next step is building a small portfolio of 3โ€“5 published Tableau Public vizzes using different real-world datasets โ€” that portfolio, not a certificate, is what most data-viz hiring processes actually look at.

โ† Back to all practice tools & labs