PapersAdda

Power Bi Interview Questions

30 min read
Interview Questions
Advertisement Placement

Power BI Interview Questions and Answers 2026: Complete Guide for Freshers & Professionals

Last Updated: March 2026 | Level: Beginner to Advanced | Format: Q&A with DAX/M Code Examples

Power BI has become the industry-standard business intelligence tool, used by over 97% of Fortune 500 companies. Whether you're a fresher targeting data analyst roles or an experienced professional switching to BI, Power BI interview questions are a staple in placements at companies like Microsoft, Deloitte, Accenture, TCS, Infosys, EY, and hundreds of data-driven organizations. This guide covers 30 carefully curated questions — from fundamentals to advanced optimization — with detailed answers and real code snippets to give you interview-ready confidence.


Table of Contents

  1. Power BI Basics (Q1–Q5)
  2. Data Modeling (Q6–Q10)
  3. DAX – Data Analysis Expressions (Q11–Q17)
  4. Power Query / M Language (Q18–Q22)
  5. Visualization & Reporting (Q23–Q26)
  6. Admin & Deployment (Q27–Q29)
  7. Advanced Topics (Q30)
  8. Tips for Power BI Interviews
  9. Conclusion

Power BI Basics

Q1. What is Power BI and what are its key components? Easy

ComponentDescription
Power BI DesktopFree Windows application for building reports and data models
Power BI ServiceCloud-based SaaS platform (app.powerbi.com) for publishing, sharing, and collaboration
Power BI MobileNative apps for iOS, Android, and Windows for consuming reports on the go
Power BI Report ServerOn-premises report server for organizations with strict data residency requirements
Power BI EmbeddedAPIs and SDKs to embed Power BI content into custom applications
Power BI GatewayBridge that enables secure data transfer between on-premises data and Power BI Service

Key workflow: Connect → Transform (Power Query) → Model (Relationships + DAX) → Visualize → Publish → Share.


Q2. What is the difference between Power BI Desktop and Power BI Service? Easy

FeaturePower BI DesktopPower BI Service
TypeWindows desktop applicationCloud-based SaaS (browser)
CostFreeFree (limited) + Pro/Premium licensing
Primary UseAuthor reports, build data models, write DAXPublish, share, collaborate, schedule refresh
Data TransformationFull Power Query EditorLimited (Dataflows)
DAX AuthoringFull supportLimited to quick measures
DashboardsNot available (only reports)Create dashboards by pinning report visuals
CollaborationSingle userMulti-user sharing, workspaces, apps
Row-Level SecurityDefine rolesDefine + enforce roles

Key insight: Power BI Desktop is where you build; Power BI Service is where you share. Reports are authored in Desktop and published to Service. Dashboards exist only in the Service.


Q3. What is Power Query and what role does it play in Power BI? Easy

Power Query handles the ETL (Extract, Transform, Load) pipeline:

  1. Extract — Connect to databases, APIs, files (CSV, Excel, JSON), web pages, SharePoint, etc.
  2. Transform — Remove duplicates, split columns, pivot/unpivot, merge queries, handle nulls, change data types, add custom/conditional columns
  3. Load — Push cleaned data into the Power BI data model for analysis

Example — Cleaning a date column in M:

= Table.TransformColumns(Source, {{"OrderDate", each Date.From(_), type date}})

Why it matters in interviews: Interviewers test whether you understand that data preparation (80% of BI work) happens in Power Query before data reaches the model — not in DAX.


Q4. What is DAX? How is it different from Power Query (M)? Easy

AspectDAXPower Query (M)
PurposeAnalysis & calculations on modeled dataData extraction & transformation before loading
Where it runsData model (after load)Power Query Editor (before load)
Language styleExcel-like formula syntaxFunctional programming language
Operates onTables and columns in the modelData streams / query steps
Use caseMeasures, KPIs, time intelligence, aggregationsCleaning, merging, shaping raw data

DAX example — Year-over-Year Growth:

YoY Growth % = 
DIVIDE(
    [Total Sales] - CALCULATE([Total Sales], SAMEPERIODLASTYEAR('Date'[Date])),
    CALCULATE([Total Sales], SAMEPERIODLASTYEAR('Date'[Date])),
    0
)

Rule of thumb: If you're cleaning/shaping data → Power Query. If you're analyzing/calculating data → DAX.


Q5. What are the different data connectivity modes in Power BI? Easy

ModeHow It WorksWhen to Use
ImportData is copied into Power BI's in-memory engine (VertiPaq). Queries run against the local cache.Default mode. Best for small–medium datasets (<1 GB). Fastest query performance.
DirectQueryNo data is imported. Every interaction sends a live query to the source database.Large datasets, real-time requirements, data that can't leave the source.
Live ConnectionSimilar to DirectQuery but specifically for Analysis Services (SSAS) or Power BI datasets. The model lives externally.When an enterprise semantic model already exists in SSAS or a shared Power BI dataset.

Import vs DirectQuery trade-offs:

FactorImportDirectQuery
Performance⚡ Fast (in-memory)🐢 Depends on source
Data freshnessScheduled refresh (up to 8x/day Pro, 48x Premium)Real-time
DAX supportFullSome limitations
Dataset size1 GB (Pro) / 10+ GB (Premium)Unlimited (source-dependent)
TransformationsFull Power QueryLimited

Data Modeling

        [DimDate]
            |
[DimProduct]---[FactSales]---[DimCustomer]
            |
       [DimStore]

Why Power BI prefers Star Schema:

  • VertiPaq compression — Dimension tables with low cardinality compress extremely well, reducing memory usage by 10x or more
  • Filter propagation — Filters flow naturally from dimensions → fact tables via one-to-many relationships
  • DAX performance — CALCULATE, FILTER, and context transition work predictably when the model is a clean star
  • Simplicity — Users can drag-and-drop fields intuitively; no ambiguous paths
  • Best practice — Microsoft's own documentation explicitly recommends Star Schema over flat/denormalized tables

Anti-pattern to avoid: A single wide table with 50+ columns. It seems simpler but kills VertiPaq compression, creates ambiguous relationships, and makes DAX harder to write.


Q7. Explain relationships in Power BI — types, cardinality, and cross-filter direction. Medium

Cardinality types:

CardinalityDescriptionExample
One-to-Many (1:*)One row in table A relates to many rows in table BOne Product → Many Sales
Many-to-One (*:1)Reverse of above — same relationship, different perspectiveMany Sales → One Product
One-to-One (1:1)One row maps exactly to one rowEmployee → EmployeeDetail
Many-to-Many (:)Multiple rows on both sidesStudents ↔ Courses

Cross-filter direction:

  • Single (default for 1:*) — Filters flow from the "one" side to the "many" side only (Dimension → Fact)
  • Both (bidirectional) — Filters flow in both directions. Use sparingly — can cause ambiguity, performance issues, and unexpected results

Best practices:

  • ✅ Prefer One-to-Many relationships
  • ✅ Use Single cross-filter direction by default
  • ❌ Avoid bidirectional unless absolutely necessary (e.g., many-to-many bridge tables)
  • ❌ Avoid circular dependencies — Power BI will error if it detects ambiguous paths

Q8. What is the difference between a Calculated Column and a Measure? Medium

AspectCalculated ColumnMeasure
EvaluatedRow by row during data refreshOn-the-fly during report interactions
StorageStored in the model (consumes memory)Not stored — computed at query time
ContextRow context (has access to current row values)Filter context (aggregates based on slicers/filters)
Use caseStatic categorization, flags, lookupsDynamic aggregations, KPIs, ratios
Can be used in slicers?✅ Yes❌ No

Calculated Column example:

Profit Margin Category = 
IF(
    [Profit Margin] > 0.3, "High",
    IF([Profit Margin] > 0.15, "Medium", "Low")
)

Measure example:

Total Revenue = SUMX(Sales, Sales[Quantity] * Sales[UnitPrice])

Interview tip: Always prefer measures over calculated columns unless you need the value for filtering/slicing. Measures are more memory-efficient and respond to filter context dynamically.


Q9. What is a Date Table and why is it critical in Power BI? Medium

Why it's critical:

  • Time intelligence functions like SAMEPERIODLASTYEAR, TOTALYTD, DATEADD require a contiguous, marked date table
  • Consistent filtering across multiple fact tables sharing the same date dimension
  • Custom fiscal calendars (April–March fiscal year, 4-4-5 retail calendar)

Creating a Date Table in DAX:

DateTable = 
ADDCOLUMNS(
    CALENDARAUTO(),
    "Year", YEAR([Date]),
    "Quarter", "Q" & FORMAT([Date], "Q"),
    "Month", FORMAT([Date], "MMMM"),
    "MonthNumber", MONTH([Date]),
    "WeekDay", FORMAT([Date], "dddd"),
    "WeekNumber", WEEKNUM([Date])
)

Mark it as a Date Table: In Power BI Desktop → Select the table → Table Tools → Mark as Date Table → Choose the date column.

Without this step, time intelligence functions will not work correctly.


Q10. What are Inactive Relationships and when would you use them? Medium

By default, filters propagate only through the active relationship. To use an inactive relationship in a measure, use the USERELATIONSHIP function:

Sales by Ship Date = 
CALCULATE(
    [Total Sales],
    USERELATIONSHIP(Sales[ShipDate], DateTable[Date])
)

Common scenarios:

  • Order Date vs Ship Date vs Delivery Date
  • Created Date vs Modified Date vs Closed Date
  • Budget Date vs Actual Date in financial models

Interview tip: This question tests whether you understand that Power BI allows only one active relationship between any two tables, and USERELATIONSHIP is the DAX mechanism to activate an alternate path.


DAX – Data Analysis Expressions

Q11. Explain the CALCULATE function and why it's the most important DAX function. Hard

Syntax:

CALCULATE(<expression>, <filter1>, <filter2>, ...)

What it does:

  1. Takes the current filter context (from slicers, rows, columns in a visual)
  2. Applies the additional filter arguments (which can add, replace, or remove filters)
  3. Evaluates the expression in this new, modified context

Examples:

// Total Sales for Electronics category only
Electronics Sales = 
CALCULATE(
    [Total Sales],
    Products[Category] = "Electronics"
)

// Remove all filters on Product table — show grand total regardless of product slicer
All Products Sales = 
CALCULATE(
    [Total Sales],
    ALL(Products)
)

// Sales for previous year (time intelligence)
PY Sales = 
CALCULATE(
    [Total Sales],
    SAMEPERIODLASTYEAR('Date'[Date])
)

Why interviewers love this question: CALCULATE is the gateway to understanding filter context manipulation — the core concept that separates beginners from intermediate/advanced DAX users.


Q12. What is the difference between Filter Context and Row Context? Hard

AspectFilter ContextRow Context
Created bySlicers, visual axes, CALCULATE filters, page/report filtersCalculated columns, iterators (SUMX, AVERAGEX, FILTER)
ScopeFilters entire tables/columnsPoints to a single row
BehaviorRestricts which rows are visible to a calculationProvides access to column values of the current row
Applies toMeasuresRow-by-row evaluation

Critical concept — Context Transition: When a measure is referenced inside a row context (e.g., inside SUMX), CALCULATE wraps the measure implicitly, converting the current row context into an equivalent filter context. This is called context transition.

// Context transition in action
Avg Order Revenue = 
AVERAGEX(
    Orders,
    [Total Revenue]  // [Total Revenue] is a measure → context transition occurs
    // Each row's columns become filters for evaluating [Total Revenue]
)

Why this matters: Misunderstanding context transition is the #1 source of DAX bugs. If [Total Revenue] = SUM(Sales[Amount]), the SUM inside AVERAGEX is filtered by each order's context, not the entire table.


Q13. What are Iterator functions in DAX? Give examples. Medium

IteratorAggregationEquivalent Non-Iterator
SUMXSumSUM
AVERAGEXAverageAVERAGE
MINXMinimumMIN
MAXXMaximumMAX
COUNTXCountCOUNT
RANKXRanking
CONCATENATEXText join

Example — Weighted average price (can't be done with SUM/AVERAGE):

Weighted Avg Price = 
DIVIDE(
    SUMX(Sales, Sales[Quantity] * Sales[UnitPrice]),
    SUM(Sales[Quantity])
)

Example — Concatenate product names:

Product List = 
CONCATENATEX(
    VALUES(Products[ProductName]),
    Products[ProductName],
    ", ",
    Products[ProductName], ASC
)

Key insight: Iterators create a row context. This means context transition applies when you call a measure inside an iterator.


Q14. Explain Time Intelligence in DAX with key functions. Hard

Prerequisites: A properly marked, contiguous Date Table (see Q9).

Key Time Intelligence functions:

FunctionPurposeExample Use
TOTALYTDYear-to-date totalYTD Sales
TOTALQTDQuarter-to-date totalQTD Revenue
TOTALMTDMonth-to-date totalMTD Orders
SAMEPERIODLASTYEARSame period in previous yearYoY comparison
DATEADDShift dates by intervalSales 3 months ago
DATESYTDReturns YTD datesCustom YTD calculations
PARALLELPERIODFull parallel periodFull previous quarter
PREVIOUSMONTHPrevious month datesMonth-over-month

Practical examples:

// Year-to-Date Sales
YTD Sales = TOTALYTD([Total Sales], 'Date'[Date])

// Year-over-Year Change
YoY Change = 
VAR CurrentYear = [Total Sales]
VAR PreviousYear = CALCULATE([Total Sales], SAMEPERIODLASTYEAR('Date'[Date]))
RETURN
    DIVIDE(CurrentYear - PreviousYear, PreviousYear, 0)

// Rolling 3-Month Average
Rolling 3M Avg = 
CALCULATE(
    [Total Sales] / 3,
    DATESINPERIOD('Date'[Date], MAX('Date'[Date]), -3, MONTH)
)

Q15. What is the FILTER function and how does it differ from using CALCULATE with a direct filter? Medium

// Direct filter in CALCULATE — applies column filter
Sales Over 100 = 
CALCULATE([Total Sales], Sales[Amount] > 100)

// FILTER function — returns a table, iterates row by row
Sales Over 100 = 
CALCULATE(
    [Total Sales],
    FILTER(Sales, Sales[Amount] > 100)
)

Key differences:

AspectDirect Filter (Column)FILTER Function
ScopeCan only filter a single columnCan use complex, multi-column expressions
PerformanceOptimized by engine — uses column indexesIterates row by row — slower on large tables
Use caseSimple equality/comparison filtersComplex conditions involving multiple columns or measures

When to use FILTER:

  • When the condition involves multiple columns: FILTER(Sales, Sales[Qty] * Sales[Price] > 1000)
  • When filtering on a measure: FILTER(ALL(Products), [Total Sales] > 50000)
  • When you need the actual table for further operations

Best practice: Prefer direct column filters for performance. Use FILTER only when you need row-level complex conditions.


Q16. Explain the ALL, ALLEXCEPT, and REMOVEFILTERS functions. Medium

FunctionWhat It Does
ALL(Table)Removes all filters from the table — returns all rows
ALL(Column)Removes filters from a specific column only
ALLEXCEPT(Table, Column1, Column2)Removes all filters EXCEPT on specified columns
REMOVEFILTERS()Alias for ALL — clearer intent when used inside CALCULATE

Examples:

// % of Grand Total — removes all filters from Sales
% of Total = 
DIVIDE(
    [Total Sales],
    CALCULATE([Total Sales], ALL(Sales))
)

// % of Category — keeps Category filter, removes everything else
% of Category = 
DIVIDE(
    [Total Sales],
    CALCULATE([Total Sales], ALLEXCEPT(Products, Products[Category]))
)

Interview tip: ALL is a table function when used outside CALCULATE (returns a table), but acts as a filter modifier when used inside CALCULATE (removes filters). Understanding this dual behavior is critical.


Q17. Write a DAX measure for a Running Total. Hard

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

How it works:

  1. ALL('Date'[Date]) — Removes any date filters, giving access to all dates
  2. FILTER(...) — Re-applies a filter keeping only dates ≤ the current visual context's max date
  3. [Total Sales] — Sums sales for all those dates

Alternative using window functions (Power BI 2023+):

Running Total = 
CALCULATE(
    [Total Sales],
    WINDOW(1, ABS, 0, REL, ORDERBY('Date'[Date], ASC))
)

Performance tip: For large datasets, ensure the Date table is marked and the relationship is clean. Running totals are inherently expensive — avoid nesting them.


Power Query / M Language

Q18. What are the key data transformation steps in Power Query? Easy

Most common transformations:

TransformationWhat It DoesM Function
Remove ColumnsDrop unnecessary columnsTable.RemoveColumns
Filter RowsKeep/remove rows by conditionTable.SelectRows
Change TypeSet correct data typesTable.TransformColumnTypes
Replace ValuesFind and replace in a columnTable.ReplaceValue
Split ColumnSplit by delimiter or character countTable.SplitColumn
Pivot/UnpivotReshape data orientationTable.Pivot / Table.Unpivot
Group ByAggregate rowsTable.Group
Merge QueriesJoin two tables (like SQL JOIN)Table.NestedJoin
Append QueriesStack tables (like SQL UNION)Table.Combine
Add Custom ColumnCreate new calculated columnTable.AddColumn
Conditional ColumnIf/then/else logicTable.AddColumn with if...then...else

Best practice: Always set data types as the last step — earlier type changes can be overridden by subsequent transformations.


Q19. What is the difference between Merge and Append in Power Query? Easy

OperationSQL EquivalentWhat It DoesResult Shape
MergeJOINCombines columns from two tables based on a matching keyWider (more columns)
AppendUNIONStacks rows from two or more tables on top of each otherTaller (more rows)

Merge Join types available:

  • Left Outer (all from left + matching from right)
  • Right Outer
  • Full Outer
  • Inner (only matching rows)
  • Left Anti (left rows with no match)
  • Right Anti

Merge example — Adding customer names to sales:

Merge: Sales[CustomerID] = Customers[CustomerID] → Left Outer Join
→ Expand the Customers column to get CustomerName

Append example — Combining monthly files:

Append: Jan_Sales + Feb_Sales + Mar_Sales
→ Single table with all months' rows

Interview tip: Merge = horizontal combination (JOIN). Append = vertical combination (UNION). Simple but frequently asked.


Q20. How do you handle errors and null values in Power Query? Medium

Handling nulls:

// Replace nulls in a column
= Table.ReplaceValue(Source, null, 0, Replacer.ReplaceValue, {"Amount"})

// Filter out null rows
= Table.SelectRows(Source, each [CustomerName] <> null)

// Conditional null handling
= Table.AddColumn(Source, "CleanAmount", each if [Amount] = null then 0 else [Amount])

Handling errors:

// Replace errors in a column with null
= Table.ReplaceErrorValues(Source, {{"Amount", null}})

// try...otherwise for error handling in custom columns
= Table.AddColumn(Source, "SafeDivision", each try [Revenue] / [Cost] otherwise 0)

Error prevention strategies:

  • ✅ Set data types explicitly to catch conversion errors early
  • ✅ Use try...otherwise for calculations that might fail (division by zero, type mismatches)
  • ✅ Check for nulls before operations: if [Column] <> null then ... else ...
  • ✅ Use "Remove Errors" step cautiously — understand what data you're dropping

Q21. What are Parameters in Power Query and how are they used? Medium

Common use cases:

  • Dynamic data source paths — Switch between Dev/Test/Prod databases
  • Date range filtering — Let users specify start/end dates
  • Threshold values — Parameterize business rules
  • Incremental refreshRangeStart and RangeEnd parameters (required by Power BI's incremental refresh feature)

Creating a parameter in M:

// In the query:
let
    ServerName = "sql-prod-01" meta [IsParameterQuery=true, Type="Text", IsParameterQueryRequired=true],
    Source = Sql.Database(ServerName, "SalesDB"),
    ...

Incremental Refresh parameters (required names):

// These exact names are required by Power BI for incremental refresh
RangeStart = #datetime(2024, 1, 1, 0, 0, 0) meta [IsParameterQuery=true, Type="DateTime", IsParameterQueryRequired=true]
RangeEnd = #datetime(2026, 3, 26, 0, 0, 0) meta [IsParameterQuery=true, Type="DateTime", IsParameterQueryRequired=true]

Q22. How does Query Folding work and why is it important? Hard

Why it matters:

  • Performance — The database server handles filtering, joins, and aggregations (optimized engines, indexes, parallelism)
  • Memory — Only the final result set is transferred to Power BI, not the entire raw table
  • Scalability — Can process billions of rows without loading them all locally

How to check if a step folds: Right-click an Applied Step → "View Native Query"

  • If the option is available and shows SQL → Step folds
  • If the option is greyed out → Step doesn't fold

Steps that typically fold: SelectRows, RemoveColumns, ChangeType, GroupBy, MergeQueries (on SQL sources), Sort, RenameColumns

Steps that break folding: AddCustomColumn (complex M logic), Pivot/Unpivot (sometimes), operations on non-foldable sources (CSV, Excel)

Best practice: Put foldable steps first (filter, remove columns, change type) before non-foldable steps. This ensures maximum work is pushed to the source.


Visualization & Reporting

Q23. What are best practices for designing Power BI reports? Medium

Layout & Design:

  • ✅ Use a consistent color palette (3–5 colors max) aligned with brand guidelines
  • ✅ Place key KPIs at the top — readers scan top-left to bottom-right
  • ✅ Use whitespace strategically — don't cram every pixel
  • ✅ Title every visual clearly — "Monthly Revenue by Region" beats "Chart 1"
  • ✅ Use tooltips to provide detail without cluttering the report

Visual Selection:

Data ScenarioRecommended Visual
Trend over timeLine chart
Part-to-wholeDonut/Pie (≤5 categories) or Stacked bar
Comparison across categoriesBar/Column chart
Geographic dataMap / Filled map
KPI single valueCard / KPI visual
Detailed recordsTable / Matrix
CorrelationScatter plot
Flow/ProcessDecomposition tree

Performance:

  • ❌ Avoid more than 8 visuals per page (each fires a query)
  • ❌ Avoid high-cardinality columns in visuals (10,000+ unique values in a slicer)
  • ✅ Use bookmarks for toggling views instead of cramming everything on one page

Q24. What is Drill-Through in Power BI and how do you set it up? Medium

Setup steps:

  1. Create a detail page (e.g., "Product Details")
  2. Add the drill-through field to the Drill-through filters well on that page (e.g., drag Products[Category] there)
  3. Add visuals showing granular details on this page
  4. Power BI automatically adds a Back button — users can return to the source page

Cross-report drill-through: In Power BI Service, you can drill from one report to a completely different report, enabling modular report design where a summary report drills into specialized detail reports.

Key setting: The drill-through filter can have "Keep all filters" toggled ON to carry the full filter context from the source page.


Q25. Explain Conditional Formatting in Power BI. Easy

Available on: Tables, Matrix, Cards, and some chart elements.

Types:

TypeDescriptionExample
Background colorCell fill based on valueRed for negative, Green for positive
Font colorText color changesGrey for low priority, Red for critical
Data barsIn-cell bar chartsRevenue bars in a table
IconsKPI indicator icons✅ ⚠️ ❌ based on thresholds
Web URLClickable linksDynamic hyperlinks

Methods:

  • Color scale — Gradient from min to max
  • Rules — If value between X and Y, apply color Z
  • Field value — Use a DAX measure or column to drive the color

DAX-driven conditional formatting:

KPI Color = 
SWITCH(
    TRUE(),
    [Profit Margin] >= 0.2, "#00B050",   // Green
    [Profit Margin] >= 0.1, "#FFC000",   // Yellow
    "#FF0000"                              // Red
)

Then use this measure as the "Field value" in the conditional formatting dialog.


Q26. What are Bookmarks and how are they used in Power BI? Easy

Use cases:

  • Toggle views — Switch between chart view and table view on the same page using buttons + bookmarks
  • Presentation mode — Create a guided, step-by-step story through your data
  • Reset filters — A "Reset" button that restores the default slicer state
  • Show/hide panels — Filter panel that slides in/out
  • Custom navigation — Build a multi-page app with custom navigation buttons

Setup:

  1. Configure the page state (filters, visible visuals)
  2. View → Bookmarks Pane → Add bookmark
  3. Insert a Button → Set Action = Bookmark → Select the bookmark

Personal vs Report bookmarks:

  • Report bookmarks — Created by the author, visible to all viewers
  • Personal bookmarks — Created by viewers in the Service for their own saved views

Admin & Deployment

Q27. What is Row-Level Security (RLS) and how do you implement it? Hard

Implementation steps:

Step 1 — Define roles in Power BI Desktop: Modeling tab → Manage Roles → Create a role with DAX filter:

// Role: RegionManager
// Table: Sales
// DAX Filter Expression:
[Region] = USERPRINCIPALNAME()

Or static assignment:

// Role: WestRegion
[Region] = "West"

Step 2 — Test in Desktop: Modeling → View as Roles → Select the role → Verify filtered data

Step 3 — Assign users in Power BI Service: Dataset → Security → Add members (users/groups) to each role

Dynamic RLS example with a security table:

UserSecurityTable:
| Email | Region |
|-------|--------|
| [email protected] | West |
| [email protected] | East |
| [email protected] | North |
// DAX Filter on UserSecurityTable:
[Email] = USERPRINCIPALNAME()

Relationship: UserSecurityTable[Region]Sales[Region] (filter propagates, restricting Sales to the user's assigned regions)


Q28. What are Workspaces and Deployment Pipelines in Power BI Service? Medium

Workspaces are collaborative containers in Power BI Service for organizing related dashboards, reports, datasets, and dataflows. They replace the legacy "groups."

FeatureMy WorkspaceShared Workspace
VisibilityOnly youAll workspace members
CollaborationNoYes — roles: Admin, Member, Contributor, Viewer
AppsNoCan publish as an App for broad distribution
Recommended forPersonal development/testingTeam collaboration and production content

Deployment Pipelines provide a managed promotion workflow:

[Development] → [Test] → [Production]
  • Create content in Development workspace
  • Promote to Test for UAT/validation
  • Promote to Production for end users
  • Each stage has its own workspace and data source bindings
  • Parameter rules let you automatically switch data sources per stage (e.g., Dev SQL → Prod SQL)

Why it matters: Deployment Pipelines bring DevOps practices (CI/CD) to Power BI, eliminating manual PBIX re-publishing and reducing deployment errors.


Q29. What is a Power BI Gateway and when do you need it? Medium

When you need a gateway:

  • Scheduled refresh for datasets connected to on-premises SQL Server, Oracle, SAP, file shares, etc.
  • DirectQuery/Live Connection to on-premises Analysis Services
  • Any data source behind a corporate firewall

Two types:

TypeUse Case
Standard (Enterprise)Shared across the organization. Multiple data sources, multiple users. Managed centrally by IT.
PersonalSingle user only. Installed on your machine. Good for individual scheduled refresh.

Architecture: The gateway runs as a Windows service on an on-premises machine. It establishes an outbound connection to Azure Service Bus (no inbound firewall ports needed). When Power BI Service triggers a refresh, it sends a request through Service Bus → Gateway → On-premises source → Data flows back.

Best practices:

  • ✅ Install Standard Gateway on a dedicated, always-on server (not a laptop)
  • ✅ Add multiple admins to the gateway cluster for failover
  • ❌ Don't install on the same machine as the database server (resource contention)

Advanced Topics

Q30. Explain Composite Models, Aggregations, and performance optimization strategies in Power BI. Hard

Composite Models allow a single Power BI model to combine Import and DirectQuery tables in the same report. Introduced as a game-changer for large-scale enterprise BI.

ScenarioMode
Frequently queried dimension tables (Products, Dates)Import (fast)
Large fact table with billions of rowsDirectQuery (no size limit)
Summary/aggregate tableImport (pre-computed)

Aggregations take this further by creating pre-aggregated Import tables that Power BI automatically uses for high-level queries, falling back to DirectQuery for drill-down details.

User clicks "Total Sales by Year" → Hits Import aggregation table (instant)
User drills down to "Sales by Product by Day" → Falls through to DirectQuery (live)

Setup: Define aggregation mappings (Sum of Amount, Count of Rows grouped by Year, Region) and Power BI handles the routing transparently.

Performance Optimization strategies:

AreaOptimization
Data ModelStar schema, remove unused columns, avoid calculated columns where measures suffice
DAXUse variables (VAR), avoid nested CALCULATE, prefer DIVIDE over division operator
Power QueryEnable query folding, filter early, remove columns early, disable auto-detect types
VisualsLimit visuals per page (≤8), avoid high-cardinality slicers, use bookmarks for toggling
StorageUse aggregations for billion-row tables, Import for dimensions, DirectQuery for detail
RefreshIncremental refresh for large tables (requires RangeStart/RangeEnd parameters)
MonitoringUse Performance Analyzer (Desktop) and Azure Log Analytics (Service) to identify slow queries

Performance Analyzer workflow:

  1. Open Performance Analyzer in Power BI Desktop (View tab)
  2. Start recording → interact with the report
  3. Analyze per-visual timings — identify the slowest DAX query or visual
  4. Copy the DAX query → paste into DAX Studio for detailed profiling

Tips for Power BI Interviews

Before the Interview

  1. Build a portfolio project — Create a Power BI report on a public dataset (Kaggle, government data) and publish it to your Power BI Service. Share the link in your resume.
  2. Practice DAX in DAX Studio — Download it (free) and run queries against sample models. It's the best way to internalize CALCULATE, context, and iterators.
  3. Know the licensing model — Free vs Pro vs Premium Per User (PPU) vs Premium Per Capacity. Interviewers often ask about this.
  4. Understand the end-to-end workflow — Don't just know DAX. Know Power Query, data modeling, visualization, publishing, gateway, and RLS.

During the Interview

  1. Think aloud — When asked a DAX question, explain your thought process: "First I need to remove the filter context, then apply a new date filter..."
  2. Draw the data model — If given a scenario, sketch a Star Schema on paper/whiteboard before writing DAX.
  3. Mention trade-offs — "I'd use Import mode for performance, but DirectQuery if data freshness is critical" shows senior-level thinking.
  4. Ask clarifying questions — "Is this measure supposed to respond to slicers, or show a fixed total?" demonstrates you understand filter context.

Common Mistakes to Avoid

  1. Confusing measures and calculated columns — Know when to use each (Q8)
  2. Forgetting to mark the Date Table — Time intelligence will silently fail (Q9)
  3. Overusing bidirectional relationships — Leads to ambiguity and performance issues (Q7)
  4. Writing DAX without variables — Makes debugging harder and can cause double-evaluation

Conclusion

Power BI has evolved from a simple reporting tool into a comprehensive enterprise BI platform. Interview questions now span the full spectrum — from basic concepts like components and connectivity modes to advanced topics like composite models, context transition, and performance optimization.

Key takeaway: The strongest Power BI candidates aren't just DAX wizards — they understand the entire data pipeline from source to dashboard, can make architectural decisions (Import vs DirectQuery, Star Schema vs flat tables), and can explain why they'd choose one approach over another.

Focus your preparation on these pillars:

  1. Data Modeling — Star Schema, relationships, cardinality
  2. DAX Mastery — CALCULATE, filter context, context transition, time intelligence
  3. Power Query — Query folding, transformations, parameters
  4. Architecture — Gateways, RLS, deployment pipelines, composite models
  5. Visualization — Best practices, drill-through, bookmarks, conditional formatting

Master these, and you'll handle any Power BI interview thrown at you — whether it's at a service company, product company, or consulting firm.


Found this guide helpful? Explore more interview preparation resources on PapersAdda. Check out our SQL Interview Questions 2026, Data Structures Interview Questions 2026, and System Design Interview Questions 2026 for a complete technical interview prep toolkit.

Advertisement Placement

Explore this topic cluster

More resources in Interview Questions

Use the category hub to browse similar questions, exam patterns, salary guides, and preparation resources related to this topic.

Related Articles

More from PapersAdda

Share this article: