Power BI Interview Questions

TL;DR

30+ Power BI interview questions organized by topic. Click "Show Answer" to reveal. Focus on DAX and Data Modeling — they come up in every interview.

Short on time? Focus on DAX and Data Modeling — these are the top two categories interviewers ask about.

Power BI Basics

Q: What are the main components of Power BI?

Power BI Desktop (build reports), Power BI Service (publish, share, collaborate in cloud), Power BI Mobile (view on devices), Power BI Report Server (on-premises), Power BI Embedded (embed in apps).

Q: What is the difference between a report and a dashboard?

Report: multi-page, built in Desktop from one dataset, fully interactive (slicers, drill-through). Dashboard: single-page in Service, pins visuals from multiple reports, click-to-navigate only. Reports are for analysis; dashboards for monitoring.

Q: What are the different data connectivity modes?

Import: loads into VertiPaq in-memory engine (fast, snapshot). DirectQuery: sends queries to source in real-time (always current, slower). Live Connection: connects to SSAS/Power BI datasets. Composite: mix Import and DirectQuery tables in one model.

Q: What is Power BI Premium and how is it different from Pro?

Pro ($10/user/mo): share with other Pro users, 8 refreshes/day, 1GB dataset limit. Premium (per capacity): share with free users, 48 refreshes/day, up to 400GB datasets, paginated reports, XMLA endpoint, deployment pipelines, AI features. Premium Per User (PPU) is a middle ground at $20/user/mo.

Q: What is a Power BI workspace?

A workspace is a container in Power BI Service for organizing reports, dashboards, datasets, and dataflows. Teams collaborate within workspaces. Roles: Admin, Member, Contributor, Viewer. The "My Workspace" is personal; shared workspaces are for team content.

Power Query / ETL

Q: What is Power Query and what language does it use?

Power Query is the data transformation engine (ETL). It uses the M language (Power Query Formula Language). Each transformation step in the UI generates M code. You can edit it directly in the Advanced Editor.

Q: What is the difference between Merge and Append in Power Query?

Merge: like a SQL JOIN — combines columns from two tables based on a matching key. Append: like SQL UNION ALL — stacks rows from two tables with the same columns on top of each other.

Q: What is query folding and why does it matter?

Query folding is when Power Query translates your transformation steps into native SQL that runs on the source database. This is faster because the database does the heavy lifting instead of Power BI. Not all steps fold — adding a custom column in M may break folding. Check by right-clicking a step → "View Native Query."

Q: What is the difference between a parameter and a function in Power Query?

Parameter: a reusable value (e.g., server name, file path) that can be changed without editing queries. Function: a reusable transformation that takes inputs and returns a table or value. Functions are used to apply the same logic to multiple tables (e.g., transforming each month's file the same way).

Deeper coverage: Power Query in Core Concepts

Data Modeling

Q: What is a star schema and why is it recommended?

A central fact table (measures/metrics) surrounded by dimension tables (attributes), connected via one-to-many relationships. Recommended because: (1) Power BI's VertiPaq engine is optimized for it, (2) DAX formulas work predictably, (3) simpler to understand and maintain, (4) better compression = smaller file sizes.

Q: What is the difference between a fact table and a dimension table?

Fact table: contains numeric measures (sales amount, quantity, cost) and foreign keys. Usually the largest table. Rows represent events/transactions. Dimension table: contains descriptive attributes (product name, category, region). Usually smaller. Rows represent entities. Dimensions filter facts.

Q: Explain cross-filter direction. When would you use bidirectional?

Single: filters flow from dimension to fact (default, recommended). Bidirectional: filters flow both ways. Use sparingly — only for specific patterns like bridge tables in many-to-many relationships. Bidirectional filtering can cause ambiguity, performance issues, and unexpected results.

Q: How do you handle a many-to-many relationship?

Use a bridge table (junction table). Example: Students and Classes have M:M. Create a StudentClass bridge table with StudentID and ClassID. Student 1:* Bridge *:1 Class. In Power BI, set the bridge table relationships with single cross-filter direction, or use a limited bidirectional on one side.

Q: What is an inactive relationship and when would you use one?

A relationship that exists but isn't used by default. Only one active relationship can exist between two tables. Activate in DAX with USERELATIONSHIP(). Example: Sales has OrderDate and ShipDate, both relating to Calendar. Make OrderDate active, ShipDate inactive. Use CALCULATE([Total Sales], USERELATIONSHIP(Sales[ShipDate], Calendar[Date])) when needed.

Q: What is row-level security (RLS)? How do you implement it?

RLS restricts data at the row level per user. Implementation: (1) In Desktop, create roles with DAX filter expressions (e.g., [Region] = "West" or [Email] = USERPRINCIPALNAME()). (2) In Service, assign users to roles. (3) Test with "View as Role" in Desktop. Dynamic RLS uses USERPRINCIPALNAME() to filter based on logged-in user, avoiding one role per region.

Deeper coverage: Data Model in Core Concepts

DAX

Q: What is filter context vs row context?

Filter context: the set of active filters when a measure evaluates (from slicers, axes, cross-filters, CALCULATE). Row context: the current row during iteration (in calculated columns, SUMX, FILTER). CALCULATE inside a row context triggers "context transition" — converting row context to filter context.

Q: Explain what CALCULATE does with an example.

CALCULATE evaluates an expression in a modified filter context. Example: East Sales = CALCULATE([Total Sales], Region[Name] = "East"). Regardless of what the user selects in a region slicer, this measure always returns East sales. CALCULATE replaced the region filter with "East".

Q: What is the difference between SUM and SUMX?

SUM adds values from a single column. SUMX iterates row by row, evaluates an expression per row, then sums the results. Use SUMX when you need row-level math first: SUMX(Sales, Sales[Qty] * Sales[Price]). SUM is faster when the column already exists.

Q: Write a measure for year-over-year growth percentage.

YoY Growth % =
  VAR CurrentYear = [Total Sales]
  VAR PriorYear = CALCULATE([Total Sales], SAMEPERIODLASTYEAR(Calendar[Date]))
  RETURN DIVIDE(CurrentYear - PriorYear, PriorYear)

Q: What is ALL() used for? Give two different use cases.

(1) Remove filters: CALCULATE([Total Sales], ALL(Products)) — returns total sales ignoring any product filters. Used for % of total calculations. (2) As a table function: RANKX(ALL(Products), [Total Sales]) — returns a table of all products regardless of filters, used as the ranking universe.

Q: How do you calculate a running total in DAX?

Running Total = CALCULATE(
  [Total Sales],
  FILTER(
    ALL(Calendar[Date]),
    Calendar[Date] <= MAX(Calendar[Date])
  )
)

ALL(Calendar[Date]) removes the date filter, FILTER re-applies it as "all dates up to the current date."

Deeper coverage: DAX Essentials Deep Dive

Visualization & Reporting

Q: What is drill-through and how does it differ from drill-down?

Drill-down: go deeper within a hierarchy on the same visual (Year → Quarter → Month). Drill-through: right-click a data point to navigate to a detail page filtered to that value. Drill-down stays on the page; drill-through goes to another page.

Q: What are bookmarks and how are they useful?

Bookmarks save the current state of a report page (filters, slicers, visual visibility, sort order). Use cases: (1) toggle between views (chart vs table), (2) create guided navigation/storytelling, (3) reset all slicers button, (4) show/hide information panels.

Q: How do you optimize a slow Power BI report?

(1) Use Performance Analyzer to find slow visuals. (2) Reduce model size — remove unused columns/tables. (3) Star schema over flat tables. (4) Push transformations to Power Query. (5) Measures over calculated columns. (6) Avoid bidirectional cross-filtering. (7) Use VAR in DAX. (8) Reduce visual count per page. (9) Use aggregation tables for large datasets. (10) Check for expensive DAX patterns (nested FILTER inside CALCULATE).

Administration & Deployment

Q: What is a gateway and when do you need one?

A gateway bridges on-premises data sources to Power BI cloud service for scheduled refresh. Needed when data is behind a firewall (SQL Server, file shares, Oracle). Two types: personal (single user) and enterprise/standard (shared, managed by IT). Cloud sources (Azure SQL, SharePoint Online) don't need a gateway.

Q: What is incremental refresh?

Instead of refreshing the entire dataset, only new/changed data is refreshed. Configured by defining a date range: rows in the "incremental" window are refreshed, historical rows are frozen. Reduces refresh time dramatically for large datasets. Requires RangeStart/RangeEnd parameters in Power Query.

Q: What are deployment pipelines?

A Premium feature for managing content lifecycle: Development → Test → Production. Each stage is a separate workspace. Deploy content between stages with one click, with rules to swap data source connections per stage. Prevents untested changes from reaching production users.