Skip to content

Tableau Interview Questions for 7 Years Experience

40 questions with answers for candidates with 7 years of experience — 1 easy, 15 medium, 24 hard.

What interviewers expect: 7 years experience

Seven-year candidates are evaluated as BI leads or architects. Discussions cover BI strategy, warehouse and semantic layer design, tool selection, licensing models, security architecture, adoption measurement and delivery of multi-team projects. You should share examples of programmes you led, how you measured impact, and how you balanced self-service with governance.

This set is weighted towards LOD Expressions (7), Dashboards and Tableau Server (7), Table Calculations (6), Calculated Fields (5).

BI architecture Semantic layer design Adoption and impact Team leadership
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.
3 questions free Unlock the rest in seconds
01

Write a calculation for profit ratio and a profit flag.

Save to ▾
Show answer
Profit Ratio: SUM([Profit]) / SUM([Sales]) Profit Flag: IF SUM([Profit]) > 0 THEN 'Profitable' ELSEIF SUM([Profit]) = 0 THEN 'Break-even' ELSE 'Loss' END Format Profit Ratio as percentage. Both are aggregate, so they work at any view level.
02

A string calculation CONTAINS([Product], 'phone') misses some rows. Why?

Save to ▾
Show answer
CONTAINS is case-sensitive in many sources, so Phone or PHONE will not match. Use CONTAINS(LOWER([Product]), 'phone') to normalise case. Also trim extra spaces and check for nulls. If you need complex patterns, use REGEXP_MATCH where the data source supports it. Test the result by counting matched rows and reviewing samples.
03

Sales team wants year over year growth for each month on a single chart. How do you build it?

Save to ▾
Show answer
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.
04

A workbook with many nested table calculations is slow in the browser. How do you approach it?

Save to ▾
Show answer
Table calcs run on the result set, so large numbers of marks make them slow. Reduce marks by aggregating to the needed level, filter data earlier with context or data source filters, replace some table calcs with LODs or database-side calculations, and avoid nested WINDOW functions over thousands of rows. Use a performance recording to confirm computing layouts and query time.
05

How do you prioritise dashboard requests from multiple stakeholders?

Save to ▾
Show answer
Situation: I received eight dashboard requests in one week as the only senior BI developer. Task: deliver the most valuable work first. Action: I listed requests with business impact, effort and deadlines, reviewed them with my manager, delivered quick wins using existing data sources, and shared timelines for the rest. Result: high-impact requests were delivered on time and stakeholders appreciated the transparency.
06

How do filters interact with LOD expressions?

Save to ▾
Show answer
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.
07

Different analysts calculate active customer differently. How do you resolve it?

Save to ▾
Show answer
Agree on a business definition with stakeholders, such as a customer with at least one order in the last 90 days, and document it. Create one calculated field using an LOD on the last order date, add it to a certified published data source with a description, and deprecate old versions. Communicate the change and compare old and new numbers so users understand the difference.
08

Leadership wants one dashboard that shows 25 KPIs. How do you design it without clutter?

Save to ▾
Show answer
Clarify the top five decisions the dashboard should support. Show 4 to 6 headline KPIs as cards at the top, group the others into themed sections or separate tabs, and use drill-down actions to detailed views. Use consistent formatting, small multiples and sparklines for trends. Prototype with users, gather feedback, and remove KPIs that nobody uses.
09

A live connection dashboard on a large database is very slow. What options would you evaluate?

Save to ▾
Show answer
Check the performance recording to see slow queries. Options include switching to an extract with aggregation and extract filters, adding database indexes or materialised views, removing custom SQL, enabling referential integrity assumptions, reducing the number of marks and quick filters, and using context filters wisely. If real-time is not required, a scheduled extract usually gives the biggest improvement.
10

How do calculations affect performance, and what are best practices?

Save to ▾
Show answer
Row-level calculations on large live sources run in the database for every query, so heavy string operations and nested IFs can be slow. Best practices are to use booleans and integers instead of strings, prefer CASE for fixed lists, move complex logic to the database or extract, materialise calculations in extracts, avoid unnecessary COUNTD, and keep LODs and table calculations simple.
11

What is Tableau Pulse and how does it differ from dashboards?

Save to ▾
Show answer
Tableau Pulse is a metrics layer that delivers personalised KPI summaries with AI-generated insights in plain language, through the web, email or chat tools. Instead of opening a dashboard and exploring, users follow metrics such as weekly revenue and get notified about changes, drivers and trends. Dashboards remain better for deep exploration, while Pulse serves quick, proactive monitoring.
12

How do you implement drill down with set actions?

Save to ▾
Show answer
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.
13

Clicking a chart filters others, but users get confused when everything goes blank. How do you improve the experience?

Save to ▾
Show answer
Set clearing behaviour to Show all values instead of Exclude all values, add clear titles that show the current selection using dynamic text, and add an instruction line such as Click a region to filter. Use highlight actions where filtering is unnecessary. Provide a reset button through a parameter action or navigation button, and test with real users.
14

What are the performance considerations of LOD expressions?

Save to ▾
Show answer
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.
15

Calculate average sales per customer for each region.

Save to ▾
Show answer
Use INCLUDE to compute at customer level inside each region: AVG({INCLUDE [Customer ID] : SUM([Sales])}) Place Region on Rows. Tableau sums sales per customer within each region, then averages those totals. Without INCLUDE, AVG([Sales]) would give average per order line, which answers a different question.
16

A dashboard with many nested IF calculations on 50 million rows is slow. What would you change?

Save to ▾
Show answer
Run a performance recording to confirm calculations are the bottleneck. Replace string comparisons with integer or boolean logic, convert long IF chains on single values to CASE, move derived columns into the database view or an extract so they are materialised, and remove unused calculations. Hide unused fields before extracting. Measure again after each change to show improvement.
17

A business user wants a what-if analysis for price increase on profit. How would you build it?

Save to ▾
Show answer
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.
18

A dashboard compares stores of very different sizes and small stores are invisible. What do you do?

Save to ▾
Show answer
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.
19

Show each state's sales compared with its region's total.

Save to ▾
Show answer
Region Sales: {EXCLUDE [State] : SUM([Sales])} Share of Region: SUM([Sales]) / SUM([Region Sales]) With Region and State in the view, EXCLUDE removes State so each row shows the regional total. Alternatively {FIXED [Region] : SUM([Sales])} works but ignores dimension filters.
20

What is the difference between joining, blending and relationships?

Save to ▾
Show answer
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.
21

Your company is migrating from Tableau Server to Tableau Cloud. What would you plan?

Save to ▾
Show answer
Inventory content and usage to retire unused workbooks, map sites, projects, users, groups and permissions, and plan authentication. Set up Tableau Bridge for on-premise data, recreate schedules and subscriptions, and use migration tools to move content. Test critical dashboards for performance and row-level security, plan a pilot, communicate cut-over dates, and keep a rollback plan.
22

Using FIXED with SUM in the view gives a huge inflated number. Why?

Save to ▾
Show answer
FIXED returns a value repeated on every row at the fixed level. If the view is at a finer level, or at the total level, SUM adds the repeated values, multiplying the result. Use MIN, MAX or AVG to bring back the single value, or make sure the view level matches the FIXED dimensions. This is a frequent mistake when using table-level totals.
23

Show only the latest 6 months while running totals start from the first month.

Save to ▾
Show answer
Keep all months in the view. Create: Last N Filter: LAST() < 6 Compute along month and put it on Filters set to True. Because table calc filters apply after the running sum, earlier months are hidden but still counted. A normal date filter would reset the running total.
24

How do you create a sparkline in a KPI table?

Save to ▾
Show answer
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.
25

What are site roles in Tableau Server or Cloud?

Save to ▾
Show answer
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.
26

What is a data source filter and how is it different from an extract filter?

Save to ▾
Show answer
An extract filter limits which rows go into the extract file, reducing size permanently until the extract is redefined. A data source filter applies to every sheet using the source, live or extract, and is useful for security or removing test records. Both run before context filters. Extract filters improve storage and speed, while data source filters control the data visible to the workbook.
27

Build a dimension switcher so users choose Region, Category or Segment.

Save to ▾
Show answer
Create a string parameter Dimension Choice with values Region, Category and Segment. Then: Selected Dimension: CASE [Dimension Choice] WHEN 'Region' THEN [Region] WHEN 'Category' THEN [Category] ELSE [Segment] END Put Selected Dimension on Rows and show the parameter control.
28

How do you ensure your dashboards are actually used after launch?

Save to ▾
Show answer
Situation: an earlier dashboard I built had low usage after launch. Task: improve adoption on the next project. Action: I involved users in design, ran a short training session, added a how-to-use panel, set subscriptions for managers, and checked usage statistics monthly to remove unused views. Result: weekly active users doubled compared with the earlier dashboard, and feedback guided the next release.
29

What does LOOKUP do and how is it used?

Save to ▾
Show answer
LOOKUP(expression, offset) returns the value of an aggregate from another row in the partition, relative to the current row. LOOKUP(SUM([Sales]), -1) returns the previous period, useful for period-over-period difference. Positive offsets look forward. FIRST() and LAST() can be used as offsets to compare every row with the first or last period.
30

Why does filtering on a table calculation behave differently from a normal filter?

Save to ▾
Show answer
Table calculation filters apply at the end of the order of operations, after the calculation, so they hide marks without removing data from the computation. A normal dimension filter removes rows before the calc, changing running totals and ranks. To show only the last three months while keeping a running total from the start, filter with a table calc such as LAST() <= 2.
31

How do you build a waterfall chart showing profit build-up by sub-category?

Save to ▾
Show answer
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.
32

What are good practices for colour use in dashboards?

Save to ▾
Show answer
Use colour with a purpose: highlight key data and keep the rest neutral. Use sequential palettes for ordered values, diverging palettes around a meaningful midpoint such as zero profit, and categorical palettes with fewer than eight colours. Keep colours consistent across sheets, check colour-blind friendliness, avoid red and green only, and never use colour as the only way to convey meaning.
33

What are the main table calculation functions?

Save to ▾
Show answer
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.
34

Management wants new versus repeat customers per month. How would you build it?

Save to ▾
Show answer
Create First Purchase Month: {FIXED [Customer ID] : MIN(DATETRUNC('month', [Order Date]))}. Then Customer Type: IF DATETRUNC('month', [Order Date]) = [First Purchase Month] THEN 'New' ELSE 'Repeat' END. Put MONTH(Order Date) on Columns, COUNTD(Customer ID) on Rows and Customer Type on Color. Validate a few customers manually to make sure classification is correct.
35

Tell me about a time you pushed back on a stakeholder's request.

Save to ▾
Show answer
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.
36

Find customers whose latest order is more than 90 days old.

Save to ▾
Show answer
Last Order: {FIXED [Customer ID] : MAX([Order Date])} Churn Flag: IF DATEDIFF('day', [Last Order], TODAY()) > 90 THEN 'At risk' ELSE 'Active' END Use Churn Flag as a dimension with COUNTD([Customer ID]) to size the at-risk segment, and list customers in a detail sheet for the sales team.
37

A CXO wants a dashboard that updates every 15 minutes during a sale event. How do you design it?

Save to ▾
Show answer
Assess whether the source supports frequent queries. Options are a live connection to an optimised warehouse table with pre-aggregated data, or frequent incremental extract refreshes if allowed. Keep the dashboard light with few marks, headline KPIs and a trend, and enable auto-refresh behaviour or ask users to refresh. Load test before the event and monitor during it.
38

What are show and hide buttons in dashboards?

Save to ▾
Show answer
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.
39

A Snowflake or BigQuery live connection is costing a lot due to many queries. How would you reduce it?

Save to ▾
Show answer
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.
40

Monthly sales files arrive in a folder every month. How do you avoid manual work each time?

Save to ▾
Show answer
Use a wildcard union on the folder with a pattern such as Sales_*.xlsx so new files are included automatically on refresh. Alternatively, build a Tableau Prep flow with a wildcard input and schedule it with Prep Conductor. Ensure every file has the same column names and types. Use the Path or Table Name field to derive the month if it is not in the data.

Frequently asked questions

What is asked in Tableau interviews for 7 years of experience?

Seven-year candidates are evaluated as BI leads or architects. Discussions cover BI strategy, warehouse and semantic layer design, tool selection, licensing models, security architecture, adoption measurement and delivery of multi-team projects. You should share examples of programmes you led, how you measured impact, and how you balanced self-service with governance.

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 7 years of experience?

Focus first on BI architecture, Semantic layer design, Adoption and impact, Team leadership.