Power BI Interview Questions (2026): 20 with Clear Answers
Power BI interviews test five areas: data modelling, DAX evaluation context, row-level security, performance, and the Power BI service with gateways and refresh. These 20 questions cover all five with short, accurate answers and DAX you can type into Power BI Desktop, ending with a scenario question of the kind that separates report builders from analysts. Every answer was checked against Microsoft Learn in October 2026.
At a glance
| Area | Questions | What interviewers listen for |
|---|---|---|
| Data modelling | 1 to 6 | Star schema, relationships, storage modes |
| DAX | 7 to 12 | Row context, filter context, CALCULATE |
| Row-level security | 13 to 15 | Static vs dynamic, who it applies to |
| Performance | 16 and 17 | A method, not guesses |
| Service and gateways | 18 and 19 | Refresh, gateways, incremental refresh |
| Scenario | 20 | Putting it all together |
Data modelling (questions 1 to 6)
1. What is a star schema, and why does Power BI prefer it?
A star schema has fact tables (events you summarise, such as sales lines) surrounded by dimension tables (things you filter and group by, such as date, product and customer). Microsoft's star schema guidance explains that every visual sends a query that filters, groups and summarises, and a star schema gives the model tables for exactly those jobs. In a one-to-many relationship, the "one" side is the dimension and the "many" side is the fact. Avoid one wide flat table that mixes facts and dimensions: it usually makes the model bigger and the DAX harder.
2. What is the difference between a calculated column and a measure?
A calculated column is computed row by row at refresh time and stored in the model, so it uses memory. A measure is computed at query time, in the filter context of each visual cell. Use columns for values you slice or filter by, and measures for anything you aggregate.
Line Total = Sales[Quantity] * Sales[Unit Price] -- calculated column
Total Sales = SUM ( Sales[Sales Amount] ) -- measure
3. What are cardinality and cross-filter direction?
Cardinality describes how rows match: one-to-many, one-to-one or many-to-many. Cross-filter direction decides which way filters flow. For one-to-many, filters always flow from the one side and can optionally flow both ways. Microsoft recommends using bi-directional relationships sparingly because they can hurt performance and create confusing results. When one measure needs it, turn it on inside that measure with CROSSFILTER instead of on the relationship.
4. How do you handle two dates in one fact table, such as order date and ship date?
That is a role-playing dimension. Only one relationship between two tables can be active, so make Order Date active, create the Ship Date relationship as inactive, and activate it in a measure:
Sales by Ship Date =
CALCULATE (
[Total Sales],
USERELATIONSHIP ( Sales[ShipDateKey], 'Date'[DateKey] )
)
The alternative is to load the date table twice, once per role, which is simpler for report users who need both at once.
5. Why do you need a separate date table?
Time intelligence needs a date table with a date column that has unique values, no blanks and no missing dates, and that spans full years. With the classic time intelligence functions you must also mark it as a date table. Microsoft now recommends its calendar-based time intelligence, which handles fiscal and week-based calendars better, though it is still in preview. Mentioning both shows you are current.
6. Compare Import, DirectQuery, Dual and Direct Lake
| Mode | Where the data lives | Best for |
|---|---|---|
| Import | Compressed in the model | Fast reports with scheduled refresh |
| DirectQuery | Stays in the source | Very large or near real-time data |
| Dual | Both, chosen per query | Dimensions shared with DirectQuery facts |
| Direct Lake | Delta tables in OneLake | Large Fabric data without import refresh |
A model that mixes modes is a composite model. Direct Lake requires a Fabric capacity. The PL-300 exam explicitly asks you to choose between Direct Lake, DirectQuery and Import, so expect a "which would you pick and why" follow-up.
DAX (questions 7 to 12)
7. What is the difference between row context and filter context?
Row context is "the current row". It exists in calculated columns and inside iterator functions such as SUMX. Filter context is the set of filters that apply to a calculation: slicers, visual axes, page filters, relationships and filters written in DAX. Measures are evaluated in filter context. Most DAX mistakes come from mixing the two up.
8. What does CALCULATE do?
CALCULATE evaluates an expression in a modified filter context. Each filter argument adds a filter, and if that column is already filtered, the new filter replaces the existing one.
Store Sales =
CALCULATE ( [Total Sales], Channel[ChannelName] = "Store" )
If a user selects "Online" in a slicer, this measure still shows Store sales, because the filter on ChannelName is overwritten. Wrap the filter in KEEPFILTERS if you want it to intersect with the slicer instead.
9. What is context transition?
When CALCULATE runs inside a row context, it turns the current row into an equivalent filter context. In a calculated column on the Customer table:
All Sales = SUM ( Sales[Sales Amount] ) -- same grand total on every row
Customer Sales = CALCULATE ( SUM ( Sales[Sales Amount] ) ) -- each customer's own sales
The second column works because context transition filters Sales to the current customer. Referencing a measure inside a row context triggers context transition automatically, which is why [Total Sales] behaves like the second line.
10. What is the difference between SUM and SUMX?
SUM adds up one column. SUMX is an iterator: it evaluates an expression for each row of a table, then adds the results. Use SUMX when the value must be computed per row first.
Revenue = SUMX ( Sales, Sales[Quantity] * Sales[Unit Price] )
11. How do you calculate each region's share of total sales?
Remove the filter on Region in the denominator, and use DIVIDE so an empty denominator returns blank instead of an error.
% of All Regions =
DIVIDE (
[Total Sales],
CALCULATE ( [Total Sales], REMOVEFILTERS ( Region ) )
)
REMOVEFILTERS and ALL behave the same as filter modifiers here. Microsoft suggests REMOVEFILTERS when your tool supports it, because the name says what it does. ALLEXCEPT removes all filters on a table except the columns you name.
12. Write year-to-date and year-on-year measures for an Indian financial year
The Indian financial year ends on 31 March, so pass a year-end date to TOTALYTD:
Sales FYTD = TOTALYTD ( [Total Sales], 'Date'[Date], "3/31" )
Sales LY = CALCULATE ( [Total Sales], SAMEPERIODLASTYEAR ( 'Date'[Date] ) )
Sales YoY % =
VAR CurrentSales = [Total Sales]
VAR LastYearSales = [Sales LY]
RETURN
DIVIDE ( CurrentSales - LastYearSales, LastYearSales )
Variables make the measure easier to read and avoid calculating the same value twice. Microsoft's documentation recommends writing the year-end as "month/day", as above.
Row-level security (questions 13 to 15)
13. What is the difference between static and dynamic RLS?
Static RLS uses a fixed value in each role, so you need one role per region. Dynamic RLS uses one role whose rule compares a column with the signed-in user, usually through a user-mapping table related to the data.
[Region] = "South" -- static rule on the Region table
[UserEmail] = USERPRINCIPALNAME () -- dynamic rule on a user-mapping table
You define roles in Power BI Desktop, but you assign people to them in the Power BI service. Map roles to security groups rather than individual users wherever you can.
14. Who does RLS apply to?
In a workspace, RLS applies to members with the Viewer role, even if they also have Build permission on the semantic model. Admins, Members and Contributors can edit the model, so RLS does not filter what they see. This is a classic trick question: a manager added as Member sees everything. Test roles with View as in Desktop or Test as role in the service, remembering that Test as role uses your own identity for dynamic rules.
15. How do you keep RLS fast?
Put RLS filters on dimension tables and let active relationships carry them to the facts. RLS filters only travel through active relationships, so avoid LOOKUPVALUE where a relationship would work. Measure the cost with Performance Analyzer, with and without View as.
Performance (questions 16 and 17)
16. A report page is slow. How do you find out why?
Open Performance Analyzer from the Optimize ribbon, start recording and refresh the visuals. For each visual it splits the time into DAX query, Direct query (for DirectQuery tables), Visual display and Other. A slow DAX query points to the model or the measure: copy it into DAX query view and test changes. A slow visual display points to too many data points or heavy custom visuals. "Other" often means too many visuals queued on one page.
17. How do you reduce the size of an Import model?
Microsoft's data reduction techniques are the checklist interviewers expect:
- Remove columns that no report, relationship or measure uses.
- Load only the history you need, using Power Query parameters.
- Group and summarise the fact table to a higher grain where detail is not needed.
- Convert text keys to numbers where possible, because numeric columns compress better.
- Keep transformations foldable to the source, so the database does the heavy lifting.
Service and gateways (questions 18 and 19)
18. When do you need a gateway, and which type?
You need a gateway when the Power BI service cannot reach the data over the internet, such as a SQL Server in your office or factory network. The standard mode gateway is shared, centrally managed and supports scheduled refresh, DirectQuery and live connections. The personal mode gateway serves one user, supports only Import refresh, and should not be used for team or enterprise reports. A virtual network data gateway connects to data secured inside an Azure virtual network without installing anything locally.
19. What is incremental refresh, and what does it need?
Incremental refresh splits a large table into date partitions and refreshes only the recent ones. You create two Date/Time parameters named exactly RangeStart and RangeEnd, filter the date column with them (with an equals sign on only one side, or rows can be duplicated), and define the policy in Desktop. The source should support query folding, otherwise Power BI may pull every row and filter locally, which defeats the purpose. It works with Pro, Premium Per User, Premium and Embedded models; adding a real-time DirectQuery partition needs Premium, Premium Per User or Embedded.
Scenario (question 20)
20. "Regional managers across India should see only their own region's sales. Data is in an on-premises SQL Server updated nightly, and the report must load quickly. How would you build it?"
A strong answer, in order:
- Model: a star schema with a Sales fact and Date, Product, Store and Region dimensions, plus a user-mapping table of manager email and region.
- Storage and refresh: Import mode with a scheduled refresh after the nightly load, through a standard mode gateway, and incremental refresh on the Sales fact.
- Security: one dynamic RLS role,
[UserEmail] = USERPRINCIPALNAME ()on the mapping table, filtering Region and flowing to Sales. Map the role to a security group, share through an app to Viewers, and test with View as. - Performance: measures instead of calculated columns for totals, no unnecessary bi-directional relationships, and a Performance Analyzer check before go-live.
- Governance: a date table marked for the April to March financial year, and a certified or promoted semantic model so other reports reuse it.
Ending with "and I would confirm the region list and fiscal calendar with the business first" shows judgement, not just tool knowledge.
How to prepare
Build one small model yourself and practise saying every answer aloud while pointing at it. The PL-300 study guide, with skills measured as of 20 April 2026, is a good map: preparing, modelling, and visualising and analysing data are each 25 to 30% of the exam, and managing and securing Power BI is 15 to 20%. Our PL-300 exam guide for India explains the exam, the Power BI course syllabus guide shows what to learn in order, and our SQL interview questions cover the other half of most analyst interviews.
How CertTulen Academy can help
CertTulen Academy, a Microsoft Training Services Partner, runs the PL-300 Microsoft Power BI Data Analyst course as live, MCT-led online training with hands-on labs on modelling, DAX, RLS and the Power BI service. Professional certification courses include an exam voucher, mock practice tests and lab access; the course page has the details. Teams can book a private corporate cohort. Message us on WhatsApp at +91 93618 83583 or use our contact page for a batch that suits you.
Frequently Asked Questions
What DAX functions should I know for a Power BI interview?+
Be fluent with SUM, COUNTROWS, DIVIDE, CALCULATE, FILTER, ALL or REMOVEFILTERS, ALLEXCEPT, KEEPFILTERS, RELATED, USERELATIONSHIP, the iterators such as SUMX and AVERAGEX, and the time intelligence functions TOTALYTD, SAMEPERIODLASTYEAR and DATEADD. Knowing fewer functions well, and explaining the filter context each one creates, impresses more than listing many.
Do I need the PL-300 certification to get a Power BI job?+
No single certification is required for Power BI roles, but PL-300 gives employers structured proof that you know modelling, DAX, security and the service. Pair it with a portfolio report you built yourself, because interviewers usually ask you to walk through a real model. The certification is valid for a year and can be renewed free online.
What is the difference between a Power BI report, dashboard and app?+
A report is a multi-page, interactive set of visuals built on one semantic model. A dashboard is a single page in the service made of tiles pinned from one or more reports. An app packages content from a workspace and distributes it to a wider audience, who view it without needing access to the workspace itself.
How should I explain a Power BI project in an interview?+
Use a simple sequence: the business question, the data sources, how you cleaned the data in Power Query, the star schema you built, two or three key measures, how you secured and refreshed it, and what decision the report supported. Keep it under three minutes, then let the interviewer pick a part to go deeper into.
Is Power BI still worth learning now that Microsoft Fabric exists?+
Yes. Power BI is the reporting and semantic model layer of Microsoft Fabric, so modelling, DAX and security skills carry straight over. Fabric adds data engineering and warehousing around it, and features such as Direct Lake connect Power BI to Fabric data. Learn Power BI first, then the Fabric pieces your role needs.
Sources
- Understand star schema and the importance for Power BI
- CALCULATE
- Row-level security (RLS) with Power BI
- Table storage mode in Power BI semantic models
- On-premises data gateways in Power BI
- Configure incremental refresh and real-time data for Power BI semantic models
- Use Performance Analyzer to examine report performance
- Study guide for Exam PL-300: Microsoft Power BI Data Analyst
Checked on 25 October 2026. Exams, products and rules change, so confirm on the official page before you book or decide.
Written by
Microsoft Certified Trainer (MCT), founder of CertTulen Academy
CertTulen Academy · Microsoft Training Services Partner · Microsoft AI Cloud Partner

