Tableau is the leading business intelligence tool at Indian consulting firms (Deloitte, EY, KPMG, PwC) and analytics teams across industries. Data analyst and BI developer roles in India require fluency in calculated fields, LOD (Level of Detail) expressions, data connections, and dashboard performance optimisation.
Tableau Interface, Data Connections, and Calculated Fields
Tableau interviews at Indian companies start with fundamentals: understanding the interface, data connection types, and how calculated fields work.
Tableau interface basics:
- Dimensions: categorical fields (discrete; typically appear as blue pills in Tableau). Examples: Region, Category, Customer Name
- Measures: quantitative fields (continuous; typically appear as green pills). Examples: Sales, Profit, Quantity
- Rows and Columns shelves: dimensions placed here define the structure of the view; measures define the size of marks
- Marks card: controls mark type (bar, line, circle), colour, size, label, and detail
- Filters shelf: filters applied to the view; order matters (extract filter > data source filter > context filter > dimension filter > measure filter)
Data connections:
- Live connection: Tableau queries the data source directly every time the view loads; reflects real-time data; performance depends on the database speed
- Extract (.hyper file): Tableau imports a snapshot of the data into a columnar in-memory format; much faster for large datasets; scheduled refresh keeps it up to date
- Published data source: a data source published to Tableau Server or Cloud that multiple workbooks can connect to; promotes data governance and consistency
Joins and data blending:
- Join: combines data from multiple tables at the data source level before it reaches Tableau; like a SQL join; the result is a single flat table
- Types: inner join (only matching rows), left join, right join, full outer join
- Cross-database join: join tables from two different databases (e.g., SQL Server and Excel) in Tableau
- Data blending: combines data from two separate published data sources in the view; primary data source provides the structure; secondary data source is aggregated and linked by a common dimension; blending happens at the aggregate level (after queries are sent to each source independently)
Calculated fields:
- Created in the data pane: right-click > Create Calculated Field (or Analysis > Create Calculated Field)
- Row-level calculation: computed for each row of data before aggregation; example: [Profit] / [Sales] (profit margin per row)
- Aggregate calculation: uses aggregate functions: SUM([Sales]), AVG([Profit]), COUNTD([Customer ID])
- String functions: LEFT(), RIGHT(), MID(), LEN(), UPPER(), LOWER(), CONTAINS(), STARTSWITH(), REPLACE()
- Date functions: DATEPART('year', [Order Date]), DATEDIFF('day', [Order Date], [Ship Date]), DATEADD('month', 3, [Date])
- Logical functions: IF [Sales] > 1000 THEN 'High' ELSEIF [Sales] > 500 THEN 'Medium' ELSE 'Low' END
- IIF([condition], [true result], [false result]) — shorthand for simple binary conditions
LOD Expressions: FIXED, INCLUDE, and EXCLUDE
Level of Detail (LOD) expressions are the most advanced and most frequently tested Tableau topic in Indian BI interviews.
What are LOD expressions?
- LOD expressions allow you to compute aggregations at a different granularity than the view level
- Without LOD: every aggregation in the view is computed at the level of the dimensions in the view
- With LOD: you specify exactly which dimensions to aggregate by, regardless of what is in the view
FIXED:
- Syntax: { FIXED [dimension1], [dimension2] : AGGREGATE([measure]) }
- Computes the aggregation at the specified dimension level, ignoring the view dimensions entirely
- Example: { FIXED [Customer ID] : SUM([Sales]) } — total sales per customer, regardless of what other dimensions are in the view
- FIXED is not affected by dimension filters (only context filters and data source filters affect FIXED LODs)
- Use case: 'What is each customer's first order date?' — { FIXED [Customer ID] : MIN([Order Date]) }
- Cohort analysis: tag each customer with their first purchase year for retention analysis
INCLUDE:
- Syntax: { INCLUDE [dimension] : AGGREGATE([measure]) }
- Computes the aggregation by adding the specified dimension to the view-level dimensions
- Example: { INCLUDE [Customer ID] : SUM([Sales]) } — if the view is at the Region level, this computes sales per (Region + Customer), then Tableau aggregates these values in the view
- Use case: average sales per customer per region — put Region in the view, then AVG({ INCLUDE [Customer ID] : SUM([Sales]) })
EXCLUDE:
- Syntax: { EXCLUDE [dimension] : AGGREGATE([measure]) }
- Computes the aggregation at the view level minus the specified dimension
- Example: view is at (Region, Category) level; { EXCLUDE [Category] : SUM([Sales]) } gives Region-level total regardless of Category
- Use case: percent of total — [Sales] / { EXCLUDE [Sub-Category] : SUM([Sales]) } gives each sub-category as a percentage of its category total
LOD vs Table Calculations:
- LOD expressions are computed in the database (before data comes to Tableau); they can reference dimensions not in the view
- Table calculations are computed in Tableau after the data is already aggregated and in the view; they work on the result set visible in the view
- Table calculations: RUNNINGSUM(SUM([Sales])), WINDOWSUM(SUM([Sales])), RANK(SUM([Sales])), PERCENTILE
- Table calculation addressing and partitioning: addressing defines how the calculation moves through the data (across rows, down columns, across then down); partitioning defines which cells restart the calculation
Dashboard Design, Performance Optimisation, and Tableau Server
Dashboard design and performance are practical skills tested at consulting firms and corporate analytics teams in India.
Tableau dashboard design principles:
- Layout containers: horizontal and vertical containers organise dashboard elements; floating vs tiled layout
- Dashboard actions: Filter action (clicking a mark filters other sheets), Highlight action (emphasises related marks), URL action (opens a URL or navigates to another dashboard), Set action (adds marks to a Tableau Set)
- Tooltips: show additional information on hover; can embed other Viz in Tooltip sheets
- Parameter controls: interactive controls (sliders, dropdowns, text input) that change a parameter value, which in turn changes calculated fields or filters dynamically
- Mobile layout: Tableau supports separate layouts for phone and tablet; design a mobile-optimised layout for dashboards that will be viewed on mobile
Dashboard performance optimisation:
- Reduce data volume: apply data source filters and extract filters to limit rows loaded into Tableau; use pre-aggregated data in the database where possible
- Reduce marks in the view: each mark requires rendering computation; scatter plots and maps with millions of marks are slow; use aggregation or sample data for exploratory views
- Minimise LOD expressions per dashboard: each LOD expression generates a separate query; materialise frequently used LODs in the data source
- Context filters: applied before other filters; use a context filter on a high-cardinality dimension (like Date range) to reduce the data set before applying other filters
- Avoid nested fixed LODs: nested LODs (LOD inside another LOD) can be very slow; restructure with table calculations or pre-compute in SQL
- Use Tableau Performance Recording (Help > Start Performance Recording) to identify slow queries and renders
Tableau Server and Cloud:
- Tableau Server: on-premises or cloud-hosted Tableau deployment; publish workbooks, data sources, and flows for sharing
- Tableau Cloud: Tableau's fully managed SaaS offering (hosted by Salesforce)
- Publish a workbook: File > Publish to Server; select sheets to include, set permissions, configure extract refresh schedule
- Refresh schedules: configure incremental or full extract refreshes; incremental refresh appends only new records (requires an increment key — typically a date field)
- Permissions: project-level and workbook-level permissions; roles: Viewer, Explorer, Creator, Site Administrator
- Row-Level Security (RLS): use User Functions (USERNAME(), ISMEMBEROF()) in filters to restrict which rows a user sees based on their Tableau Server username
- Tableau Prep Builder: data preparation tool for cleaning, shaping, and combining data before analysis; outputs to published data sources on Tableau Server/Cloud
Frequently asked questions
Explore more