Skip to content

Top 50 Most Asked Power BI Interview Questions

The questions that appear most often across company-wise sets — master these first.

Why start here

We count how often each question appears across the 20 company-wise Power BI practice sets on this site and show the 50 most common. They are the safest questions to master first.

Solved — top 50Start 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 are variables in DAX and why use them?

DAX FundamentalsIn 9 company setsMedium
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.
02

What is the difference between Group By in Power Query and summarising in DAX?

Save to ▾
Show answer
Group By in Power Query aggregates rows at refresh time and stores only the summarised table, reducing model size, which is useful when detail is never needed. Summarising in DAX through measures keeps detail in the model and aggregates dynamically for any filter at query time. Use Power Query grouping for fixed summaries such as monthly snapshots, and DAX measures when users need flexible slicing.
03

How do you set up an app with different audiences?

Save to ▾
Show answer
In the workspace choose Create app or Update app, add the reports and dashboards, then in the Audience tab create audiences such as Sales Managers and Finance, choose which content each audience sees and grant access to the right Entra ID security groups. Publish the app and share the link. Remember RLS still controls rows inside reports; audiences only control which items are visible.
04

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

Advanced DAX and Time IntelligenceIn 8 company setsMedium
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.
05

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

Advanced DAX and Time IntelligenceIn 8 company setsMedium
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.
06

What are bookmarks and how are they used?

Visualisation and Report DesignIn 8 company setsMedium
Save to ▾
Show answer
Bookmarks capture the current state of a report page, including filters, slicers, visual visibility and sort order. They are used for storytelling, toggling between chart and table views with buttons, creating custom navigation, and resetting filters. Combined with the selection pane, they show and hide visuals. Too many bookmarks become hard to maintain, so field parameters are often a simpler alternative for switching measures.
07

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.
08

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.
09

A source table has duplicate customer rows with different spellings of the same name. What do you do?

Save to ▾
Show answer
For exact duplicates, Remove Duplicates on the key column. For spelling variations, use fuzzy matching in Merge Queries with a similarity threshold and transformation table, review results, and maintain a mapping table of approved matches. The best long-term fix is to use a stable customer ID from the source system and report data quality issues to the owner rather than cleaning endlessly in Power BI.
10

What does CALCULATE do?

DAX FundamentalsIn 7 company setsMedium
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.
11

Write a running total measure.

Advanced DAX and Time IntelligenceIn 7 company setsMedium
Save to ▾
Show answer
Running Total = VAR maxDate = MAX('Date'[Date]) RETURN CALCULATE( [Total Sales], 'Date'[Date] <= maxDate, REMOVEFILTERS('Date') ) REMOVEFILTERS clears the current period filter so all earlier dates are included. In a visual-only scenario, the visual calculation RUNNINGSUM is simpler.
12

What is Copilot in Power BI and what should you watch out for?

Power BI FundamentalsIn 7 company setsMedium
Save to ▾
Show answer
Copilot in Power BI uses generative AI to help create report pages, summarise visuals in narrative form, suggest DAX and answer questions about data in natural language. It needs supported capacity and tenant settings enabled by admins. Results depend heavily on a clean model with clear names, descriptions and synonyms, and outputs must be checked for correctness before sharing, especially generated DAX.
13

Sales data has region codes, while targets use region names. How do you combine them?

Save to ▾
Show answer
I would create or import a region mapping table with code and name, clean both sides by trimming spaces and fixing case, then merge in Power Query or better, build a Region dimension table with both columns and relate sales by code and targets by name to it. Unmatched rows should be checked using a left anti join so missing mappings are fixed rather than silently dropped.
14

What is the difference between ALL, ALLEXCEPT and REMOVEFILTERS?

DAX FundamentalsIn 6 company setsMedium
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.
15

Business wants year-over-year growth, but the current year is incomplete. How do you compare fairly?

Advanced DAX and Time IntelligenceIn 6 company setsMedium
Save to ▾
Show answer
Comparing a partial year with a full last year understates growth. I would limit last year to the same date range, for example using the last date with sales this year and filtering last year's dates up to the matching day, or compare year-to-date to previous year-to-date. I would label the visual clearly as YTD versus same period last year so readers understand it.
16

What makes a good dashboard design?

Visualisation and Report DesignIn 6 company setsEasy
Save to ▾
Show answer
A good dashboard answers specific questions for a specific audience. Put the most important KPIs at the top left, follow a logical flow from summary to detail, use a few consistent colours with one highlight colour, and choose simple visuals like bar and line charts. Remove clutter such as 3D effects and heavy borders, label clearly, show context like targets or last year, and keep each page to a manageable number of visuals.
17

How do you create a measure-driven conditional colour?

Visualisation and Report DesignIn 6 company setsMedium
Save to ▾
Show answer
Sales Colour = VAR ach = DIVIDE([Total Sales], [Target]) RETURN SWITCH(TRUE(), ach < 0.9, "#D64550", ach < 1, "#F2A93B", "#2E9E5B") In the visual, open conditional formatting for background or font colour, choose Format style Field value and select this measure.
18

How do you create a dynamic axis using field parameters?

Visualisation and Report DesignIn 6 company setsMedium
Save to ▾
Show answer
Go to Modeling, New parameter, Fields, and add the fields such as Region, Category and Channel. Power BI creates a parameter table and slicer. Put the parameter field on the axis of a chart; users select which dimension to show from the slicer. You can add measures to a separate field parameter so users switch both the measure and the axis.
19

What are endorsement, sensitivity labels and lineage view?

Save to ▾
Show answer
Endorsement marks content as Promoted by its owners or Certified by authorised reviewers, guiding users to trusted semantic models. Sensitivity labels from Microsoft Purview classify content, such as Confidential, and labels flow to exports like Excel and PDF. Lineage view shows how data sources, dataflows, semantic models, reports and dashboards depend on each other, which helps impact analysis before changes.
20

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.
21

How do you handle errors in Power Query without failing the whole refresh?

Save to ▾
Show answer
Use Keep Errors on a copy of the query to inspect the bad rows, then fix the cause, such as wrong data types or invalid dates. Replace Errors can substitute a value, and in M try ... otherwise catches errors per value: = Table.AddColumn(Source, "AmountNum", each try Number.From([Amount]) otherwise null, type nullable number) Log error rows to a separate query so they can be reviewed rather than silently dropped.
22

What are paginated reports and when would you use them?

Power BI FundamentalsIn 5 company setsMedium
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.
23

What is Power Query and where is it used?

Save to ▾
Show answer
Power Query is the data connection and transformation engine in Power BI, Excel, dataflows and Fabric Data Factory. It lets you connect to hundreds of sources and shape data with a recorded series of steps, such as removing columns, changing types, merging and unpivoting. Behind the interface each step is written in the M language. Steps re-run automatically on every refresh, making cleaning repeatable.
24

Why should you set data types correctly in Power Query?

Save to ▾
Show answer
Correct data types make sorting, filtering, aggregation and relationships work properly; text-typed numbers cannot be summed and mismatched key types break relationships. Types also affect compression and model size, for example whole numbers compress better than decimals or text. Set types once near the end of a query and avoid repeated automatic Changed Type steps, which can fail when column names change.
25

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.
26

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.
27

Describe a time you cleaned very messy data under a deadline.

Save to ▾
Show answer
Situation: a client sent 36 monthly Excel files with merged headers and changing columns two days before a review. Task: build a consolidated sales report. Action: I used the Folder connector with a custom function that promoted the right header row, unpivoted month columns and mapped renamed fields through a lookup table. Result: the report was ready a day early, and future files loaded automatically with no manual work.
28

Tell me about a time you redesigned a data model.

Data ModellingIn 5 company setsMedium
Save to ▾
Show answer
Situation: a finance report took 40 seconds per page with a 2 GB file built on joined flat tables. Task: improve speed. Action: I split it into a star schema with Date, Account, Cost Centre and fact tables, removed unused columns, turned off auto date/time and replaced bi-directional filters with single direction. Result: model size dropped to 450 MB and pages loaded in under 4 seconds.
29

What is the grain of a fact table and why does it matter?

Data ModellingIn 5 company setsMedium
Save to ▾
Show answer
Grain is the level of detail of one fact row, such as one row per order line per day. It must be defined clearly before building measures, because mixing grains in one table, for example daily sales and monthly targets, causes double counting and wrong totals. Facts at different grains should be separate tables related to dimensions at the matching level.
30

What is DAX?

DAX FundamentalsIn 5 company setsEasy
Save to ▾
Show answer
DAX, Data Analysis Expressions, is the formula language for Power BI, Analysis Services and Power Pivot. It is used to create measures, calculated columns, calculated tables and security rules. DAX looks like Excel formulas but works on tables and columns with filter context. Key functions include SUM, CALCULATE, FILTER, ALL, RELATED, time intelligence functions and iterators like SUMX.
31

The total row of a table shows a different value than the sum of rows. Is this a bug?

DAX FundamentalsIn 5 company setsMedium
Save to ▾
Show answer
Usually not. A measure's total is calculated in the total's own filter context, not by adding the visible rows. For non-additive measures like averages, distinct counts or ratios this differs from the row sum. If business wants the sum of rows, I write it explicitly with SUMX over the row values, for example SUMX(VALUES('Product'[Product]), [My Measure]).
32

Your calculated columns have made the model huge. What do you do?

DAX FundamentalsIn 5 company setsMedium
Save to ▾
Show answer
I would move simple row-level logic into Power Query or the source SQL, where it compresses better and can fold, and replace aggregations stored as columns with measures. High-cardinality columns such as concatenated keys or precise timestamps should be removed or split. Then check model size with VertiPaq Analyzer in DAX Studio to confirm which columns used the most memory.
33

Write a measure that counts customers with sales above 10,000.

DAX FundamentalsIn 5 company setsMedium
Save to ▾
Show answer
Big Customers = COUNTROWS( FILTER( VALUES(Customer[CustomerID]), [Total Sales] > 10000 ) ) Iterating VALUES of the customer key keeps the loop small and respects current filters such as year or region.
34

How do you choose the right chart type in Power BI?

Visualisation and Report DesignIn 5 company setsEasy
Save to ▾
Show answer
Match the chart to the question. Use bar or column charts to compare categories, line charts for trends over time, stacked bars for part-to-whole across few categories, scatter charts for relationships, maps only for true geographic patterns, cards and KPI visuals for single numbers, and tables or matrices when users need exact values. Avoid pie charts with more than four or five slices.
35

What are tooltips and report page tooltips?

Visualisation and Report DesignIn 5 company setsMedium
Save to ▾
Show answer
Default tooltips show field values when hovering over a data point. Report page tooltips let you design a small custom page, set as a tooltip page type, showing extra visuals like a mini trend chart for the hovered category. They add detail without cluttering the main page. Keep tooltip pages light because they run queries on every hover.
36

How do you design reports for accessibility?

Visualisation and Report DesignIn 5 company setsMedium
Save to ▾
Show answer
Use sufficient colour contrast and do not rely on colour alone, for example add icons or labels to red and green. Set alt text on visuals, a logical tab order in the selection pane, clear titles and readable font sizes. Avoid tiny text and very dense pages. Power BI supports screen readers and keyboard navigation, and high-contrast themes help users with low vision.
37

Users complain the report page is cluttered with 22 visuals. How do you redesign it?

Visualisation and Report DesignIn 5 company setsMedium
Save to ▾
Show answer
I would ask which decisions the page supports and keep only visuals that answer those questions. Then group related KPIs into a top row of cards, keep two or three main charts, and move details to drill-through or tooltip pages. Slicers can move into a collapsible panel using bookmarks. Fewer visuals also make the page load faster.
38

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.
39

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.
40

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.
41

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.
42

What is Power BI and what are its main components?

Power BI FundamentalsIn 4 company setsEasy
Save to ▾
Show answer
Power BI is a business intelligence platform for connecting to data, modelling it and building interactive reports and dashboards. Main components are Power BI Desktop for building reports, Power BI Service (part of Microsoft Fabric) for publishing, sharing and refresh, Power BI Mobile apps for viewing, the on-premises data gateway for refreshing local sources, and Power BI Report Server for fully on-premises hosting of paginated and Power BI reports.
43

What is the difference between a report and a dashboard in Power BI?

Power BI FundamentalsIn 4 company setsEasy
Save to ▾
Show answer
A report is a multi-page, fully interactive document built on one semantic model, with slicers, filters, drill-through and cross-highlighting. A dashboard is a single-page canvas in the Power BI Service made of pinned tiles that can come from several reports and models; it is used for a quick at-a-glance view. Dashboards are created only in the Service, while reports are usually built in Desktop.
44

Explain the typical Power BI workflow from data to insight.

Power BI FundamentalsIn 4 company setsEasy
Save to ▾
Show answer
First connect to sources such as Excel, SQL Server or SharePoint and clean the data in Power Query. Then build a data model with relationships, ideally a star schema, and write DAX measures. Next design report visuals and interactions in Desktop. Publish to a workspace in the Power BI Service, set scheduled refresh through a gateway if needed, apply row-level security and share through an app or dashboard.
45

What are Import, DirectQuery and Live Connection modes?

Power BI FundamentalsIn 4 company setsMedium
Save to ▾
Show answer
Import loads a compressed copy of data into the in-memory VertiPaq engine, giving the fastest queries but requiring refresh. DirectQuery sends queries to the source at view time, so data is current but performance depends on the source and some DAX is limited. Live Connection connects a report to an existing semantic model or Analysis Services model without its own model. Composite models mix Import and DirectQuery tables.
46

What is the relationship between Power BI and Microsoft Fabric?

Power BI FundamentalsIn 4 company setsMedium
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.
47

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

Power BI FundamentalsIn 4 company setsMedium
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.
48

Create a date table in Power Query using M.

Save to ▾
Show answer
let StartDate = #date(2022, 1, 1), EndDate = #date(2026, 12, 31), Days = Duration.Days(EndDate - StartDate) + 1, Dates = List.Dates(StartDate, Days, #duration(1, 0, 0, 0)), T = Table.FromList(Dates, Splitter.SplitByNothing(), {"Date"}), Typed = Table.TransformColumnTypes(T, {{"Date", type date}}), Y = Table.AddColumn(Typed, "Year", each Date.Year([Date]), Int64.Type), M = Table.AddColumn(Y, "Month", each Date.MonthName([Date]), type text) in M
49

What are active and inactive relationships?

Data ModellingIn 4 company setsMedium
Save to ▾
Show answer
Only one active relationship can exist between two tables along a filter path; additional relationships become inactive and appear as dashed lines. For example, Sales may have OrderDate and ShipDate both linked to Date, with OrderDate active. An inactive relationship is used only inside a measure with USERELATIONSHIP, such as CALCULATE([Sales], USERELATIONSHIP(Sales[ShipDate], 'Date'[Date])).
50

A slicer on Product Category does not filter the Targets visual. What do you check?

Data ModellingIn 4 company setsMedium
Save to ▾
Show answer
I would check the relationship path in model view: whether Targets is related to the Product or Category dimension at all, whether the relationship is active, and its cross-filter direction. If Targets are at category level, it needs a relationship to a Category table that also filters Product. Also check whether visual interactions were turned off for that slicer and whether the measure uses ALL or REMOVEFILTERS.

Frequently asked questions

How is this list made?

We count how often each question appears across the 20 company-wise Power BI practice sets on this site and show the 50 most common. They are the safest questions to master first.

Is this enough to clear an interview?

It is the best starting point, not the finish line. After these, practise the company pages for your target employers and the sheets for your weaker topics.