Power BI Interview Questions

DAX, Power Query and data modelling questions.

20 questions · Updated Nov 2026

Power BI Interview Questions and Answers

Power BI is Microsoft's business-intelligence platform for modelling data and building interactive dashboards. Interviews cover Power Query, data modelling, DAX and sharing/refresh.

These Power BI interview questions and answers progress from the basics to advanced DAX and modelling.

Beginner Beginner Level Questions

Power BI is Microsoft's business-intelligence tool for connecting to data, modelling it, and building interactive reports/dashboards. Main parts: Power BI Desktop (authoring), the Power BI Service (sharing online), and Power BI Mobile.

Power Query (M) is used to get and transform data before it loads (cleaning, shaping, merging). DAX is used after loading to create calculations — measures and calculated columns — on the model.

A calculated column is computed row-by-row and stored in the table (uses memory). A measure is computed on the fly based on the current filter context and is ideal for aggregations like Total Sales = SUM(Sales[Amount]).

A wide range: Excel/CSV files, folders, SQL Server and other databases, SharePoint, web pages/APIs, OData, and cloud services. Power Query handles the connection and transformation for each.

A slicer is an on-canvas filter that lets report viewers interactively filter visuals by clicking values (e.g. year, region). It makes dashboards self-service without editing the report.

Power BI Desktop saves reports as .pbix files, which contain the data model, queries, measures and visuals. Templates are saved as .pbit.

Intermediate Intermediate Level Questions

A star schema has one or more fact tables (transactions/measures) linked to dimension tables (date, product, customer). It keeps the model simple, makes DAX easier and faster, and is the recommended modelling pattern in Power BI.

CALCULATE evaluates an expression in a modified filter context. Example: Sales East = CALCULATE(SUM(Sales[Amount]), Region[Name] = "East"). It is the most important DAX function because it lets you change what filters apply.

A relationship links tables on a key so filters flow between them. Cardinality describes how rows match: one-to-many (most common), one-to-one, or many-to-many. Direction can be single or both; single is preferred for predictable results.

RLS restricts which rows a user can see by applying DAX filters to roles. For example, a regional manager sees only their region. You define roles in Desktop and assign users in the Service.

SUM adds a single column directly. SUMX is an iterator that evaluates an expression row by row then sums the results — e.g. SUMX(Sales, Sales[Qty] * Sales[Price]) computes line totals before summing.

A calculated table is a table created with a DAX expression (e.g. a date table with CALENDAR, or a filtered copy of another table). It is stored in the model and refreshes with the data.

Create one with CALENDAR(start, end) or CALENDARAUTO() plus columns for Year, Month, etc., then mark it as the date table. It is required for reliable time-intelligence (YTD, YoY) and consistent date filtering across visuals.

Advanced Advanced Level Questions

Row context exists when a formula iterates a table row by row (e.g. a calculated column or SUMX). Filter context is the set of filters applied by slicers, rows/columns and CALCULATE. Understanding how they interact — and how CALCULATE turns row context into filter context — is key to correct measures.

Mark a proper Date table, then use DAX time-intelligence: YTD = TOTALYTD(SUM(Sales[Amount]), Dates[Date]) and year-over-year with SAMEPERIODLASTYEAR, e.g. PY = CALCULATE([Sales], SAMEPERIODLASTYEAR(Dates[Date])) then YoY% = DIVIDE([Sales]-[PY],[PY]).

Import loads data into Power BI's in-memory model (fast, needs refresh). DirectQuery queries the source live (fresh data, slower, limited DAX). Live Connection connects to an existing model (e.g. Analysis Services) without importing. Choose based on data size and freshness needs.

Reduce the model: remove unused columns, prefer measures over calculated columns, use a star schema, disable auto date/time, set correct data types, and reduce visuals per page. Use Performance Analyzer to find slow visuals and tune the underlying DAX.

Within CALCULATE: ALL removes all filters from a table/column; ALLEXCEPT removes all filters except the listed columns; REMOVEFILTERS is the modern, clearer equivalent of ALL for clearing filter context — commonly used to compute "% of total".

A bidirectional relationship lets filters flow both ways between tables. It is useful for certain many-to-many scenarios but risky because it can create ambiguous filter paths, slow performance and unexpected results. Prefer single-direction and solve edge cases with DAX.

Publish the .pbix to the Power BI Service, place it in a workspace/app, and share with users (respecting RLS). For imported data, configure a gateway (for on-prem sources) and set a scheduled refresh so the dataset updates automatically.