{"id":66306,"date":"2024-11-07T15:40:43","date_gmt":"2024-11-07T10:10:43","guid":{"rendered":"https:\/\/www.guvi.in\/blog\/?p=66306"},"modified":"2026-10-24T12:01:28","modified_gmt":"2026-10-24T06:31:28","slug":"power-bi-developer-interview-questions-and-answers","status":"publish","type":"post","link":"https:\/\/www.guvi.in\/blog\/power-bi-developer-interview-questions-and-answers\/","title":{"rendered":"Top 50+ Power BI Developer Interview Questions (2026)"},"content":{"rendered":"\n<p>The world of data is growing rapidly, and companies are actively hiring professionals who can turn complex data into meaningful insights. To build a successful career in analytics, mastering <strong>Power BI<\/strong> is increasingly important, especially for roles focused on <em>dashboards, reporting, data modelling, and business intelligence solutions<\/em>.<\/p>\n\n\n\n<p>If you are preparing for a job in this field, these <strong>Power BI Developer Interview Questions and Answers<\/strong> will help you strengthen your concepts and boost your confidence. From <strong>DAX<\/strong> and <strong>Power Query<\/strong> to <strong>data modelling<\/strong> and <strong>real-world reporting scenarios<\/strong>, this guide covers key topics interviewers commonly ask in both beginner and advanced interviews.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>TL;DR Summary<\/strong><\/h2>\n\n\n\n<ul>\n<li>Master 50+ <strong>Power BI Developer Interview Questions and Answers<\/strong> covering beginner-to-advanced concepts and real-world interview scenarios.<\/li>\n\n\n\n<li>Build strong knowledge of <strong>Power BI fundamentals<\/strong>, including datasets, reports, dashboards, relationships, filters, and visualizations.<\/li>\n\n\n\n<li>Prepare for advanced topics like <strong>Power BI performance optimization<\/strong>, incremental refresh, composite models, aggregations, and dataflows.<\/li>\n\n\n\n<li>Improve your DAX skills with <strong>practical DAX examples<\/strong> covering CALCULATE, FILTER, time intelligence, RANKX, and DIVIDE.<\/li>\n\n\n\n<li>Explore Power Query, star schema, relationships, and <strong>data modeling concepts<\/strong> commonly asked in Power BI interviews.<\/li>\n\n\n\n<li><span style=\"box-sizing: border-box; margin: 0px; padding: 0px;\">We also walk through&nbsp;<\/span><strong><span style=\"box-sizing: border-box; margin: 0px; padding: 0px;\"><strong>scenario-based Power BI&nbsp;<\/strong><\/span>interview questions<\/strong> on slow reports, refresh failures, row-level security, incorrect totals, and Year-over-Year debugging.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<div style=\"background-color: #099f4e; border: 3px solid #110053; border-radius: 12px; padding: 18px 22px; color: #FFFFFF; font-size: 18px; font-family: Montserrat, Helvetica, sans-serif; line-height: 1.6; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); max-width: 750px;\"> \n  <strong style=\"font-size: 22px; color: #ffffff;\">\ud83d\udca1 Smart Preparation Tips:<\/strong> <br \/><br \/> \n  <ul style=\"margin: 0; padding-left: 20px;\"> \n    <li> \n      Learn <b style=\"color: #110053;\">5\u20136 important DAX formulas<\/b> properly instead of <b style=\"color: #110053;\">memorizing too many formulas<\/b>. \n    <\/li> \n    <br \/> \n    <li> \n      Build small <b style=\"color: #110053;\">Power BI reports daily<\/b> because interviewers can easily spot <b style=\"color: #110053;\">practical experience<\/b>. \n    <\/li> \n    <br \/> \n    <li> \n      If stuck, explain the <b style=\"color: #110053;\">approach calmly<\/b> instead of staying silent during <b style=\"color: #110053;\">interviews<\/b>. \n    <\/li> \n  <\/ul> \n<\/div>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Power BI Developer Interview Questions and Answers&nbsp;<\/strong><\/h2>\n\n\n\n<p>Preparing for a <strong>Power BI developer interview<\/strong> requires a <em>solid understanding of both <a href=\"https:\/\/www.guvi.in\/blog\/skill-blog\/power-bi-developer-skills\/\" data-type=\"link\" data-id=\"https:\/\/www.guvi.in\/blog\/skill-blog\/power-bi-developer-skills\/\">fundamental concepts and advanced technical skills<\/a><\/em>.&nbsp;<\/p>\n\n\n\n<p>This article presents <em><strong>50+ carefully curated interview questions<\/strong><\/em>, complete with answers, to help you navigate interviews at various levels of expertise.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><strong><em>Looking to build a career in Data Science and Generative AI? HCL GUVI\u2019s Advanced Data Science &amp; Generative AI Course gives you the skills and practical experience you need in just 6 months. Learn through live online classes, 1:1 doubt sessions, 10+ hands-on projects, mock interviews, placement assistance, and an IITM Pravartak certification. No coding experience is required, and you can learn in English, Hindi, Telugu, or Tamil. Enroll today and take your first step toward a future in AI!<\/em><\/strong><\/p>\n\n\n<div class=\"wp-block-guvi-cta-button\" style=\"justify-content:center;\"><a href=\"https:\/\/www.guvi.in\/zen-class\/data-science-course\/?utm_source=blog&#038;utm_medium=hyperlink&#038;utm_campaign=power-bi-developer-interview-questions-and-answers\" class=\"guvi-btn-enquire\" target=\"_blank\" rel=\"noopener noreferrer\">Enroll for Data Science Course<\/a><\/div>\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Basic Power BI Interview Questions and Answers (Freshers)&nbsp;<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1. What is Power BI?<\/strong><\/h3>\n\n\n\n<p>Power BI is a Microsoft business intelligence (BI) tool that connects to multiple data sources, transforms raw data, and turns it into interactive dashboards and reports.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2. What are the main components of Power BI?<\/strong><\/h3>\n\n\n\n<p>The core components of Power BI are:<\/p>\n\n\n\n<ul>\n<li><strong>Power BI Desktop: <\/strong>&nbsp;Windows application for building reports and data models<\/li>\n\n\n\n<li><strong>Power BI Service<\/strong>:&nbsp; Cloud platform (app.powerbi.com) for publishing, sharing, and collaboration<\/li>\n\n\n\n<li><strong>Power BI Mobile<\/strong>: iOS and Android app for consuming reports on the go<\/li>\n\n\n\n<li><strong>Power BI Gateway<\/strong>:&nbsp; Bridges on-premise data sources with Power BI Service<\/li>\n\n\n\n<li><strong>Power BI Embedded<\/strong>: API for embedding Power BI reports into custom applications<\/li>\n\n\n\n<li><strong>Power BI Report Server<\/strong>:&nbsp; On-premise hosting for organizations that cannot use the cloud<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p><strong><em>Turn Raw Data Into Dashboards That Impress. Ready to build real Power BI skills? HCL GUVI&#8217;s <\/em><\/strong><em><a href=\"https:\/\/www.guvi.in\/courses\/data-science\/power-bi\/?utm_source=blog&amp;utm_medium=hyperlink&amp;utm_campaign=power-bi-developer-interview-questions-and-answers\" target=\"_blank\" rel=\"noreferrer noopener\">Microsoft Power BI Course<\/a><\/em><strong><em> takes you from Power Query and data modelling to DAX and interactive dashboards, all in 7 hours of self-paced lessons. Beginner-friendly, with a certificate to show for it. Start Learning Today!<\/em><\/strong><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3. What is the difference between Power BI Desktop and Power BI Service?<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Feature<\/strong><\/td><td><strong>Power BI Desktop<\/strong><\/td><td><strong>Power BI Service<\/strong><\/td><\/tr><tr><td>Type<\/td><td>Windows application<\/td><td>Cloud-based (browser)<\/td><\/tr><tr><td>Primary use<\/td><td>Build &amp; model reports<\/td><td>Publish, share &amp; collaborate<\/td><\/tr><tr><td>Data refresh<\/td><td>Manual<\/td><td>Scheduled (up to 8x\/day on Pro)<\/td><\/tr><tr><td>Requires license<\/td><td>Free<\/td><td>Pro or Premium license<\/td><\/tr><tr><td>Access<\/td><td>Local machine only<\/td><td>Anywhere via browser<\/td><\/tr><tr><td>Collaboration<\/td><td>Not directly<\/td><td>Yes, workspaces, apps<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Power BI Developer Interview Questions and Answers<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>4. What data sources can Power BI connect to?<\/strong><\/h3>\n\n\n\n<p>Power BI connects to 100+ data sources, including:<\/p>\n\n\n\n<ul>\n<li><strong>Databases:<\/strong> <a href=\"https:\/\/www.guvi.in\/blog\/how-do-database-servers-work\/\" target=\"_blank\" rel=\"noreferrer noopener\">SQL Server,<\/a> MySQL, PostgreSQL, Oracle, <a href=\"https:\/\/azure.microsoft.com\/en-in\/pricing\/purchase-options\/azure-account\/search\/?ef_id=_k_Cj0KCQjw2MbPBhCSARIsAP3jP9xaqCnwV6yPpx__xniBBQ0ruxKwqI7o8kc6ecvOu21FnmOpq8ueCpUaAn8IEALw_wcB_k_&amp;OCID=AIDcmmf1elj9v5_SEM__k_Cj0KCQjw2MbPBhCSARIsAP3jP9xaqCnwV6yPpx__xniBBQ0ruxKwqI7o8kc6ecvOu21FnmOpq8ueCpUaAn8IEALw_wcB_k_&amp;gad_source=1&amp;gad_campaignid=23650569745&amp;gbraid=0AAAAADcJh_v7VbFRNHw0DMP2YWgovH8Co&amp;gclid=Cj0KCQjw2MbPBhCSARIsAP3jP9xaqCnwV6yPpx__xniBBQ0ruxKwqI7o8kc6ecvOu21FnmOpq8ueCpUaAn8IEALw_wcB\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Azure SQL<\/a><\/li>\n\n\n\n<li><strong>Files:<\/strong> Excel, CSV, JSON, XML, PDF<\/li>\n\n\n\n<li><strong>Cloud services:<\/strong> Azure, Salesforce, Google Analytics, SharePoint<\/li>\n\n\n\n<li><strong>Web:<\/strong> REST APIs, OData feeds, web pages<\/li>\n\n\n\n<li><strong>Big data:<\/strong> Spark, Hadoop, <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/storage\/blobs\/data-lake-storage-introduction\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Azure Data Lake<\/a><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><br><strong>5. What is a dataset in Power BI?<\/strong><\/h3>\n\n\n\n<p>A dataset is a collection of data that Power BI uses to create reports and dashboards. It can be a single table or a complex data model with multiple related tables. Datasets are uploaded to Power BI Service and can be shared across multiple reports within a workspace.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>6. What is the difference between a report and a dashboard in Power BI?<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Feature<\/strong><\/td><td><strong>Report<\/strong><\/td><td><strong>Dashboard<\/strong><\/td><\/tr><tr><td>Pages<\/td><td>Multiple pages<\/td><td>Single canvas<\/td><\/tr><tr><td>Built in<\/td><td>Power BI Desktop or Service<\/td><td>Power BI Service only<\/td><\/tr><tr><td>Interaction<\/td><td>Full interactivity, drill-through<\/td><td>Limited,&nbsp; click navigates to report<\/td><\/tr><tr><td>Source<\/td><td>Single dataset<\/td><td>Multiple reports\/datasets<\/td><\/tr><tr><td>Use case<\/td><td>Detailed analysis<\/td><td>High-level KPI monitoring<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>7. What is a workspace in Power BI?<\/strong><\/h3>\n\n\n\n<p>A workspace is a shared environment in Power BI Service where teams collaborate on reports, dashboards, datasets, and dataflows. There are two types:<\/p>\n\n\n\n<ul>\n<li><strong>My Workspace<\/strong>:&nbsp; Personal, not shareable<\/li>\n\n\n\n<li><strong>Shared Workspace<\/strong>: Team collaboration; requires Pro or Premium license<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>8. What is Power BI Gateway and when is it used?<\/strong><\/h3>\n\n\n\n<p>Power BI Gateway is a software bridge that allows Power BI Service to securely access on-premises data sources (SQL Server, Oracle, files on local networks). Use it when you need scheduled report refreshes for data behind a corporate firewall.&nbsp;<\/p>\n\n\n\n<p>Two types: <strong>On-premises data gateway<\/strong> (shared across users) and <strong>Personal gateway<\/strong> (single user only).<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>9. What are the different types of filters in Power BI?<\/strong><\/h3>\n\n\n\n<p>Power BI has four filter types:<\/p>\n\n\n\n<ul>\n<li><strong>Visual-level filter: <\/strong>Applies only to the selected visual<\/li>\n\n\n\n<li><strong>Page-level filter:&nbsp;<\/strong>Applies to all visuals on one page<\/li>\n\n\n\n<li><strong>Report-level filter:&nbsp;<\/strong>Applies to all pages in the report<\/li>\n\n\n\n<li><strong>Drillthrough filter<\/strong><strong>:<\/strong> Passes filter context when drilling through to a detail page<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>10. What is a slicer in Power BI?<\/strong><\/h3>\n\n\n\n<p>A slicer is an on-canvas filter visual that allows users to interactively filter data by clicking on values. Unlike the Filters pane, slicers are visible on the report page and are commonly used for date ranges, categories, or regions. Slicers can be synced across multiple pages.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>11. What are the visualization types available in Power BI?<\/strong><\/h3>\n\n\n\n<p>Power BI offers 30+ built-in visuals including bar\/column charts, line charts, pie\/donut charts, scatter plots, maps (filled map, shape map, ArcGIS), KPI cards, tables, matrices, waterfall charts, funnel charts, treemaps, and gauges. Additional custom visuals are available from the AppSource marketplace.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>12. What is a measure in Power BI?<\/strong><\/h3>\n\n\n\n<p>A measure is a dynamic calculation defined using DAX that is evaluated at query time based on the current filter context. Measures do not store data; they compute results on the fly. Examples: total sales, profit margin, year-over-year growth. Measures appear in the Fields pane with a calculator icon (fx).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>13. What is a calculated column in Power BI?<\/strong><\/h3>\n\n\n\n<p>A calculated column is a DAX expression evaluated row-by-row at data refresh time and stored in the model as a physical column. Unlike measures, calculated columns consume memory. Use them when you need row-level values for filtering or grouping (e.g., a &#8220;Sales Category&#8221; column derived from a sales amount).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>14. What are the building blocks of a Power BI report?<\/strong><\/h3>\n\n\n\n<p>The four core building blocks are:<\/p>\n\n\n\n<ol>\n<li><strong>Visualizations:&nbsp; <\/strong>Charts, graphs, maps<\/li>\n\n\n\n<li><strong>Datasets:&nbsp; <\/strong>&nbsp;The underlying data<\/li>\n\n\n\n<li><strong>Reports:&nbsp; <\/strong>Collection of pages with visualizations<\/li>\n\n\n\n<li><strong>Dashboards:&nbsp; <\/strong>Pinned visuals from reports for monitoring<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>15. What is Power BI&#8217;s VertiPaq engine?<\/strong><\/h3>\n\n\n\n<p>VertiPaq is Power BI&#8217;s in-memory columnar storage engine. It compresses data using columnar compression and dictionary encoding, allowing large datasets to be stored efficiently and queried rapidly. <\/p>\n\n\n\n<p>Understanding VertiPaq is important for optimising Power BI model performance; reducing cardinality and avoiding unnecessary columns reduce the memory footprint.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>16. What is a relationship in Power BI, and what types exist?<\/strong><\/h3>\n\n\n\n<p>A relationship defines how two tables are connected via a common key column. Types:<\/p>\n\n\n\n<ul>\n<li><strong>One-to-many (1:*)<\/strong>:&nbsp; Most common; one row in Table A relates to many in Table B<\/li>\n\n\n\n<li><strong>Many-to-one (*:1)<\/strong>: Inverse of above<\/li>\n\n\n\n<li><strong>One-to-one (1:1)<\/strong> <strong>:&nbsp; <\/strong>Rare; usually indicates tables can be merged<\/li>\n\n\n\n<li><strong>Many-to-many (<\/strong><strong><em>:<\/em><\/strong><strong>):&nbsp; <\/strong>Handled via bridge tables or DAX; use cautiously<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>17. What is cross-filtering in Power BI?<\/strong><\/h3>\n\n\n\n<p>Cross-filtering is when selecting a value in one visual automatically filters related visuals on the same report page. It works through the relationships defined in the data model. <\/p>\n\n\n\n<p>Direction can be single (default, flows one way) or bidirectional (filters flow both ways; use carefully, as it can impact performance and cause ambiguity).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Intermediate Power BI Interview Questions and Answers <\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>18. What is incremental refresh in Power BI and why is it used?<\/strong><\/h3>\n\n\n\n<p>Incremental refresh allows Power BI to refresh only new or changed data instead of reloading the entire dataset. It is configured by defining a date range (e.g., refresh the last 3 days, store the last 3 years). <\/p>\n\n\n\n<p>Benefits: faster refresh, reduced source system load, and ability to handle large datasets. Requires Power BI Premium or Premium Per User (PPU) for full functionality.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>19. What is a dataflow in Power BI?<\/strong><\/h3>\n\n\n\n<p>A dataflow is a cloud-based ETL (Extract, Transform, Load) feature in Power BI Service that uses Power Query Online to prepare and store data in Azure Data Lake Storage Gen2. <\/p>\n\n\n\n<p>Dataflows enable data reuse across multiple datasets and reports, centralizing data transformation logic. Think of dataflows as &#8220;reusable Power Query that lives in the cloud.&#8221;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>20. What is a Power BI App?<\/strong><\/h3>\n\n\n\n<p>A Power BI App is a packaged collection of dashboards and reports published from a workspace. It is the recommended way to distribute content to end users across an organisation. Apps provide a clean, read-only interface and allow version-controlled updates without affecting the underlying workspace.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>21. What is the CALCULATE function in DAX?<\/strong><\/h3>\n\n\n\n<p>CALCULATE is the most powerful DAX function. It evaluates an expression in a modified filter context. It can add, remove, or override filters applied to a calculation.<\/p>\n\n\n\n<p>Sales in Region East =<\/p>\n\n\n\n<p>CALCULATE(<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;SUM(Sales[Amount]),<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;Sales[Region] = &#8220;East&#8221;)<\/p>\n\n\n\n<p>This overrides whatever region filter is active and always returns East sales. CALCULATE is essential for time intelligence, comparisons, and complex business logic.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>22. What is context transition in DAX?<\/strong><\/h3>\n\n\n\n<p>Context transition occurs when DAX switches from row context to filter context, typically when CALCULATE (or an aggregation inside CALCULATE) is used inside an iterator function like SUMX or FILTER. <\/p>\n\n\n\n<p>Each row&#8217;s values create a filter context for that row. This is one of the most misunderstood DAX concepts and is frequently tested in senior interviews.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>23. What is a composite model in Power BI?<\/strong><\/h3>\n\n\n\n<p>A composite model combines Import and DirectQuery storage modes within the same Power BI dataset. Some tables are cached in memory (Import) while others are queried live (DirectQuery). <\/p>\n\n\n\n<p>This allows the best of both worlds: fast performance for large dimension tables (Import) and real-time data for transactional fact tables (DirectQuery).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>24. What is a bidirectional relationship and when should you avoid it?<\/strong><\/h3>\n\n\n\n<p>A bidirectional relationship allows filter context to flow in both directions between two tables. While useful in some scenarios, it should be used carefully because it can:<\/p>\n\n\n\n<ul>\n<li>Create <strong>ambiguous filter paths<\/strong> in complex models<\/li>\n\n\n\n<li><strong>Reduce query performance<\/strong> due to increased computation<\/li>\n\n\n\n<li>Cause <strong>unexpected results<\/strong> with many-to-many patterns<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>25. What is aggregation in Power BI?<\/strong><\/h3>\n\n\n\n<p>Aggregations are pre-computed summaries of large datasets stored in Power BI to speed up queries. When a query hits an aggregated table, Power BI returns the pre-computed result instead of scanning the full data. This is critical for handling hundreds of millions of rows in DirectQuery or composite models while maintaining fast report performance.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>26. How do you handle many-to-many relationships in Power BI<\/strong><\/h3>\n\n\n\n<p>There are two approaches:<\/p>\n\n\n\n<ol>\n<li><strong>Bridge table<\/strong>:&nbsp; Create an intermediate table that resolves the many-to-many into two one-to-many relationships (recommended for most scenarios)<\/li>\n\n\n\n<li><strong>Many-to-many cardinality with bidirectional filtering<\/strong>:&nbsp; Power BI supports this natively but requires careful handling to avoid performance issues and incorrect filter propagation<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>27. What is bookmarking in Power BI?<\/strong><\/h3>\n\n\n\n<p>Bookmarks capture the current state of a report page, including filters, slicers, visibility settings, and spotlight state and save it as a named snapshot. Users can navigate between bookmarks via buttons to create story-like presentations or toggle between different views of the same data without multiple pages.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>28. What are paginated reports in Power BI?<\/strong><\/h3>\n\n\n\n<p>Paginated reports (formerly SSRS reports) are pixel-perfect, print-ready reports designed for scenarios requiring exact formatting across many rows, such as invoices, statements, or regulatory filings. <\/p>\n\n\n\n<p>Unlike standard Power BI reports, paginated reports can span hundreds of pages and are optimized for export to PDF or print. Requires Power BI Premium or PPU.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>29. What is a KPI visual in Power BI?<\/strong><\/h3>\n\n\n\n<p>A KPI (Key Performance Indicator) visual displays a value, a target, and the status (on track or not) with a trend indicator. It requires three inputs: an Indicator (current value), a Trend axis (time), and a Target goal. KPI visuals are ideal for executive dashboards tracking performance against objectives.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>30. What is the ALLSELECTED function in DAX?<\/strong><\/h3>\n\n\n\n<p>ALLSELECTED removes all filters from a column or table except those applied by visual-level filters (i.e., it respects slicers and page filters but ignores cross-highlighting). It is commonly used to calculate a &#8220;% of filtered total&#8221;, where the denominator reflects what the user has filtered, not the entire dataset.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>% of Filtered Sales =\n\nDIVIDE(\n\n&nbsp;&nbsp;&nbsp;&nbsp;SUM(Sales&#91;Amount]),\n\n&nbsp;&nbsp;&nbsp;&nbsp;CALCULATE(SUM(Sales&#91;Amount]), ALLSELECTED(Sales)))<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>DAX Interview Questions (with Examples)<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>31. What is DAX in Power BI?<\/strong><\/h3>\n\n\n\n<p>DAX (Data Analysis Expressions) is Power BI&#8217;s formula language for creating custom calculations, measures, and calculated columns. It works on tables and columns, it is context-sensitive (results change based on the active filters), and it is modelled after Excel functions but designed for relational data.<\/p>\n\n\n\n<p>DAX is one of the most tested technical skills in Power BI developer interviews.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ SUM: directly sums the Amount column\nTotal Sales = SUM(Sales&#91;Amount])\n\n\/\/ SUMX: calculates Price \u00d7 Quantity per row, then sums the results\nRevenue = SUMX(Sales, Sales&#91;Price] * Sales&#91;Quantity])<\/code><\/pre>\n\n\n\n<p><strong>What&#8217;s happening:<\/strong><\/p>\n\n\n\n<ul>\n<li><code>SUM<\/code> is a simple aggregator. It adds up one column and nothing more.<\/li>\n\n\n\n<li><code>SUMX<\/code> is an iterator. It goes through the Sales table row by row, does the math for each row, then adds up the results.<\/li>\n\n\n\n<li>Use <code>SUMX<\/code> when the value you need doesn&#8217;t exist as a single column, like Price \u00d7 Quantity.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>32. What is the CALCULATE function syntax, and how does it work?<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>CALCULATE(&lt;expression&gt;, &lt;filter1&gt;, &lt;filter2&gt;, ...)<\/code><\/pre>\n\n\n\n<p>CALCULATE modifies the filter context in which the expression is evaluated. Each filter argument can add, remove, or replace existing filters. It is the most fundamental DAX function for writing business logic.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ Sales only for 2026\nSales 2026 =\nCALCULATE(\n    SUM(Sales&#91;Amount]),\n    Calendar&#91;Year] = 2026\n)\n\n\/\/ Sales ignoring any Region filter\nAll Region Sales =\nCALCULATE(\n    SUM(Sales&#91;Amount]),\n    ALL(Sales&#91;Region])\n)<\/code><\/pre>\n\n\n\n<p><strong>What&#8217;s happening:<\/strong><\/p>\n\n\n\n<ul>\n<li>The first measure forces the year to 2026, no matter what year the report is currently showing.<\/li>\n\n\n\n<li>The second measure clears any filter on Region, so a slicer or visual that selects &#8220;East&#8221; still shows the total across all regions.<\/li>\n\n\n\n<li>A handy interview line: CALCULATE changes the context first, then evaluates the expression.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>33. How do you write a Year-over-Year (YoY) growth measure in DAX?<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>Sales PY =\nCALCULATE(\n    SUM(Sales&#91;Amount]),\n    SAMEPERIODLASTYEAR(Calendar&#91;Date])\n)\n\nYoY Growth % =\nDIVIDE(\n    SUM(Sales&#91;Amount]) - &#91;Sales PY],\n    &#91;Sales PY],\n    0\n)<\/code><\/pre>\n\n\n\n<p>SAMEPERIODLASTYEAR is a time intelligence function that returns the same period from the previous year. A properly marked Date table is required for all time intelligence functions.<\/p>\n\n\n\n<p><strong>What&#8217;s happening:<\/strong><\/p>\n\n\n\n<ul>\n<li><code>Sales PY<\/code> shifts the date filter back one year and sums the sales for that shifted period.<\/li>\n\n\n\n<li><code>YoY Growth %<\/code> takes (current sales minus last year&#8217;s sales) divided by last year&#8217;s sales.<\/li>\n\n\n\n<li><code>DIVIDE<\/code> protects you when last year had no sales, returning 0 instead of an error.<\/li>\n\n\n\n<li>Format the result as a percentage in the Measure tools tab.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>34. What is the difference between FILTER and ALL in DAX?<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th><strong>Function<\/strong><\/th><th><strong>Purpose<\/strong><\/th><\/tr><\/thead><tbody><tr><td><code>FILTER(table, condition)<\/code><\/td><td>Returns a subset of a table based on a condition, and adds that as a filter<\/td><\/tr><tr><td><code>ALL(table\/column)<\/code><\/td><td>Removes all filters from a table or column, used to override filter context<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ FILTER: sales only for \"Electronics\"\nElectronics Sales =\nCALCULATE(\n    SUM(Sales&#91;Amount]),\n    FILTER(Sales, Sales&#91;Category] = \"Electronics\")\n)\n\n\/\/ ALL: total sales regardless of any filter applied\nTotal All Sales =\nCALCULATE(\n    SUM(Sales&#91;Amount]),\n    ALL(Sales)\n)<\/code><\/pre>\n\n\n\n<p><strong>What&#8217;s happening:<\/strong><\/p>\n\n\n\n<ul>\n<li><code>FILTER<\/code> scans the Sales table and keeps only the rows where Category is Electronics, and CALCULATE applies that result.<\/li>\n\n\n\n<li><code>ALL(Sales)<\/code> wipes out every filter on the Sales table, so you get the grand total.<\/li>\n\n\n\n<li>Pro tip: for a simple condition, <code>CALCULATE(SUM(Sales[Amount]), Sales[Category] = \"Electronics\")<\/code> does the same job and is usually faster. Save <code>FILTER<\/code> for complex conditions.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>35. What is the DIVIDE function and why use it instead of &#8220;\/&#8221;?<\/strong><\/h3>\n\n\n\n<p><code>DIVIDE(numerator, denominator, [alternate_result])<\/code> safely handles division by zero by returning the alternate result (default is BLANK) instead of an error.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ Unsafe: returns an error when revenue is 0\nProfit Margin =\nSUM(Sales&#91;Profit]) \/ SUM(Sales&#91;Revenue])\n\n\/\/ Safe: returns 0 when revenue is 0\nProfit Margin =\nDIVIDE(SUM(Sales&#91;Profit]), SUM(Sales&#91;Revenue]), 0)<\/code><\/pre>\n\n\n\n<p><strong>What&#8217;s happening:<\/strong><\/p>\n\n\n\n<ul>\n<li>Measures need an aggregation like <code>SUM<\/code>. A bare column reference such as <code>Sales[Profit]<\/code> only works inside a calculated column, where DAX evaluates one row at a time.<\/li>\n\n\n\n<li>With &#8220;\/&#8221;, a zero revenue produces an error that can break visuals.<\/li>\n\n\n\n<li>With <code>DIVIDE<\/code>, you get a clean fallback value instead.<\/li>\n<\/ul>\n\n\n\n<p>Always use DIVIDE in production DAX to prevent report errors.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>36. What are time intelligence functions in DAX? Name five.<\/strong><\/h3>\n\n\n\n<p>Time intelligence functions manipulate date periods in calculations. They require a properly marked Date table with continuous dates.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Function<\/th><th>Returns<\/th><\/tr><\/thead><tbody><tr><td><code>SAMEPERIODLASTYEAR<\/code><\/td><td>The same period in the prior year<\/td><\/tr><tr><td><code>DATEADD<\/code><\/td><td>Dates shifted by N intervals (days, months, quarters, years)<\/td><\/tr><tr><td><code>TOTALYTD<\/code><\/td><td>Year-to-date total of an expression<\/td><\/tr><tr><td><code>PREVIOUSMONTH<\/code><\/td><td>All dates in the previous month<\/td><\/tr><tr><td><code>DATESYTD<\/code><\/td><td>All dates from the start of the year to the current date<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>YTD Sales = TOTALYTD(SUM(Sales&#91;Amount]), Calendar&#91;Date])\n\nMTD Sales =\nCALCULATE(\n    SUM(Sales&#91;Amount]),\n    DATESMTD(Calendar&#91;Date])\n)<\/code><\/pre>\n\n\n\n<p><strong>What&#8217;s happening:<\/strong><\/p>\n\n\n\n<ul>\n<li><code>TOTALYTD<\/code> is a shortcut that gives you the running total from January 1 up to the current date in context.<\/li>\n\n\n\n<li>The MTD measure does the same thing for the month, using <code>DATESMTD<\/code> as the filter inside CALCULATE.<\/li>\n\n\n\n<li>Good to know: <code>TOTALYTD<\/code> returns a value, while <code>DATESYTD<\/code> returns a list of dates that you pass into CALCULATE.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>37. What is the difference between DISTINCTCOUNT and COUNTROWS?<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th><strong>Function<\/strong><\/th><th><strong>Counts<\/strong><\/th><\/tr><\/thead><tbody><tr><td><code>DISTINCTCOUNT(column)<\/code><\/td><td>Unique values in a column<\/td><\/tr><tr><td><code>COUNTROWS(table)<\/code><\/td><td>Total rows in a table (or a filtered table)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>Unique Customers = DISTINCTCOUNT(Sales&#91;CustomerID])\n\nTotal Transactions = COUNTROWS(Sales)<\/code><\/pre>\n\n\n\n<p><strong>What&#8217;s happening:<\/strong><\/p>\n\n\n\n<ul>\n<li>If one customer buys five times, <code>Unique Customers<\/code> counts them once.<\/li>\n\n\n\n<li><code>Total Transactions<\/code> counts all five rows.<\/li>\n\n\n\n<li>Together they tell you how often customers return to buy.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>38. What is the RANKX function in DAX?<\/strong><\/h3>\n\n\n\n<p>RANKX returns the ranking of an expression within a table. It is commonly used for Top N analysis.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Total Sales = SUM(Sales&#91;Amount])\n\nProduct Rank =\nRANKX(\n    ALL(Products&#91;ProductName]),\n    &#91;Total Sales],\n    ,\n    DESC,\n    DENSE\n)<\/code><\/pre>\n\n\n\n<p>Parameters: table, expression, value, order (ASC\/DESC), ties (SKIP or DENSE).<\/p>\n\n\n\n<p><strong>What&#8217;s happening:<\/strong><\/p>\n\n\n\n<ul>\n<li><code>ALL(Products[ProductName])<\/code> builds the full list of products to rank against, ignoring the current filter on product.<\/li>\n\n\n\n<li><code>[Total Sales]<\/code> is the number used for ranking.<\/li>\n\n\n\n<li>The empty third argument is the optional &#8220;value&#8221; parameter, which we skip.<\/li>\n\n\n\n<li><code>DESC<\/code> puts the highest sales at rank 1.<\/li>\n\n\n\n<li><code>DENSE<\/code> means ties share a rank and the next rank doesn&#8217;t skip a number (1, 2, 2, 3 instead of 1, 2, 2, 4).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>39. What is a Date table, and why is it required in Power BI?<\/strong><\/h3>\n\n\n\n<p>A Date table (also called a Calendar table) is a dedicated table with one row per date and columns for Year, Quarter, Month, Week, Day, and so on.<\/p>\n\n\n\n<p>It is required for time intelligence DAX functions to work correctly. Without a proper Date table, functions like <code>SAMEPERIODLASTYEAR<\/code> and <code>TOTALYTD<\/code> can produce incorrect results.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Calendar =\nADDCOLUMNS(\n    CALENDAR(DATE(2020, 1, 1), DATE(2026, 12, 31)),\n    \"Year\", YEAR(&#91;Date]),\n    \"Quarter\", \"Q\" &amp; QUARTER(&#91;Date]),\n    \"Month Number\", MONTH(&#91;Date]),\n    \"Month\", FORMAT(&#91;Date], \"MMMM\")\n)<\/code><\/pre>\n\n\n\n<p><strong>What&#8217;s happening:<\/strong><\/p>\n\n\n\n<ul>\n<li><code>CALENDAR<\/code> creates one row for every date between the two dates you give it.<\/li>\n\n\n\n<li><code>ADDCOLUMNS<\/code> adds the Year, Quarter, and Month columns you&#8217;ll use in visuals and filters.<\/li>\n<\/ul>\n\n\n\n<p><strong>Best practice:<\/strong><\/p>\n\n\n\n<ul>\n<li>Mark the table as a Date table in Power BI Desktop using Table tools &gt; Mark as date table, then select the Date column. The column must contain unique values with no gaps and should cover full calendar years.<\/li>\n\n\n\n<li>Connect it to your fact table with a relationship on the date column.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong><strong>Power BI Developer Interview Questions and Answers <\/strong>&nbsp;<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>40. What is Power Query in Power BI?<\/strong><\/h3>\n\n\n\n<p>Power Query is Power BI&#8217;s ETL (Extract, Transform, Load) engine. It connects to data sources, cleans and shapes data, and loads it into the data model. Power Query uses the M language (also called the Power Query Formula Language) and provides a graphical interface in which each transformation step is recorded. It is the first step in the Power BI workflow before DAX modeling.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>41. What is the M language in Power Query?<\/strong><\/h3>\n\n\n\n<p>M is the functional, case-sensitive formula language behind Power Query transformations. Each step in the Query Editor generates M code automatically. <\/p>\n\n\n\n<p>While most users work through the GUI, advanced users write M directly for complex transformations. M is evaluated lazily; it only executes the steps needed to produce the requested output.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>42. What is query folding in Power Query?<\/strong><\/h3>\n\n\n\n<p>Query folding is the ability of Power Query to translate M transformations back into native SQL (or equivalent) queries that execute on the data source, rather than pulling raw data into Power BI and transforming it locally. <\/p>\n\n\n\n<p>Query folding improves performance significantly by pushing computation to the source server. Not all data sources and transformations support folding; transformations that break folding (like adding an index column) should be placed last in the query steps.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>43.&nbsp; What is a custom column vs a conditional column in Power Query?<\/strong><\/h3>\n\n\n\n<p>A <strong>custom column<\/strong> in Power Query is created using <strong>M formulas<\/strong> and allows users to perform advanced calculations, combine fields, apply logic, or create fully customized transformations based on business requirements. It gives more flexibility and control while working with data.<\/p>\n\n\n\n<p>A <strong>conditional column<\/strong> creates a new column based on simple <strong>if-else conditions<\/strong> using an easy graphical interface. <\/p>\n\n\n\n<p>It is faster and easier for beginners because it does not require strong knowledge of <strong>M language<\/strong>. Both add new columns to the query, but custom columns are more flexible, while conditional columns are mainly used for quick, rule-based transformations.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>44.&nbsp; What is the purpose of the &#8220;Applied Steps&#8221; pane in Power Query?<\/strong><\/h3>\n\n\n\n<p>Applied Steps records every transformation step taken on a query as an ordered list. Each step generates M code. You can reorder, rename, or delete steps, and clicking any step previews data at that point. This step history also determines query folding: Power BI evaluates how many steps it can push to the source.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>45.&nbsp; How do you handle null values in Power Query?<\/strong><\/h3>\n\n\n\n<p>Common approaches:<\/p>\n\n\n\n<ul>\n<li><strong>Replace values: <\/strong>Replace null with 0, &#8220;Unknown&#8221;, or a default value<\/li>\n\n\n\n<li><strong>Remove rows:&nbsp; <\/strong>Delete rows where a key column is null<\/li>\n\n\n\n<li><strong>Fill down\/up:&nbsp; <\/strong>&nbsp;Fill null with the previous\/next non-null value (for time-series data)<\/li>\n\n\n\n<li><strong>Conditional logic: <\/strong>Use a custom column with if [Column] = null then &#8220;Default&#8221; else [Column]<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>46.&nbsp; What is a parameter in Power Query?<\/strong><\/h3>\n\n\n\n<p>A Power Query parameter is a named, typed value you can use across multiple queries, commonly for file paths, server names, date ranges, or filter values. Parameters make queries dynamic and reusable. Combined with Power BI&#8217;s &#8220;What If&#8221; parameters, they enable scenario analysis in reports.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>47.&nbsp; What is the difference between &#8220;Close &amp; Apply&#8221; and &#8220;Close &amp; Discard&#8221; in Power Query?<\/strong><\/h3>\n\n\n\n<ul>\n<li><strong>Close &amp; Apply:&nbsp; <\/strong>&nbsp;Saves all query changes and loads data into the Power BI model. Triggers a data refresh.<\/li>\n\n\n\n<li><strong>Close &amp; Discard:&nbsp; <\/strong>&nbsp;Exits Power Query Editor without saving any changes made in the current session.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>48.&nbsp; How do you unpivot columns in Power Query and when would you use it?<\/strong><\/h3>\n\n\n\n<p>Unpivoting converts column headers into row values, transforming a wide table into a tall (normalized) table.<\/p>\n\n\n\n<p>Example: A table with columns [Product, Jan, Feb, Mar] becomes [Product, Month, Sales] after unpivoting. This is essential when source data is structured for display (crosstab format) but needs to be normalized for use in a data model or DAX aggregations.<\/p>\n\n\n\n<p>In Power Query: Select columns to unpivot \u2192 Transform \u2192 Unpivot Columns.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Data Modeling Interview Questions&nbsp;<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>49.&nbsp; What is a role-playing dimension?<\/strong><\/h3>\n\n\n\n<p>A role-playing dimension is a single dimension table that is referenced multiple times by a fact table in different contexts. The most common example is a Date table used as both Order Date and Ship Date. <\/p>\n\n\n\n<p>In Power BI, handle this by creating multiple relationships (one active, others inactive) and using USERELATIONSHIP in DAX for the inactive ones.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>50.&nbsp; How do you optimize a Power BI data model for performance?<\/strong><\/h3>\n\n\n\n<p>Key optimisation techniques:<\/p>\n\n\n\n<ul>\n<li>Use star schema, not snowflake<\/li>\n\n\n\n<li>Remove unused columns and tables<\/li>\n\n\n\n<li>Reduce column cardinality (e.g., store date as Date type, not DateTime)<\/li>\n\n\n\n<li>Avoid calculated columns where measures can achieve the same result<\/li>\n\n\n\n<li>Use aggregations for large DirectQuery datasets<\/li>\n\n\n\n<li>Avoid bidirectional relationships unless required<\/li>\n\n\n\n<li>Limit use of many-to-many relationships<\/li>\n\n\n\n<li>Import only required columns from source<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>51. How does Power BI handle inactive relationships, and when is USERELATIONSHIP used?<\/strong><\/h3>\n\n\n\n<p>In Power BI, only one relationship between two tables can remain <strong>active<\/strong> at a time. Power BI uses the active relationship by default to filter and connect data between tables. Sometimes, a table may contain multiple date columns, such as <strong>Order Date<\/strong> and <strong>Delivery Date<\/strong>. In such cases, one relationship <span style=\"margin: 0px; padding: 0px;\">remains active while the other becomes&nbsp;<strong>inactive<\/strong><\/span>.<\/p>\n\n\n\n<p>This is where <strong>USERELATIONSHIP<\/strong> is used in DAX measures. It temporarily activates the inactive relationship for a specific calculation. In real projects, this helps developers create reports using different business conditions without changing the entire data model. <\/p>\n\n\n\n<p>For instance, a sales report typically uses <strong>Order Date<\/strong>, but another calculation may need to analyse data based on <strong>Delivery Date<\/strong> instead.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>52. What is the role of normalisation and denormalisation in Power BI data modelling?<\/strong><\/h3>\n\n\n\n<p>In Power BI, <strong>normalization<\/strong> means splitting data into multiple related tables to reduce duplicate data and keep the database more organised. On the other hand, <strong>denormalization<\/strong> combines related data into fewer tables to improve reporting speed and simplify analysis. <\/p>\n\n\n\n<p>In real projects, Power BI developers usually prefer a balanced approach because highly normalized models can make reports slower and more complex, while properly denormalized models improve query performance and make dashboards easier to build and maintain.<\/p>\n\n\n\n<p>The following are the key benefits of using <strong>normalization<\/strong> and <strong>denormalization<\/strong> in <strong>Power BI data modeling<\/strong>:<\/p>\n\n\n\n<ul>\n<li><strong>Normalization<\/strong> helps reduce duplicate data and improves data consistency.<\/li>\n\n\n\n<li><strong>Denormalization<\/strong> improves report performance and speeds up data analysis.<\/li>\n\n\n\n<li>A balanced data model helps create faster, cleaner, and more reliable <strong>Power BI reports<\/strong>.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>53. How can incorrect relationship cardinality affect DAX calculations and report accuracy?<\/strong><\/h3>\n\n\n\n<p><strong>Relationship cardinality<\/strong> defines how tables are connected in Power BI, such as <span style=\"margin: 0px; padding: 0px;\"><strong>one-to-one, one-to-many,<\/strong>&nbsp;or&nbsp;<strong>many-to-many<\/strong><\/span>. If you select the wrong cardinality, Power BI may filter data incorrectly, leading to incorrect totals, duplicate values, or missing records in reports.<\/p>\n\n\n\n<p>In real-world dashboards, this issue often creates confusion because the visuals may look correct at first but show inaccurate calculations behind the scenes. <\/p>\n\n\n\n<p><strong><em>For example<\/em><\/strong>, if duplicate customer IDs exist in a table that should contain unique values, Power BI may repeat sales numbers during calculations. This directly affects <strong>DAX measures<\/strong>, filtering logic, and overall report reliability.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>54. How does composite modelling work in Power BI with DirectQuery and Import mode tables?<\/strong><\/h3>\n\n\n\n<p><strong>Composite modeling<\/strong> in Power BI allows developers to use both <strong>Import mode<\/strong> and <strong>DirectQuery mode<\/strong> in the same report. This helps businesses combine fast stored data with live real-time data without creating separate dashboards.<\/p>\n\n\n\n<p>In real-world projects, some data requires very fast performance, while other data must remain connected to live databases to stay up to date. Composite models help manage both situations together, making reports more flexible and practical for large organisations.<\/p>\n\n\n\n<p>However, combining <strong>DirectQuery<\/strong> and <strong>Import tables<\/strong> can sometimes create performance and relationship challenges. If the data model is not properly designed, reports may run slowly, filters may behave unexpectedly, and DAX calculations may become more complex.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>55. A Power BI dashboard becomes slow after adding large transactional tables. How would you optimise the data model?<\/strong><\/h3>\n\n\n\n<p>When a Power BI dashboard <span style=\"margin: 0px; padding: 0px;\">slows down, start by improving the data model: remove unused columns, reduce duplicates, and build<\/span> a proper&nbsp;star schema&nbsp;to improve relationships and filtering.<\/p>\n\n\n\n<p>After that, you can improve performance further by using optimised <strong>DAX measures<\/strong>, aggregated tables, and limiting heavy visuals. In real projects, developers also prefer using <strong>Import mode<\/strong> and simple relationships to make dashboards faster and more stable.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>56. What is the difference between a star schema and a snowflake schema in Power BI data modeling?<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th><strong>Feature<\/strong><\/th><th><strong>Star Schema<\/strong><\/th><th><strong>Snowflake Schema<\/strong><\/th><\/tr><\/thead><tbody><tr><td><strong>Structure<\/strong><\/td><td>Uses fewer tables with direct relationships<\/td><td>Uses multiple related tables with normalized dimensions<\/td><\/tr><tr><td><strong>Performance<\/strong><\/td><td>Usually provides faster query performance<\/td><td>Can be slower due to more joins<\/td><\/tr><tr><td><strong>Complexity<\/strong><\/td><td>Easier to understand and maintain<\/td><td>More complex to build and manage<\/td><\/tr><tr><td><strong>Storage<\/strong><\/td><td>Uses more storage because of duplicate data<\/td><td>Uses less storage due to normalization<\/td><\/tr><tr><td><strong>Usage in Power BI<\/strong><\/td><td>Commonly recommended for better reporting performance<\/td><td>Used when data consistency and reduced redundancy are priorities<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>In Power BI projects, a <strong><em>star schema is generally preferred<\/em><\/strong> because it simplifies relationships and improves report performance.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>57. How do fact tables and dimension tables work together in a Power BI data model?<\/strong><\/h3>\n\n\n\n<p><strong>Fact tables<\/strong> store measurable business data such as sales, revenue, transactions, or quantities. These tables usually contain large volumes of records and connect to dimension tables through keys. Dimension tables store descriptive information such as customer names, products, locations, or dates.<\/p>\n\n\n\n<p>Together, fact and dimension tables create a structure that makes filtering, grouping, and calculations easier. This approach is widely used because it improves report performance, simplifies relationships, and makes dashboards easier to build and maintain.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Power BI Scenario-Based Interview Questions<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>58. A Power BI report takes more than 30 seconds to load after the dataset grew to 50 million rows. How would you diagnose and fix it?<\/strong><\/h3>\n\n\n\n<p>Find the bottleneck first. Run Performance Analyzer (View &gt; Performance analyzer) to see whether the delay comes from the DAX query or visual rendering. Then test the slow query in DAX Studio and use VertiPaq Analyzer to find the heaviest tables and columns.<\/p>\n\n\n\n<p>Common fixes:<\/p>\n\n\n\n<ul>\n<li>Remove unused columns and reduce cardinality (split datetime into date and time, drop GUIDs).<\/li>\n\n\n\n<li>Use a star schema with a narrow fact table.<\/li>\n\n\n\n<li>Move calculated columns on the big table into Power Query or the source.<\/li>\n\n\n\n<li>Rewrite heavy DAX with variables, and avoid <code>FILTER<\/code> over the whole fact table.<\/li>\n\n\n\n<li>Use fewer visuals per page and add aggregation tables for summary visuals.<\/li>\n<\/ul>\n\n\n\n<p>Incremental refresh helps at this size, but it speeds up data refresh, not report load time.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>59. Your scheduled refresh in Power BI Service fails every night even though it works fine in Power BI Desktop. How would you troubleshoot it?<\/strong><\/h3>\n\n\n\n<p>Desktop uses your machine and credentials, which can hide problems the Service exposes. Start with the error message in the dataset&#8217;s Refresh history, then check:<\/p>\n\n\n\n<ul>\n<li><strong>Gateway:<\/strong> On-premises sources need an online gateway mapped to the data source.<\/li>\n\n\n\n<li><strong>Credentials:<\/strong> Expired passwords or tokens are the most common cause. Re-enter them in the dataset settings.<\/li>\n\n\n\n<li><strong>Local file paths:<\/strong> <code>C:\\...<\/code> paths are not reachable from the Service. Use SharePoint, OneDrive, or a gateway.<\/li>\n\n\n\n<li><strong>Source changes:<\/strong> Renamed columns or tables break Power Query steps.<\/li>\n\n\n\n<li><strong>Limits:<\/strong> Pro allows 8 scheduled refreshes per day, Premium allows 48, and refreshes on shared capacity time out after 2 hours.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>60. A regional manager should only see data for their own region in a shared report. How would you implement this?<\/strong><\/h3>\n\n\n\n<p>Use Row-Level Security (RLS). Create a role under Modeling &gt; Manage roles, test it with View as, publish the report, then add users to the role in the dataset&#8217;s Security settings in the Service.<\/p>\n\n\n\n<p>A static filter like <code>[Region] = \"East\"<\/code> needs one role per region. A dynamic role scales better. Add a manager email column to the Region table and use one role:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Region&#91;ManagerEmail] = USERPRINCIPALNAME()<\/code><\/pre>\n\n\n\n<p><strong>What&#8217;s happening:<\/strong><\/p>\n\n\n\n<ul>\n<li><code>USERPRINCIPALNAME()<\/code> returns the email of the person viewing the report.<\/li>\n\n\n\n<li>The filter keeps only that manager&#8217;s regions, and the relationship carries it through to the sales data.<\/li>\n<\/ul>\n\n\n\n<p>RLS applies only to Viewers. Admins, Members, and Contributors see all data, so share through an app or the Viewer role.<\/p>\n\n\n\n<p><strong><em>Know About <a href=\"https:\/\/www.guvi.in\/blog\/role-blog\/power-bi-developer-roles\/\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/www.guvi.in\/blog\/role-blog\/power-bi-developer-roles\/\" rel=\"noreferrer noopener\">Power BI Developer Roles and Responsibilities<\/a><\/em><\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>61. The Total row in your matrix visual does not match the sum of the individual rows. What could be causing this and how would you fix it?<\/strong><\/h3>\n\n\n\n<p>The Total row is not a sum of the rows above it. Power BI runs the measure again with the row filters removed. This commonly affects ratios, averages, distinct counts, and measures with an <code>IF<\/code> on an aggregated value.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Bonus =\nIF(&#91;Total Sales] &gt; 10000, &#91;Total Sales] * 0.1, 0)\n\nBonus Fixed =\nSUMX(\n    VALUES(Products&#91;ProductName]),\n    &#91;Bonus]\n)<\/code><\/pre>\n\n\n\n<ul>\n<li>In the Total row, <code>[Total Sales]<\/code> is the grand total, so the condition is checked once instead of per product.<\/li>\n\n\n\n<li><code>SUMX<\/code> over <code>VALUES<\/code> evaluates <code>[Bonus]<\/code> for each product and adds the results, so the total matches the rows.<\/li>\n<\/ul>\n\n\n\n<p>Confirm it&#8217;s a bug first. A <code>DISTINCTCOUNT<\/code> of customers should not add up, since one customer can appear in several rows.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>62. Your Year-over-Year measure returns blank for the first month of every year. How would you debug and correct it?<\/strong><\/h3>\n\n\n\n<p><code>SAMEPERIODLASTYEAR<\/code> handles January fine, so the cause is usually the data, the Date table, or custom logic. Check:<\/p>\n\n\n\n<ul>\n<li><strong>Prior-year data:<\/strong> If last year has no sales for that month, blank is correct.<\/li>\n\n\n\n<li><strong>Date table coverage:<\/strong> It must be continuous and cover full calendar years.<\/li>\n\n\n\n<li><strong>Setup:<\/strong> It must be marked as a Date table, with an active relationship to the fact table, and the measure should use <code>Calendar[Date]<\/code>.<\/li>\n\n\n\n<li><strong>Hand-built logic:<\/strong> Something like <code>Month - 1<\/code> breaks at the year boundary. Use a time intelligence function instead.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>Calendar =\nCALENDAR(\n    DATE(YEAR(MIN(Sales&#91;Date])), 1, 1),\n    DATE(YEAR(MAX(Sales&#91;Date])), 12, 31)\n)<\/code><\/pre>\n\n\n\n<ul>\n<li><code>CALENDAR<\/code> builds every date from January 1 of the first year to December 31 of the last year, so no period is cut off.<\/li>\n\n\n\n<li>With full years in place, <code>SAMEPERIODLASTYEAR<\/code> shifts January back to the prior January correctly.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Power BI MCQ Questions <\/strong><em>[Quick Assessment]<\/em><\/h2>\n\n\n\n<p><strong>1.<\/strong> Which storage mode queries data live from the source without importing it?<\/p>\n\n\n\n<ul>\n<li>a) Import<\/li>\n\n\n\n<li>b) DirectQuery&nbsp;<\/li>\n\n\n\n<li>c) Live Connection<\/li>\n\n\n\n<li>d) Composite<\/li>\n<\/ul>\n\n\n\n<p><strong>2.<\/strong> Which DAX function removes all filters from a column or table?<\/p>\n\n\n\n<ul>\n<li>a) FILTER<\/li>\n\n\n\n<li>b) REMOVEFILTERS<\/li>\n\n\n\n<li>c) ALL&nbsp;<\/li>\n\n\n\n<li>d) ALLEXCEPT<\/li>\n<\/ul>\n\n\n\n<p><strong>3.<\/strong> What is the maximum dataset size for Power BI Pro?<\/p>\n\n\n\n<ul>\n<li>a) 500 MB<\/li>\n\n\n\n<li>b) 1 GB&nbsp;<\/li>\n\n\n\n<li>c) 10 GB<\/li>\n\n\n\n<li>d) 100 GB<\/li>\n<\/ul>\n\n\n\n<p><strong>4.<\/strong> Which function is used for dynamic RLS based on the logged-in user&#8217;s email?<\/p>\n\n\n\n<ul>\n<li>a) USERNAME()<\/li>\n\n\n\n<li>b) CURRENTUSER()<\/li>\n\n\n\n<li>c) USERPRINCIPALNAME()&nbsp;<\/li>\n\n\n\n<li>d) GETUSER()<\/li>\n<\/ul>\n\n\n\n<p><strong>5.<\/strong> A calculated column is evaluated at:<\/p>\n\n\n\n<ul>\n<li>a) Query time<\/li>\n\n\n\n<li>b) Visualization time<\/li>\n\n\n\n<li>c) Data refresh time&nbsp;<\/li>\n\n\n\n<li>d) Filter time<\/li>\n<\/ul>\n\n\n\n<p><strong>6.<\/strong> Which schema is recommended for Power BI data models?<\/p>\n\n\n\n<ul>\n<li>a) Snowflake Schema<\/li>\n\n\n\n<li>b) Galaxy Schema<\/li>\n\n\n\n<li>c) Star Schema&nbsp;<\/li>\n\n\n\n<li>d) Flat Schema<\/li>\n<\/ul>\n\n\n\n<p><strong>7.<\/strong> Which Power Query operation is equivalent to SQL UNION ALL?<\/p>\n\n\n\n<ul>\n<li>a) Merge<\/li>\n\n\n\n<li>b) Append&nbsp;<\/li>\n\n\n\n<li>c) Combine<\/li>\n\n\n\n<li>d) Join<\/li>\n<\/ul>\n\n\n\n<p><strong>8.<\/strong> What does DIVIDE(10, 0, -1) return in DAX?<\/p>\n\n\n\n<ul>\n<li>a) Error<\/li>\n\n\n\n<li>b) BLANK<\/li>\n\n\n\n<li>c) 0<\/li>\n\n\n\n<li>d) -1&nbsp;<\/li>\n<\/ul>\n\n\n\n<p><strong>9.<\/strong> Which visual allows users to interactively filter other visuals on a report page?<\/p>\n\n\n\n<ul>\n<li>a) Filter Pane<\/li>\n\n\n\n<li>b) KPI Card<\/li>\n\n\n\n<li>c) Slicer&nbsp;<\/li>\n\n\n\n<li>d) Tooltip<\/li>\n<\/ul>\n\n\n\n<p><strong>10.<\/strong> Which Power BI feature requires Premium capacity or PPU?<\/p>\n\n\n\n<ul>\n<li>a) Importing Excel data<\/li>\n\n\n\n<li>b) Incremental refresh&nbsp;<\/li>\n\n\n\n<li>c) Creating dashboards<\/li>\n\n\n\n<li>d) Using slicers<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Answer Key<\/strong><\/h2>\n\n\n\n<ol>\n<li>b) DirectQuery<\/li>\n\n\n\n<li>c) ALL<\/li>\n\n\n\n<li>b) 1 GB<\/li>\n\n\n\n<li>c) USERPRINCIPALNAME()<\/li>\n\n\n\n<li>c) Data refresh time<\/li>\n\n\n\n<li>c) Star Schema<\/li>\n\n\n\n<li>b) Append<\/li>\n\n\n\n<li>d) -1<\/li>\n\n\n\n<li>c) Slicer<\/li>\n\n\n\n<li>b) Incremental refresh<\/li>\n<\/ol>\n\n\n\n<p><em><strong>Also Read: <a href=\"https:\/\/www.guvi.in\/blog\/power-bi-and-tableau-comparison-guide\/\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/www.guvi.in\/blog\/power-bi-and-tableau-comparison-guide\/\" rel=\"noreferrer noopener\">Power BI and Tableau: A Comprehensive Comparison<\/a><\/strong><\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Conclusion<\/strong><\/h2>\n\n\n\n<p>In conclusion, mastering <strong>Power BI<\/strong> can open great career opportunities in <strong><a href=\"https:\/\/www.guvi.in\/blog\/what-is-business-analytics\/\" target=\"_blank\" rel=\"noreferrer noopener\">Business Analytics<\/a><\/strong> and reporting. These <strong>Power BI Developer Interview Questions and Answers<\/strong> will help you improve your knowledge of <strong>DAX<\/strong>, <strong>Power Query<\/strong>, <strong>data modelling<\/strong>, and dashboards, making interview preparation easier and helping you handle real-world projects with confidence.<br><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>FAQs<\/strong><\/h2>\n\n\n<div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list \">\n<div id=\"faq-question-1777462010394\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>1. Do I really need to know DAX for a Power BI interview?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Yes. DAX is tested in almost every Power BI developer interview beyond entry level. You should be comfortable with functions such as SUM, CALCULATE, FILTER, ALL, and basic time intelligence concepts, and understand the difference between measures and calculated columns.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1777462037618\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>2. How long does it take to prepare for a Power BI developer interview?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>For freshers, it usually takes about 6 to 8 weeks of focused preparation covering DAX, data modeling, and Power Query. For professionals transitioning from related roles, 2 to 3 weeks may be enough. Building a few strong portfolio projects can significantly improve your chances of success.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1777462047151\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>3. What skills are required to become a Power BI developer?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>You need a mix of data skills and business understanding. Key skills include DAX, Power Query, data modeling, SQL, and basic knowledge of data visualization best practices.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1777462055981\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>4. Is Power BI easy to learn for beginners?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Yes. Power BI has a user-friendly interface, especially for beginners. However, mastering advanced topics like DAX and data modeling takes time and practice.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1777462076508\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>5. Do I need to learn SQL for Power BI?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>It is not mandatory, but SQL is highly recommended. It helps you work with databases, write queries, and handle data more efficiently.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1777462094204\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>6. What projects should I build for a Power BI portfolio?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Build dashboards for sales analysis, customer segmentation, financial reporting, and KPI tracking. Real-world datasets make your portfolio stronger.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1777462111091\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>7. Which industries hire Power BI developers?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Power BI developers are in demand across industries such as IT services, banking, healthcare, e-commerce, retail, and consulting.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>The world of data is growing rapidly, and companies are actively hiring professionals who can turn complex data into meaningful insights. To build a successful career in analytics, mastering Power BI is increasingly important, especially for roles focused on dashboards, reporting, data modelling, and business intelligence solutions. If you are preparing for a job in [&hellip;]<\/p>\n","protected":false},"author":64,"featured_media":142700,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[719,745,16],"tags":[],"views":"10928","authorinfo":{"name":"Abhishek Pati","url":"https:\/\/www.guvi.in\/blog\/author\/abhishek-pati\/"},"thumbnailURL":"https:\/\/www.guvi.in\/blog\/wp-content\/uploads\/2024\/11\/Top-Power-BI-Interview-Questions-300x116.webp","_links":{"self":[{"href":"https:\/\/www.guvi.in\/blog\/wp-json\/wp\/v2\/posts\/66306"}],"collection":[{"href":"https:\/\/www.guvi.in\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.guvi.in\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.guvi.in\/blog\/wp-json\/wp\/v2\/users\/64"}],"replies":[{"embeddable":true,"href":"https:\/\/www.guvi.in\/blog\/wp-json\/wp\/v2\/comments?post=66306"}],"version-history":[{"count":70,"href":"https:\/\/www.guvi.in\/blog\/wp-json\/wp\/v2\/posts\/66306\/revisions"}],"predecessor-version":[{"id":144425,"href":"https:\/\/www.guvi.in\/blog\/wp-json\/wp\/v2\/posts\/66306\/revisions\/144425"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.guvi.in\/blog\/wp-json\/wp\/v2\/media\/142700"}],"wp:attachment":[{"href":"https:\/\/www.guvi.in\/blog\/wp-json\/wp\/v2\/media?parent=66306"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.guvi.in\/blog\/wp-json\/wp\/v2\/categories?post=66306"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.guvi.in\/blog\/wp-json\/wp\/v2\/tags?post=66306"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}