Tableau Interview Questions for 5 Years Experience
40 questions with answers for candidates with 5 years of experience — 1 easy, 26 medium, 13 hard.
What interviewers expect: 5 years experience
At five years, interviewers look for technical leadership: designing certified data sources, setting standards, reviewing others' work and managing stakeholders. Expect questions on Server permissions, governance, migration, embedding and handling large data volumes. Behavioural questions about mentoring, prioritisation and pushing back on incorrect requirements become as important as technical ones.
This set is weighted towards Filters, Parameters and Actions (9), Dashboards and Tableau Server (8), Charts and Visual Design (6), LOD Expressions (5).
Governance and standards Server and Cloud Mentoring Stakeholder management
Solved at this levelStart practicing
3 QUESTIONS FREESign up to unlock the full question bank and track your progress.Unlock every question and answer, then continue practising company-wise and package-wise.
Key functions are RUNNING_SUM, RUNNING_AVG, WINDOW_SUM, WINDOW_AVG, WINDOW_MAX, LOOKUP, PREVIOUS_VALUE, INDEX, FIRST, LAST, SIZE, RANK, RANK_DENSE, RANK_PERCENTILE and TOTAL. They operate on aggregates, so arguments must be aggregated, such as RUNNING_SUM(SUM([Sales])). WINDOW functions accept start and end offsets for moving calculations.
Since version 2020.1, parameters can refresh their list of values or current value from a field when the workbook opens. For example, a date parameter can default to the latest date in the data using a calculation like MAX([Order Date]), and a list can pull current region names. This removes manual maintenance when new values appear in data.
DATEPART returns an integer part of a date such as month number. DATENAME returns the name, such as March. DATETRUNC truncates to a level, giving a date such as the first of the month. DATEADD adds intervals, DATEDIFF computes the difference between two dates in a unit, MAKEDATE builds a date, and TODAY and NOW return the current date and time.
04
You need to show the percent of customers who ordered more than once. How do you do it?
Create Orders per Customer: {FIXED [Customer ID] : COUNTD([Order ID])}. Summing a row-level 1 or 0 flag would count order lines, not customers, so instead use COUNTD(IF [Orders per Customer] > 1 THEN [Customer ID] END) / COUNTD([Customer ID]). Format as percentage and break it down by region or segment to compare loyalty.
Create a pie on the first axis using a measure on Angle and a dimension on Color. Put two copies of MIN(0) on Rows, set the second to circle mark, make it smaller and white, and select Dual Axis with synchronised axes. Place a total label on the inner circle. Use donuts only for two to four segments; bar charts are usually clearer.
06
How do you build a bullet chart for actual versus target?
Select Sales and Target with a dimension such as Region, then choose bullet graph from Show Me. Tableau puts Sales as bars and Target as a reference line with distribution bands. If the roles are reversed, right-click the axis and choose Swap Reference Line Fields. Add colour for achieved versus missed using a calculation comparing SUM(Sales) with SUM(Target).
Put the KPI dimension on Rows and continuous MONTH(Order Date) with SUM(Sales) on a separate column, choose line marks, and set Independent Axis Ranges for each row via Edit Axis. Remove gridlines, axes, headers and borders, and highlight the last point using a calculation such as IF LAST() = 0 THEN SUM([Sales]) END as a dual axis circle.
08
Users say the dashboard takes 30 seconds to load on Server but is fast in Desktop. What do you check?
Compare data connection, since Server may use a live connection through a slower network or different credentials. Record performance on Server using the performance recording parameter. Check concurrent load, VizQL and cache settings, the number of quick filters and marks, and whether extracts are refreshing at the same time. Ask the Server admin for resource usage and background job schedules.
09
Write a calculation for year-to-date sales compared with last year to date.
Sort customers by sales descending on Columns. Running share of sales:
RUNNING_SUM(SUM([Sales])) / TOTAL(SUM([Sales]))
Running share of customers:
INDEX() / SIZE()
Use a dual axis with bars for sales and a line for running percent, and add a reference line at 0.8.
11
Tell me about a time you found a data quality issue before stakeholders did.
Situation: while refreshing a weekly revenue dashboard I noticed one region had dropped 60 percent overnight. Task: confirm whether it was real. Action: I checked row counts in the source, found a failed ETL load for two days, informed the data engineering team and added a warning banner. Result: the leadership meeting used corrected figures, and we added an automatic row-count check to the pipeline.
Extract, data source and context filters apply before FIXED, so they change FIXED results. Normal dimension filters apply after FIXED, so they do not affect it but do affect INCLUDE and EXCLUDE. Measure filters apply later still. Therefore, to make a region filter change a FIXED total, add it to context. Knowing this order prevents incorrect percent-of-total and cohort results.
13
You must ensure sales managers only see their own region on a shared dashboard. What approach do you take?
Implement row-level security rather than relying on filters users can change. Use a user mapping table with usernames and regions, relate it to the data, and create a data source filter USERNAME() = [Username]. Publish the data source with the filter so it cannot be removed. For large deployments, consider virtual connections with data policies. Test by impersonating users on Server.
14
Users complain that a dashboard with 10 dropdown filters is slow. How do you improve it?
Measure first with performance recording. Reduce the number of quick filters and replace some with dashboard filter actions. Change Only Relevant Values to All Values in Database where cascading is not needed. Add an Apply button to multi-select filters, convert high-cardinality filters to wildcard search, and move fixed restrictions to data source filters. Re-test after changes.
Create a set on Category. Build a calculation: IF [Category Set] THEN [Sub-Category] ELSE '' END, and place Category and this calculation on Rows. Add a set action on select that assigns values to Category Set and removes them when cleared. Clicking a category expands only its sub-categories, creating an asymmetric drill down that standard hierarchies cannot do.
16
An extract refresh fails every morning on Server. How do you troubleshoot?
Check the background task and job history for the error message. Common causes are expired or changed database passwords, firewall or VPN issues, schema changes like renamed columns, timeout because the query is too large, or Backgrounder overload at peak time. Fix credentials, update the data source, optimise the query or move the schedule. Set up failure email notifications.
17
A business user wants a what-if analysis for price increase on profit. How would you build it?
Create a float parameter Price Change with a slider range of -20 to 20 percent. Build calculations: New Revenue = SUM([Sales]) * (1 + [Price Change]) and New Profit = New Revenue - SUM([Cost]). Optionally include an elasticity parameter for demand change. Show current versus projected profit side by side, and label assumptions clearly on the dashboard.
Site roles define the maximum capabilities a user can have. Creator users can connect to data, build in Desktop and Prep and publish. Explorer users can explore and web edit existing data sources, with Explorer (can publish) allowing publishing. Viewer users can view and interact with dashboards. Site Administrator roles manage users and content. Permissions on content further restrict what each user can do.
19
How do you create a filter action from a map to other sheets?
Go to Dashboard, Actions, Add Action, Filter. Choose the map as source sheet, select the target sheets, set run on Select, and choose what happens when clearing the selection, such as Show all values. Under Filter, choose Selected Fields and map State to State. Test by clicking a state and checking that the bar and trend charts update.
20
Create age buckets for customers using a calculation.
Age Group:
IF [Age] < 18 THEN 'Under 18'
ELSEIF [Age] <= 25 THEN '18-25'
ELSEIF [Age] <= 35 THEN '26-35'
ELSEIF [Age] <= 50 THEN '36-50'
ELSE '50+'
END
To sort buckets correctly, create a sort order calculation or sort manually.
21
What is the difference between joining, blending and relationships?
Joins merge tables at row level before analysis and can duplicate values. Blending queries each source separately, aggregates the secondary to the linking fields, and combines results per sheet, so it works across sources but has limitations such as no COUNTD from secondary in some cases. Relationships define flexible links and let Tableau choose joins per view while keeping each table's grain.
22
You need the average of daily totals, but data is at transaction level. How do you calculate it?
Compute daily totals first with an LOD, then average: AVG({FIXED DATETRUNC('day', [Order Date]) : SUM([Sales])}). If it must respond to filters such as Region, use INCLUDE instead: AVG({INCLUDE DATETRUNC('day', [Order Date]) : SUM([Sales])}) with the view at month or region level. Averaging raw transactions would give average ticket size, which is a different metric.
23
You notice hundreds of duplicate workbooks and data sources on Server. How would you clean up governance?
Use admin views and usage statistics to find stale or duplicate content. Agree a governance model with owners: certified data sources, project structure by department, naming standards, and a sandbox project for drafts. Archive content not viewed in 90 days after notifying owners, lock project permissions, and set a monthly review. This reduces confusion and Server load.
24
Tell me about a time you handled conflicting requests from two teams.
Situation: finance wanted revenue after returns while sales wanted gross revenue on the same dashboard. Task: satisfy both without confusion. Action: I arranged a short call, documented both definitions, and added a parameter to switch between gross and net with a clear label and tooltip definitions. Result: both teams used the dashboard, and the definitions became part of our data dictionary.
25
What are the performance considerations of LOD expressions?
Each LOD generates a subquery joined back to the main query, so many LODs on large live data increase query complexity. FIXED on high-cardinality dimensions such as Order ID can be expensive. Keep the number of LODs small, prefer extracts, use FIXED with minimal dimensions, and check performance recordings. Sometimes pre-aggregating in the database is better than complex nested LODs.
26
A dashboard compares stores of very different sizes and small stores are invisible. What do you do?
Use relative metrics such as growth percent, sales per square foot or target achievement instead of absolute sales. Consider log scale for wide ranges, separate small multiples by store size band, or independent axes. Sorting and highlighting outliers also help. Explain the chosen normalisation in the subtitle so readers understand the comparison.
A URL action opens a web page, a file or an email link using field values from the selected mark. For example, clicking an order can open the order details page in an internal system with the Order ID passed in the URL, or clicking a company can open a search. URL actions can open in a new tab or inside a web page object in the dashboard.
28
How do you use a parameter action to let users click a bar and change a reference line?
Create a float parameter, for example Selected Value. Add a reference line using that parameter. Then go to Dashboard, Actions, Add Action, Change Parameter, choose the source sheet, target parameter Selected Value, and source field SUM(Sales), with aggregation set as needed. Clicking a bar updates the parameter, and the reference line moves to compare other bars with it.
29
Tell me about a time you pushed back on a stakeholder's request.
Situation: a sales director asked me to remove returns from revenue on the leadership dashboard to show higher growth. Task: keep reporting accurate while meeting his need. Action: I explained the impact on other reports, showed gross and net side by side with clear labels, and escalated the definition to finance for a final decision. Result: finance confirmed net revenue, and the director accepted it.
30
How do you build a waterfall chart showing profit build-up by sub-category?
Put Sub-Category on Columns and SUM(Profit) on Rows, add a Running Total quick table calc, and change mark type to Gantt Bar. Create a calculation -SUM([Profit]) and put it on Size so each bar extends from the previous total. Colour by profit sign and enable Show Row Grand Totals to display the final bar.
31
How do maps work in Tableau and what is geocoding?
Tableau has built-in geocoding for countries, states, cities, postal codes and more, so assigning a geographic role generates latitude and longitude. You can build symbol maps with circles sized by a measure or filled maps coloured by a measure. For Indian data, district or custom regions may need spatial files such as shapefiles or GeoJSON, or custom geocoding imports.
32
A Snowflake or BigQuery live connection is costing a lot due to many queries. How would you reduce it?
Use extracts where real-time data is not needed, schedule refreshes outside peak hours, and aggregate extracts to required grain. Reduce quick filters with relevant values, limit dashboards that auto-refresh, and use published data sources so caching is shared. Work with data engineers on materialised or clustered tables. Monitor query history and cost per dashboard to target the worst offenders.
Rank:
RANK(SUM([Sales]), 'desc')
Place Category and Product on Rows. In Edit Table Calculation choose Specific Dimensions, tick Product only so the rank restarts for each category. Add a filter on the rank calculation, set to at most 5, to show the top five products in every category.
Show and hide buttons let users collapse or expand a floating container, such as a filter panel or help text, by clicking a button. They save space on crowded dashboards and keep the main view clean. You enable it from the container menu with Add Show/Hide Button, and style it with images or text. They also work well for mobile layouts.
35
What are groups and sets, and how are they different?
Groups combine dimension members into higher-level categories, such as merging small states into Others, and are static. Sets define a subset of members as In or Out, either by manual selection, by condition such as SUM(Sales) above 1 lakh, or by Top N. Sets can be dynamic, used in calculations, combined, and changed by set actions. Groups are for labelling, sets for analysis.
36
Your percent of total changes when a user filters Category. The business wants it to stay fixed. What do you do?
If you used a quick table calculation, the total is computed on the filtered view, so it changes. Replace it with a FIXED LOD for the total, which ignores dimension filters, or use EXCLUDE for the filtered dimension. Make sure any filters that should affect the total are added to context. Test with and without filters and document the behaviour.
Using SPLIT:
SPLIT([Customer Name], ' ', 1)
Using FIND and LEFT:
LEFT([Customer Name], FIND([Customer Name], ' ') - 1)
Trim spaces first if data is messy:
SPLIT(TRIM([Customer Name]), ' ', 1)
SPLIT is simpler, while the second method shows string function skills.
38
What is a virtual connection and data policy in Tableau?
A virtual connection is a shareable, centrally managed access point to database tables, with embedded credentials and optional extracts. A data policy attached to it applies row-level security at the table level using user functions and entitlement tables. Every workbook and data source using the connection inherits the security, so rules are defined once instead of in each data source. It requires Data Management licensing.
39
Sales team wants year over year growth for each month on a single chart. How do you build it?
Place MONTH(Order Date) discrete on Columns and YEAR(Order Date) on Color with SUM(Sales) on Rows. Add a quick table calculation Percent Difference, compute using Year, relative to previous. Each month now shows growth versus the same month last year. Alternatively calculate with LOOKUP(SUM([Sales]), -1) partitioned by month and addressed by year.
40
Describe how you work with data engineers on a BI project.
Situation: my dashboard needed customer data that was spread across three systems. Task: get a reliable, single table. Action: I wrote clear requirements with grain, fields and refresh needs, shared sample SQL, and reviewed their view together, testing counts against source systems. Result: they built a curated table, my dashboard became simpler and faster, and we reused the table for two other reports.
Frequently asked questions
What is asked in Tableau interviews for 5 years of experience?
At five years, interviewers look for technical leadership: designing certified data sources, setting standards, reviewing others' work and managing stakeholders. Expect questions on Server permissions, governance, migration, embedding and handling large data volumes. Behavioural questions about mentoring, prioritisation and pushing back on incorrect requirements become as important as technical ones.
How many questions should I practise before a Tableau interview?
Work through all 40 questions here, then the company-wise sets for the employers you are targeting. Quality matters more than count: be able to explain why each answer is right.
Which topics matter most for 5 years of experience?
Focus first on Governance and standards, Server and Cloud, Mentoring, Stakeholder management.