Skip to content

Deloitte Power BI Interview Questions & Answers

Curated interview practice questions with answers. These are practice scenarios, not a verified list of past interview questions.

About Deloitte hiring for Power BI roles

Deloitte is one of the Big Four professional services networks, offering audit, tax, consulting, risk advisory and financial advisory services. Its Indian entities, including Deloitte USI, support global clients with technology consulting, analytics, cyber and testing work. It hires in India for analyst and consultant roles in data analytics, business intelligence, QA, ERP and risk advisory.

For Power BI roles, this Deloitte practice set focuses most on DAX Fundamentals (6), Power BI Fundamentals (5), Power Query and Data Transformation (4), Performance Optimisation and Administration (4). It has 3 easy, 23 medium, 4 hard questions, so you can start easy and work up to the harder ones.

Company type
Consulting
Headquarters
London, United Kingdom
Main India offices
Hyderabad, Bengaluru, Mumbai, Gurugram, Pune

Deloitte Power BI interview process

  1. Online assessment (aptitude + technical)
  2. Group discussion or case discussion
  3. Technical interview
  4. Partner or HR round

Typical pattern based on public candidate experiences. Rounds vary by role, team and year.

Solved for DeloitteStart 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

What is the relationship between Power BI and Microsoft Fabric?

Save to ▾
Show answer
Microsoft Fabric is Microsoft's unified analytics platform that includes data engineering, data factory, data warehousing, real-time analytics and Power BI as its reporting layer. Power BI workspaces can live on Fabric capacity and use items such as lakehouses and warehouses in OneLake. Direct Lake mode lets semantic models read Delta tables in OneLake directly without a full import, combining fresh data with near-import speed.
02

What are query parameters in Power Query?

Save to ▾
Show answer
Parameters are named values used inside queries, such as server name, database, file path or a date range. They let you switch from a development to a production database without editing each query, and they are required for incremental refresh through RangeStart and RangeEnd. Parameters can be changed in the Service under semantic model settings, which helps deployment pipelines between environments.
03

What are paginated reports and when would you use them?

Save to ▾
Show answer
Paginated reports, built with Power BI Report Builder, are pixel-perfect, print-ready reports that can span many pages, such as invoices, statements or regulatory reports with long tables. They are ideal when users need exact layout, export to PDF or Excel, or detailed row-level listings. Interactive Power BI reports are better for exploration. Paginated reports can run in the Service with Pro, PPU or Fabric capacity.
04

What is the difference between static and dynamic RLS?

Save to ▾
Show answer
Static RLS hard-codes values in each role, such as one role per region, which becomes hard to manage as regions grow. Dynamic RLS uses one role with a filter based on the logged-in user, such as Users[Email] = USERPRINCIPALNAME(), with a security mapping table linking users to the regions or managers they may see. Dynamic RLS scales better and is driven by data rather than role edits.
05

A colleague's measure uses FILTER(Sales, ...) on a 50-million-row table and is slow. How would you rewrite it?

Save to ▾
Show answer
I would replace FILTER over the whole fact table with column filters in CALCULATE, such as CALCULATE([Sales], Sales[Channel] = "Online"), which the engine can apply efficiently. If a condition uses a measure, iterate over a small dimension table instead, like FILTER(VALUES(Customer[CustomerID]), [Sales] > 10000). Then test in DAX Studio with server timings before and after.
06

A report page takes 25 seconds to load. Walk me through how you would fix it.

Save to ▾
Show answer
I would run Performance Analyzer to find the slowest visuals, copy their DAX queries into DAX Studio and check server timings. Common fixes are rewriting measures that iterate large fact tables, removing bi-directional relationships, reducing visuals on the page, and shrinking the model by removing high-cardinality columns. If the source is DirectQuery, I would add aggregations or move to Import. Then re-measure after each change.
07

Describe how you would review another developer's Power BI model before release.

Save to ▾
Show answer
I check the model diagram for a clean star schema and single-direction relationships, run Best Practice Analyzer, and review VertiPaq Analyzer for oversized columns. I read key measures for correctness and naming, check that keys are hidden and formats set, test RLS roles, and run Performance Analyzer on main pages. I share findings as a short prioritised list, explaining why each change matters.
08

What are the most useful table functions in DAX?

Save to ▾
Show answer
Key table functions include FILTER, ALL, VALUES, DISTINCT, SUMMARIZE and SUMMARIZECOLUMNS for grouping, ADDCOLUMNS to add calculated columns, TOPN for top rows, CROSSJOIN, UNION, EXCEPT, INTERSECT, GENERATESERIES and TREATAS for virtual relationships. They return tables used inside iterators, CALCULATE filters or calculated tables. ADDCOLUMNS over SUMMARIZE is a common pattern for reliable grouped results.
09

Users say the report shows yesterday's data even after a refresh. How do you troubleshoot?

Save to ▾
Show answer
I would check the refresh history in the Service for errors or whether the refresh actually ran, confirm the gateway is online and has valid credentials, and verify the source itself has the latest data. Then check for cached dashboard tiles, query caching, or an incremental refresh policy that excludes recent days. Also confirm users are viewing the right workspace or app version, which may need republishing.
10

Each regional manager must see only their region, and the CEO must see everything. How do you implement this?

Save to ▾
Show answer
I would build dynamic RLS with a security table of Email and Region, related to the Region dimension, and a role filter Security[Email] = USERPRINCIPALNAME(). The CEO and other full-access users get an 'All' flag handled in the rule, or are placed in a separate role with no filter. I would test with View as role in Desktop and in the Service before publishing the app.
11

Two queries return the same data from different systems, and totals do not match. How do you investigate?

Save to ▾
Show answer
I would compare row counts and totals at a high level first, then drill down by date and key dimensions to find where the difference starts. Merge both tables with a full outer join on the business key and use anti joins to list missing rows, then compare values on matched rows. Common causes are different cut-off times, filters, duplicates, time zones or currency conversions.
12

What licence types exist for Power BI?

Save to ▾
Show answer
Power BI Free lets a user build in Desktop and use My workspace but not share content. Power BI Pro is needed to publish to shared workspaces and share with other Pro users. Premium Per User adds larger models, more refreshes and premium features per user. Fabric capacity (F SKUs) provides dedicated capacity; at F64 and above, viewers with a free licence can consume shared content.
13

Users on mobile find the report hard to read. What do you do?

Save to ▾
Show answer
I would create a mobile layout in Desktop through View, Mobile layout, placing the most important cards and charts in a single column with larger fonts. Remove or simplify dense tables, check slicer usability on touch screens and test in the Power BI mobile app. If mobile use is common, I might design a separate concise summary page for mobile users.
14

Tell me about a time a user rejected your report design. What did you do?

Save to ▾
Show answer
Situation: sales managers stopped using a dashboard I built. Task: find out why. Action: I watched two managers use it and found they needed weekly target gaps first, which were hidden on page three. I moved those to the top, removed four rarely used charts and added drill-through for details. Result: weekly usage in the activity log tripled within a month.
15

What is the difference between ALL, ALLEXCEPT and REMOVEFILTERS?

Save to ▾
Show answer
ALL returns all rows of a table or column ignoring filters, and as a CALCULATE argument it removes filters, useful for percent of total. REMOVEFILTERS does the same removal but only as a CALCULATE modifier and reads more clearly. ALLEXCEPT removes all filters from a table except the listed columns, such as keeping the Year filter while removing others. ALLSELECTED keeps filters from outside the visual, like slicers.
16

What is the difference between Reference and Duplicate in Power Query?

Save to ▾
Show answer
Duplicate copies all the steps of a query into a new independent query, so later changes to the original do not affect it. Reference creates a new query whose source is the output of the original, so it inherits any changes. Reference is useful for building several tables from one staging query, such as dimension tables from a cleaned sales table, while Duplicate is for experimenting separately.
17

Your measure using IF and many nested CALCULATE calls is slow. How do you optimise it?

Save to ▾
Show answer
I would store repeated sub-expressions in variables so they are computed once, replace nested IF chains with SWITCH(TRUE(), ...), use column filters instead of FILTER over tables, and avoid context transition inside large iterators. I would also check whether some logic can move into a calculated column or Power Query at refresh time. DAX Studio timings confirm whether formula engine time drops.
18

A YTD measure returns blank for future months on a chart. Users want the line to stop at today. How?

Save to ▾
Show answer
The issue is the opposite for many teams: YTD repeats the last value for future months. I would add a condition so the measure returns BLANK when the period starts after the last date with data, for example IF(MIN('Date'[Date]) > [Last Sales Date], BLANK(), TOTALYTD(...)). Alternatively add a column flagging dates up to today in the date table and filter the visual on it.
19

What does CALCULATE do?

Save to ▾
Show answer
CALCULATE evaluates an expression in a modified filter context. Its filter arguments can add, replace or remove filters, for example CALCULATE([Total Sales], 'Product'[Category] = "Electronics") replaces any category filter with Electronics. It also performs context transition when used inside a row context, turning the current row into an equivalent filter. It is the most important function in DAX.
20

Refresh takes 90 minutes because of heavy Power Query steps. How do you speed it up?

Save to ▾
Show answer
I would check query folding with View Native Query or the folding indicators and move non-folding steps after folding ones. Filter rows and remove unused columns as early as possible, push joins and aggregations into SQL views, avoid row-by-row custom functions over large tables, and disable load for staging queries. For large fact tables, set up incremental refresh so only recent partitions reload.
21

What is a disconnected table and how is it used for what-if analysis?

Save to ▾
Show answer
A disconnected table has no relationship to the model and is used to capture a user's choice through a slicer. For example, a Discount table from 0 to 30 percent created with GENERATESERIES, or the What-if parameter feature, lets a measure read SELECTEDVALUE(Discount[Value]) and calculate projected revenue. Since it does not filter facts, the measure decides how the selection is applied.
22

Scheduled refresh fails every night with a gateway error. How do you troubleshoot?

Save to ▾
Show answer
I would check the refresh history error details, confirm the gateway machine is on and the gateway service is running and updated, and verify data source credentials in the gateway connection have not expired. Then test connectivity from the gateway machine to the source and check that the source names in the model exactly match the gateway data source. Gateway logs and network or firewall changes are next.
23

What are variables in DAX and why use them?

Save to ▾
Show answer
VAR defines a named value inside an expression and RETURN gives the final result. Variables make measures easier to read, avoid repeating the same calculation, which improves performance, and help debugging because you can return an intermediate variable. A variable is evaluated once in the context where it is defined, so its value does not change if later CALCULATE filters are applied.
24

Tell me about a report you built that changed a business decision.

Save to ▾
Show answer
Situation: regional managers tracked sales in separate Excel files, and stock planning was late. Task: give one daily view. Action: I combined ERP and target data in Power Query, built a star schema with DAX measures for target achievement and stock cover, and published an app with row-level security per region. Result: weekly planning moved from Friday to Monday morning, and two slow-moving products were discontinued earlier.
25

Why do you need a dedicated date table?

Save to ▾
Show answer
A date table gives one row per day with columns like year, quarter, month, week and fiscal periods, so all facts can be analysed on a common calendar. Time intelligence functions such as TOTALYTD and SAMEPERIODLASTYEAR need a contiguous date column, and the table should be marked as a date table. It also avoids the many hidden auto date/time tables that bloat the model.
26

What is the difference between FILTER and a simple boolean filter in CALCULATE?

Save to ▾
Show answer
A boolean filter like 'Product'[Color] = "Red" is shorthand for a filter over that column's values and replaces existing filters on that column. FILTER(Table, condition) iterates a table and returns rows matching the condition; it can use measures and multiple columns but is slower on large tables. Prefer column filters where possible and use FILTER on small tables or with KEEPFILTERS when needed.
27

What is the difference between SELECTEDVALUE and VALUES?

Save to ▾
Show answer
SELECTEDVALUE(column, alternate) returns the single value of a column when exactly one is visible in the filter context, otherwise the alternate or blank. VALUES(column) returns a table of distinct visible values, including blank for unmatched rows, and can be used in iterators or as a filter. Use SELECTEDVALUE for titles and parameters, and VALUES when you need to loop over the visible items.
28

What is the difference between drill-down and drill-through?

Save to ▾
Show answer
Drill-down moves within the same visual through a hierarchy, such as Year to Quarter to Month, using the drill buttons. Drill-through moves the user to a separate detail page filtered by the selected item, such as right-clicking a customer to open a Customer Details page. Drill-through pages are set up by adding fields to the drill-through well and include a back button.
29

How do you handle a fiscal year in time intelligence functions?

Save to ▾
Show answer
Functions like TOTALYTD and DATESYTD accept a year-end date argument, so for an Indian fiscal year ending 31 March use TOTALYTD([Sales], 'Date'[Date], "31/3"). Add fiscal year, quarter and month columns to the date table for slicing. For complex calendars such as 4-4-5 retail weeks, standard functions do not work, and you write custom logic using fiscal period columns. Newer calendar-based time intelligence also supports custom calendars.
30

How does the VertiPaq engine store and compress data?

Save to ▾
Show answer
VertiPaq is the in-memory columnar engine for Import models. It stores each column separately and compresses it using dictionary encoding, which maps unique values to integers, value encoding for numbers, and run-length encoding for repeated sequences. Compression depends mostly on column cardinality, so columns with few unique values compress very well, while unique IDs and precise timestamps take most of the memory.

Tips to crack the Deloitte Power BI interview

  • Practise guesstimates and simple business cases, since consulting interviews often test structured thinking alongside technical skills.
  • Be ready to explain dashboards or analyses you built in Excel, SQL, Power BI or Tableau and the business decisions they supported.
  • Read about Deloitte's service lines such as Risk Advisory and Consulting so you can say which practice suits you.
  • Keep a one-minute story ready for every project on your CV: problem, your part, tools, result.
  • Practise the hard questions on this page aloud; Deloitte interviewers usually ask follow-ups on your first answer.

Frequently asked questions

How many rounds are there in the Deloitte Power BI interview?

Candidates usually go through 4 stages: Online assessment (aptitude + technical); Group discussion or case discussion; Technical interview; Partner or HR round. The exact rounds change with the role, team, location and your experience, so confirm the process with the recruiter.

Which topics should I prepare for the Deloitte Power BI interview?

This practice set leans on DAX Fundamentals (6), Power BI Fundamentals (5), Power Query and Data Transformation (4), Performance Optimisation and Administration (4). Revise those first, then practise explaining one or two of your own projects end to end, because most Deloitte interviewers ask you to walk through real work.

Are these the exact questions asked at Deloitte?

No. These are curated practice questions that match the skills and difficulty usually tested in consulting interviews like Deloitte's. They are not a leaked or verified list of past questions.

Where does Deloitte hire Power BI professionals in India?

Deloitte has large teams in Hyderabad, Bengaluru, Mumbai, Gurugram, Pune. Openings and locations change often, so check the Deloitte careers page and filter by city and experience.

Power BI questions for similar companies