Power BI Interview Questions in Thiruvananthapuram
36 practice questions with answers for Power BI interviews in Thiruvananthapuram.
Power BI jobs in Thiruvananthapuram
Thiruvananthapuram's Technopark is one of India's oldest IT parks, hosting IT-services, product and engineering-services companies. Data and testing teams here often work with global clients in finance, travel and healthcare.
Below are 36 questions that match the mix of service, product and domain employers hiring power bi developers in Thiruvananthapuram.
Solved for ThiruvananthapuramStart practicing
3 QUESTIONS FREESign up to unlock the full question bank and track your progress.Unlock every question and answer, then continue practising company-wise and package-wise.
✓ 3 questions free • Unlock the rest in seconds
01
Each regional manager must see only their region, and the CEO must see everything. How do you implement this?
I would build dynamic RLS with a security table of Email and Region, related to the Region dimension, and a role filter Security[Email] = USERPRINCIPALNAME(). The CEO and other full-access users get an 'All' flag handled in the rule, or are placed in a separate role with no filter. I would test with View as role in Desktop and in the Service before publishing the app.
02
What is the grain of a fact table and why does it matter?
Grain is the level of detail of one fact row, such as one row per order line per day. It must be defined clearly before building measures, because mixing grains in one table, for example daily sales and monthly targets, causes double counting and wrong totals. Facts at different grains should be separate tables related to dimensions at the matching level.
03
A report page takes 25 seconds to load. Walk me through how you would fix it.
I would run Performance Analyzer to find the slowest visuals, copy their DAX queries into DAX Studio and check server timings. Common fixes are rewriting measures that iterate large fact tables, removing bi-directional relationships, reducing visuals on the page, and shrinking the model by removing high-cardinality columns. If the source is DirectQuery, I would add aggregations or move to Import. Then re-measure after each change.
04
A YTD measure returns blank for future months on a chart. Users want the line to stop at today. How?
The issue is the opposite for many teams: YTD repeats the last value for future months. I would add a condition so the measure returns BLANK when the period starts after the last date with data, for example IF(MIN('Date'[Date]) > [Last Sales Date], BLANK(), TOTALYTD(...)). Alternatively add a column flagging dates up to today in the date table and filter the visual on it.
05
Your measure returns an error that a table of multiple values was supplied where a single value was expected. How do you fix it?
This happens when an expression like VALUES or a column reference returns several rows where a scalar is needed, for example in IF or comparison. I would use SELECTEDVALUE with a fallback, wrap the column in an aggregation like MAX or SUM, or use HASONEVALUE to check first. If iteration is needed, use SUMX or another iterator over VALUES instead.
06
Your organisation has 500 report viewers. How would you plan licensing?
Giving all 500 viewers Pro licences is one option. If there are many viewers and heavy models, Fabric capacity at F64 or above lets free-licence users view content in workspaces on that capacity, while report creators still need Pro or PPU. I would compare costs, workload size and features like larger models with IT, and recommend the option that fits usage, without assuming one choice fits all.
Context transition happens when CALCULATE, or a measure reference which implicitly wraps CALCULATE, is evaluated inside a row context. The values of the current row are converted into filters on the model. For example, in a calculated column on Customer, [Total Sales] returns that customer's sales because the row becomes a filter. It is powerful but can be slow over large tables and surprising with duplicate rows.
08
Write a dynamic RLS rule using a security mapping table.
// Security table: Email, Region; related to Region[Region]
// Role filter on Security table:
[Email] = USERPRINCIPALNAME()
// Optional all-access rule on Region table instead:
VAR u = USERPRINCIPALNAME()
RETURN
LOOKUPVALUE(Security[Region], Security[Email], u) = "ALL"
|| Region[Region] IN CALCULATETABLE(VALUES(Security[Region]), Security[Email] = u)
09
Tell me about a time you had to deliver a report with unclear requirements.
Situation: an operations head asked for a 'delivery performance dashboard' with no detail. Task: deliver something useful in a week. Action: I held a 30-minute session to list five questions they wanted answered, sketched a page layout and built a quick prototype in two days with sample data. After feedback I finalised it. Result: the dashboard went live on time and became part of the weekly operations review.
10
How do you handle errors in Power Query without failing the whole refresh?
Use Keep Errors on a copy of the query to inspect the bad rows, then fix the cause, such as wrong data types or invalid dates. Replace Errors can substitute a value, and in M try ... otherwise catches errors per value:
= Table.AddColumn(Source, "AmountNum", each try Number.From([Amount]) otherwise null, type nullable number)
Log error rows to a separate query so they can be reviewed rather than silently dropped.
11
Executives want a one-page story of quarterly performance. How do you structure it?
I would start with three to five headline KPIs versus target and last year at the top, then a trend chart showing the quarter's movement, then a breakdown by region or product showing what drove the change, and finally a short text box or smart narrative stating key takeaways and actions. Each element answers the next natural question, and details live on drill-through pages.
12
What is a disconnected table and how is it used for what-if analysis?
A disconnected table has no relationship to the model and is used to capture a user's choice through a slicer. For example, a Discount table from 0 to 30 percent created with GENERATESERIES, or the What-if parameter feature, lets a measure read SELECTEDVALUE(Discount[Value]) and calculate projected revenue. Since it does not filter facts, the measure decides how the selection is applied.
13
What is the difference between ALL, ALLEXCEPT and REMOVEFILTERS?
ALL returns all rows of a table or column ignoring filters, and as a CALCULATE argument it removes filters, useful for percent of total. REMOVEFILTERS does the same removal but only as a CALCULATE modifier and reads more clearly. ALLEXCEPT removes all filters from a table except the listed columns, such as keeping the Year filter while removing others. ALLSELECTED keeps filters from outside the visual, like slicers.
14
Write a measure that shows the selected slicer value in a title.
Report Title =
VAR r = SELECTEDVALUE('Store'[Region], "All Regions")
VAR y = SELECTEDVALUE('Date'[Fiscal Year], "All Years")
RETURN "Sales for " & r & " - " & y
Use it in a visual title through conditional formatting, Title text, Field value. SELECTEDVALUE returns the fallback text when zero or multiple values are selected.
15
How do you stay current with frequent Power BI updates?
Power BI releases features monthly, so I read the monthly update blog and Fabric release notes, try new features on a test report, and follow community experts and forums. I keep a short list of features relevant to our team, such as visual calculations or TMDL view, and share a five-minute demo in team meetings when something will save us effort.
Power BI Project (PBIP) saves a report and model as folders of text files instead of one binary PBIX file. The semantic model is stored in TMDL or TMSL and the report in JSON definitions. This makes Git version control, code reviews, diffs and merge of changes practical, and works with Fabric Git integration and deployment pipelines. It is preferred for team development and CI/CD.
17
How does the VertiPaq engine store and compress data?
VertiPaq is the in-memory columnar engine for Import models. It stores each column separately and compresses it using dictionary encoding, which maps unique values to integers, value encoding for numbers, and run-length encoding for repeated sequences. Compression depends mostly on column cardinality, so columns with few unique values compress very well, while unique IDs and precise timestamps take most of the memory.
18
Users want to analyse sales by both order date and delivery date in the same report. What do you do?
I would keep the Date table related to OrderDate as the active relationship and add an inactive relationship to DeliveryDate. Then create measures like Sales by Delivery Date using USERELATIONSHIP. If users need separate slicers for both dates at the same time, I would create a second Delivery Date table as a role-playing copy related actively to the delivery column.
19
Write a measure for percentage of grand total sales.
Sales % of Total =
DIVIDE(
[Total Sales],
CALCULATE([Total Sales], REMOVEFILTERS('Product'))
)
This gives each product's share of total across all products. Use ALLSELECTED('Product') instead if the denominator should respect slicer selections on products.
20
Split a datetime column to reduce cardinality in Power Query.
= Table.AddColumn(Source, "OrderDateOnly", each DateTime.Date([OrderDateTime]), type date)
= Table.AddColumn(Prev, "OrderHour", each Time.Hour([OrderDateTime]), Int64.Type)
Then remove the original OrderDateTime column. A datetime with seconds can have millions of unique values, while date and hour columns have only thousands and 24 values, compressing much better.
21
What is the difference between drill-down and drill-through?
Drill-down moves within the same visual through a hierarchy, such as Year to Quarter to Month, using the drill buttons. Drill-through moves the user to a separate detail page filtered by the selected item, such as right-clicking a customer to open a Customer Details page. Drill-through pages are set up by adding fields to the drill-through well and include a back button.
22
Every month a new Excel file arrives in a folder. How do you load all of them automatically?
Use the Folder connector, or SharePoint Folder for files on SharePoint, pointing to the folder, filter to the right file extension and naming pattern, then use Combine Files. Power Query creates a sample-file transform function applied to every file and appends the results. New files dropped into the folder are included on the next refresh, as long as their structure matches the sample.
Cardinality describes how keys match between two tables. One-to-many is the normal type, from a dimension's unique key to a fact table's repeating key. One-to-one links tables with unique keys on both sides and often means they should be merged. Many-to-many allows duplicates on both sides; it is supported but can produce confusing totals, so a bridge table is often clearer.
24
Explain the typical Power BI workflow from data to insight.
First connect to sources such as Excel, SQL Server or SharePoint and clean the data in Power Query. Then build a data model with relationships, ideally a star schema, and write DAX measures. Next design report visuals and interactions in Desktop. Publish to a workspace in the Power BI Service, set scheduled refresh through a gateway if needed, apply row-level security and share through an app or dashboard.
Situation: a finance report took 40 seconds per page with a 2 GB file built on joined flat tables. Task: improve speed. Action: I split it into a star schema with Date, Account, Cost Centre and fact tables, removed unused columns, turned off auto date/time and replaced bi-directional filters with single direction. Result: model size dropped to 450 MB and pages loaded in under 4 seconds.
26
Scheduled refresh fails every night with a gateway error. How do you troubleshoot?
I would check the refresh history error details, confirm the gateway machine is on and the gateway service is running and updated, and verify data source credentials in the gateway connection have not expired. Then test connectivity from the gateway machine to the source and check that the source names in the model exactly match the gateway data source. Gateway logs and network or firewall changes are next.
27
How do you design a KPI card that shows value, target and variance?
Use the new Card visual or a KPI visual with a main measure such as Total Sales, a target measure and a variance percent measure. Add conditional formatting so the variance turns red below target and green above it, and include a small trend if space allows. Keep labels short, such as Sales vs Target, and show the comparison period in the subtitle.
CALCULATE evaluates an expression in a modified filter context. Its filter arguments can add, replace or remove filters, for example CALCULATE([Total Sales], 'Product'[Category] = "Electronics") replaces any category filter with Electronics. It also performs context transition when used inside a row context, turning the current row into an equivalent filter. It is the most important function in DAX.
29
What is a snowflake schema and should you avoid it in Power BI?
A snowflake schema normalises dimensions into several related tables, such as Product linked to Subcategory linked to Category. It saves little space in Power BI because columnar compression already handles repetition, and it adds relationships, longer filter paths and a more confusing field list. Usually it is better to flatten these into one Product dimension in Power Query, keeping the model a clean star.
Bookmarks capture the current state of a report page, including filters, slicers, visual visibility and sort order. They are used for storytelling, toggling between chart and table views with buttons, creating custom navigation, and resetting filters. Combined with the selection pane, they show and hide visuals. Too many bookmarks become hard to maintain, so field parameters are often a simpler alternative for switching measures.
KEEPFILTERS changes how a CALCULATE filter argument combines with the existing filter context: instead of replacing filters on that column, it intersects with them. For example, CALCULATE([Sales], KEEPFILTERS('Product'[Color] = "Red")) shows blank for Blue rows in a colour table, while without KEEPFILTERS every row would show Red sales. It is useful for measures that should respect user selections.
32
Sales data has region codes, while targets use region names. How do you combine them?
I would create or import a region mapping table with code and name, clean both sides by trimming spaces and fixing case, then merge in Power Query or better, build a Region dimension table with both columns and relate sales by code and targets by name to it. Unmatched rows should be checked using a left anti join so missing mappings are fixed rather than silently dropped.
33
Write basic measures for total sales, total cost and profit margin percentage.
Total Sales = SUM(Sales[Amount])
Total Cost = SUMX(Sales, Sales[Qty] * Sales[UnitCost])
Profit = [Total Sales] - [Total Cost]
Margin % = DIVIDE([Profit], [Total Sales])
Format Margin % as a percentage. Building measures on other measures keeps logic in one place and easy to change.
Row context means DAX is evaluating one row at a time, which happens in calculated columns and iterators like SUMX, so you can refer to column values of the current row. Filter context is the set of filters applied to the model from slicers, visual rows, columns and CALCULATE. Measures are evaluated in filter context. Row context does not filter the model unless converted by context transition.
Key table functions include FILTER, ALL, VALUES, DISTINCT, SUMMARIZE and SUMMARIZECOLUMNS for grouping, ADDCOLUMNS to add calculated columns, TOPN for top rows, CROSSJOIN, UNION, EXCEPT, INTERSECT, GENERATESERIES and TREATAS for virtual relationships. They return tables used inside iterators, CALCULATE filters or calculated tables. ADDCOLUMNS over SUMMARIZE is a common pattern for reliable grouped results.
36
What is the difference between sharing a report, publishing an app and using a workspace?
A workspace is where creators collaborate. Direct sharing gives one person or group access to a single report, which is quick but hard to govern at scale. An app packages reports and dashboards from a workspace for consumers, with audiences controlling who sees which content, and updates only when republished. Apps are the recommended way to distribute content to large business audiences.
Few big employers listed in Thiruvananthapuram?
Many Thiruvananthapuram candidates also apply to teams in Bangalore and to remote or hybrid roles. Practise the Bangalore set as well.
Which companies hire Power BI professionals in Thiruvananthapuram?
Companies with large offices in Thiruvananthapuram include many IT services and product firms. Use their company pages below to practise employer-specific sets.
Are Power BI interviews in Thiruvananthapuram different from other cities?
The questions depend more on the company than the city. Thiruvananthapuram's mix of employers decides the style: Data and testing teams here often work with global clients in finance, travel and healthcare
How do I find Power BI jobs in Thiruvananthapuram?
Shortlist companies with Thiruvananthapuram offices, keep your CV focused on Power BI projects, apply on company career pages and job portals with the Thiruvananthapuram filter, and practise the questions on this page before each interview.