✅ POWER BI INTERVIEW ANSWER SHEET
🔹 Round 1 — Fundamentals
1️⃣ What are the main components of Power BI?
-
Power BI Desktop
-
Power BI Service (Cloud SaaS platform)
-
Power BI Mobile
-
Power BI Gateway
-
Power BI Report Builder (Paginated Reports)
-
Power BI Embedded (For developers)
2️⃣ Difference between Power BI Desktop and Power BI Service
| Feature | Power BI Desktop | Power BI Service |
|---|---|---|
| Purpose | Report creation & modelling | Sharing, collaboration, scheduled refresh |
| Storage Mode | Local PBIX file | Cloud storage |
| Data Prep | Full Power Query & modelling | Limited transformations |
| Publishing | Creates PBIX | Consumes PBIX |
3️⃣ Calculated Column vs Measure
| Feature | Calculated Column | Measure |
|---|---|---|
| Calculated | Row-level | Aggregation-level |
| Stored in model | Yes (consumes memory) | No (calculated at query time) |
| Best for | Filtering, grouping, relationships | KPIs, dynamic calculations |
Rule:
👉 Use a calculated column when the value is fixed per row.
👉 Use a measure when value must change based on filters.
a calculated column performs a row-by-row calculation and stores the static results in memory, while a measure performs a dynamic calculation based on the user's applied filters and is calculated on the fly at query time
4️⃣ What is a Star Schema and why use it?
A Star Schema consists of:
-
Fact Table → Transactions, numeric values
-
Dimension Tables → Descriptive attributes (date, product, supplier)
Why preferred?
-
Better compression
-
Faster query engine (VertiPaq optimized)
-
Clean relationships (1-to-many)
-
Simpler DAX
5️⃣ What is Row-Level Security (RLS)?
RLS restricts data visibility for different users.
Steps:
-
Create security role (Manage Roles → Define filter)
-
Assign user security group in Power BI Service
-
Validate using "View as Roles"
6) What are the different types of views available in Power BI?
This is the primary view for creating visualizations, arranging them on a canvas, and building multi- page reports.
Data View:
Allows you to see your data in a table format. You can sort, search, and perform exploratory data analysis or cleaning here.
Model View:
Shows a graphical representation of the relationships between your tables. You can manage and modify these relationships in this view.
7) What is the difference between DirectQuery and Live Connection in Power BI?
- The main difference is that DirectQuery connects to an external data source like a database, while Live Connection connects to an existing Power BI semantic model (published in the Power BI service) or Analysis Services model.
- DirectQuery queries the source system directly, allowing for real-time data and the creation of calculated columns/measures within Power BI, whereas Live Connection relies on the pre-built model from the Analysis Services or Power BI service, providing the analytical engine of the source model but limiting some modeling capabilities in Power BI
8) Filter vs Slicer
| Feature | Filter | Slicer |
|---|---|---|
| Location | Filters pane | Report canvas (visual object) |
| User Interaction | Low (mainly designer) | High (end users control it) |
| Visibility to user | Mostly hidden | Visible |
| Use Case | Internal filtering & preparation | Interactive data exploration |
| Appearance | Not customizable visually | Customizable with styles & formatting |
| Sync between pages | Yes, but limited | Can sync slicers across pages |
| Use Case | Recommended |
|---|---|
| Restrict data permanently (e.g., show only 2024 data) | Filter |
| Give user flexibility to change view dynamically | Slicer |
| Hide confidential values | Filter |
| Change product category, region, time for analysis | Slicer |
| Reduce page clutter | Filter |
| Provide interactive experience | Slicer |
| Type | Example |
|---|---|
| List / Dropdown | Product, Region |
| Date range slider | Last 30 days, fiscal year |
| Hierarchy slicer | Country → State → City |
| Numeric range | Price range |
🔹 Round 2 — DAX Knowledge
6️⃣ Explain CALCULATE()
CALCULATE modifies the current filter context and returns an expression with new filters applied.
Example:
Sales LY = CALCULATE([Total Sales], SAMEPERIODLASTYEAR('Date'[Date]))
7️⃣ ALL() vs ALLEXCEPT() vs ALLSELECTED()
| Function | Behavior |
|---|---|
| ALL() | Removes all filters from a column/table |
| ALLEXCEPT() | Keeps specified columns filtered, removes others |
| ALLSELECTED() | Removes filters but respects visuals/slicer interactions |
8️⃣ YoY Growth DAX
YoY Growth % =
VAR PrevYear = CALCULATE([Total Sales], SAMEPERIODLASTYEAR('Date'[Date]))
RETURN
DIVIDE([Total Sales] - PrevYear, PrevYear)
9️⃣ RELATED() vs RELATEDTABLE()
-
RELATED() → Brings a value from one-side of a relationship into the many side.
-
RELATEDTABLE() → Returns a table of matching records from related table.
Example use case: lookup description column in a fact table.
🔟 When to use VAR?
Use VAR to:
-
Improve readability
-
Avoid repeated calculations
-
Improve performance
🔹 Round 3 — Modelling & ETL
1️⃣1️⃣ How to validate auto-generated relationships?
-
Check primary/foreign key logic
-
Validate cardinality (1→many preferred)
-
Ensure correct filter direction
-
Avoid many-to-many unless necessary
1️⃣2️⃣ Handling many-to-many relationships
Options:
-
Create bridging table
-
Use DAX function
TREATAS() -
Avoid bidirectional filters unless controlled
1️⃣3️⃣ DirectQuery vs Import
| Mode | When to Use |
|---|---|
| Import | Smaller dataset, faster performance |
| DirectQuery | Real-time reporting, large datasets, compliance restrictions |
1️⃣4️⃣ Handling Slowly Changing Dimensions (SCD)
Best handled at ETL layer using:
-
History tracking columns
-
Effective date / Expiry date
-
Surrogate keys
Power BI can use snapshots or incremental refresh for history.
1️⃣5️⃣ Circular dependency fix
-
Remove unnecessary calculated columns
-
Normalize logic using measures instead
-
Fix relationship design
🔹 Round 4 — Performance Optimization
1️⃣6️⃣ Improving slow report performance
-
Reduce cardinality
-
Proper star schema
-
Limit visuals per page
-
Use measures instead of calculated columns
-
Disable auto date/time
-
Turn off bidirectional filters unless needed
1️⃣7️⃣ Optimize DAX
-
Use VAR
-
Avoid iterators unless necessary
-
Use SUMX only when column context is needed
-
Reduce nested FILTER() functions
1️⃣8️⃣ When to use Aggregations
-
When dataset is extremely large (millions of rows)
-
When historical summarized trends needed vs granular drill-downs
1️⃣9️⃣ Bidirectional filtering impact
Pros: Fixes ambiguity in relationships
Cons: Can cause filter propagation issues and performance drop
Use only when required.
2️⃣0️⃣ Incremental refresh
Used for large datasets updated frequently.
Stores only changes rather than full refresh.
🔹 Round 5 — Real-World Scenarios
2️⃣1️⃣ Report vs SQL mismatch troubleshooting
-
Check filter context
-
Time intelligence logic
-
ETL refresh delays
-
Row-level security
-
Aggregation differences
2️⃣2️⃣ Usability design approach
-
Use bookmarks, tooltips, drillthrough
-
Slicers placed logically
-
KPI cards and trends prioritized
-
Avoid clutter
2️⃣3️⃣ Refresh every 5 minutes considerations
-
Capacity SKU
-
Gateway load
-
Data source capability
-
Licensing (Premium required)
2️⃣4️⃣ Fix disconnected tables
-
Consolidate using lookup or bridging tables
-
Create clear dimension hierarchy
-
Remove unused tables/columns
2️⃣5️⃣ Dynamic KPI measure
Use a disconnected table + SELECTEDVALUE() + SWITCH() logic.
🔹 Bonus Deep Dive
2️⃣6️⃣ FILTER vs CALCULATE context transition
-
FILTER()creates a row context inside DAX -
CALCULATE()converts row context into filter context
2️⃣7️⃣ Evaluation Context Types
-
Row context
-
Filter context
-
Query context
2️⃣8️⃣ Dynamic security
Use USERPRINCIPALNAME() in RLS filters.
2️⃣9️⃣ Disable auto date/time?
Saves memory and improves performance in large datasets.
3️⃣0️⃣ Composite Models
Allows DirectQuery + Import together. Useful for large real-time models.
⭐ You’re now fully prepared.
Would you like:
➡ Mock rapid-fire test (20 questions)?
➡ Hands-on scenario assignments with answers?
Just say: “Mock test” or “Give practice tasks.”
Comments
Post a Comment