36 practice questions with answers for Power BI interviews in Visakhapatnam.
Power BI jobs in Visakhapatnam
Visakhapatnam (Vizag) has a developing IT market with delivery centres, start-ups and IT parks around Rushikonda. Many local candidates also apply to Hyderabad and remote roles, so a mix of service and product styles is common.
Below are 36 questions that match the mix of service, product and domain employers hiring power bi developers in Visakhapatnam.
Solved for VisakhapatnamStart 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
How do you set up an app with different audiences?
In the workspace choose Create app or Update app, add the reports and dashboards, then in the Audience tab create audiences such as Sales Managers and Finance, choose which content each audience sees and grant access to the right Entra ID security groups. Publish the app and share the link. Remember RLS still controls rows inside reports; audiences only control which items are visible.
02
How do you build a toggle between a chart and a table using bookmarks?
Place a chart and a table in the same position. In the Selection pane hide the table and create a bookmark named Chart View with Data unchecked so filters are not saved; then show the table, hide the chart and create Table View. Add two buttons and set each button's action to the matching bookmark. Group the visuals to keep the layout tidy.
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.
04
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.
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.
I like turning raw data into clear answers that people can act on. In my projects I enjoyed the full flow: cleaning messy Excel and SQL data, designing a proper model, writing DAX and making reports that users actually open every day. Power BI is widely used across Indian companies and global clients, so the role offers strong growth into data analytics, data engineering with Fabric, or BI architecture.
Deployment pipelines move content through stages, typically Development, Test and Production workspaces. Creators deploy reports and semantic models from one stage to the next, compare differences, and use deployment rules to change data source connections or parameters for each stage. This supports controlled releases and testing before users see changes. They work alongside Git integration for version control in Fabric workspaces.
08
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.
09
What is the difference between SAMEPERIODLASTYEAR, DATEADD and PARALLELPERIOD?
SAMEPERIODLASTYEAR shifts the current dates back exactly one year. DATEADD shifts by any number of days, months, quarters or years, such as DATEADD('Date'[Date], -1, MONTH) for last month. PARALLELPERIOD also shifts by an interval but returns the full shifted period, for example the whole previous quarter even if only one month is selected. Choose based on whether partial periods should be compared.
10
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.
Incremental refresh partitions a large table by date so each refresh reloads only recent data, such as the last 10 days, while keeping older partitions, such as five years of history, unchanged. It uses the RangeStart and RangeEnd datetime parameters to filter the query, which must fold to the source. It cuts refresh time and load on sources, and can add a DirectQuery partition for real-time data.
12
The total row of a table shows a different value than the sum of rows. Is this a bug?
Usually not. A measure's total is calculated in the total's own filter context, not by adding the visible rows. For non-additive measures like averages, distinct counts or ratios this differs from the row sum. If business wants the sum of rows, I write it explicitly with SUMX over the row values, for example SUMX(VALUES('Product'[Product]), [My Measure]).
13
What is the difference between ISFILTERED, ISINSCOPE and HASONEVALUE?
ISFILTERED returns true if a column has a direct filter. HASONEVALUE returns true when exactly one value is visible, useful before SELECTEDVALUE. ISINSCOPE returns true when a column is the current grouping level in a visual hierarchy, which is the most reliable way to detect subtotal versus detail rows in matrices. For example, IF(ISINSCOPE('Product'[Product]), [Sales], BLANK()) hides subtotals.
Parameters are named values used inside queries, such as server name, database, file path or a date range. They let you switch from a development to a production database without editing each query, and they are required for incremental refresh through RangeStart and RangeEnd. Parameters can be changed in the Service under semantic model settings, which helps deployment pipelines between environments.
15
Business wants year-over-year growth, but the current year is incomplete. How do you compare fairly?
Comparing a partial year with a full last year understates growth. I would limit last year to the same date range, for example using the last date with sales this year and filtering last year's dates up to the matching day, or compare year-to-date to previous year-to-date. I would label the visual clearly as YTD versus same period last year so readers understand it.
16
What are the formula engine and storage engine in Power BI?
The storage engine, VertiPaq or DirectQuery to the source, retrieves and aggregates data quickly and in parallel. The formula engine handles complex DAX logic that the storage engine cannot, working single-threaded on intermediate results. Fast measures push most work to the storage engine. DAX Studio's server timings show time spent in each, helping identify measures that create large intermediate data caches for the formula engine.
17
What is a role-playing dimension and how do you handle it?
A role-playing dimension is one dimension used in several roles, such as Date acting as Order Date, Ship Date and Delivery Date. Options are one Date table with one active and other inactive relationships used through USERELATIONSHIP in measures, or separate copies of the date table for each role so users can slice by each date independently. The second is easier for users but increases model size slightly.
18
Tell me about a report you built that changed a business decision.
Situation: regional managers tracked sales in separate Excel files, and stock planning was late. Task: give one daily view. Action: I combined ERP and target data in Power Query, built a star schema with DAX measures for target achievement and stock cover, and published an app with row-level security per region. Result: weekly planning moved from Friday to Monday morning, and two slow-moving products were discontinued earlier.
19
How do you create a dynamic axis using field parameters?
Go to Modeling, New parameter, Fields, and add the fields such as Region, Category and Channel. Power BI creates a parameter table and slicer. Put the parameter field on the axis of a chart; users select which dimension to show from the slicer. You can add measures to a separate field parameter so users switch both the measure and the axis.
20
How do you choose the right chart type in Power BI?
Match the chart to the question. Use bar or column charts to compare categories, line charts for trends over time, stacked bars for part-to-whole across few categories, scatter charts for relationships, maps only for true geographic patterns, cards and KPI visuals for single numbers, and tables or matrices when users need exact values. Avoid pie charts with more than four or five slices.
21
Your workspace has grown to 150 items and nobody knows which reports are used. How do you clean it up?
I would export usage from the activity log or the workspace usage metrics, list items not viewed in 90 days and confirm with owners before archiving. Duplicate models are consolidated into shared semantic models, naming standards are applied, and workspaces are split by domain with clear owners. A quarterly review keeps it tidy. This also reduces refresh load on capacity.
22
Create a calculated column that categorises customers by their lifetime sales.
Customer Band =
VAR s = CALCULATE(SUM(Sales[Amount]))
RETURN
SWITCH(TRUE(),
s >= 500000, "Platinum",
s >= 100000, "Gold",
s > 0, "Silver",
"No Purchase")
This is a column on the Customer table; CALCULATE triggers context transition so each row gets its own customer's sales.
23
Write an M query that filters rows, removes columns and changes types.
let
Source = Sql.Database("server", "SalesDB"),
Orders = Source{[Schema="dbo", Item="Orders"]}[Data],
Filtered = Table.SelectRows(Orders, each [OrderDate] >= #date(2024, 1, 1)),
Kept = Table.SelectColumns(Filtered, {"OrderID", "OrderDate", "CustomerID", "Amount"}),
Typed = Table.TransformColumnTypes(Kept, {{"Amount", Currency.Type}, {"OrderDate", type date}})
in
Typed
All these steps fold to SQL on a database source.
24
A source table has duplicate customer rows with different spellings of the same name. What do you do?
For exact duplicates, Remove Duplicates on the key column. For spelling variations, use fuzzy matching in Merge Queries with a similarity threshold and transformation table, review results, and maintain a mapping table of approved matches. The best long-term fix is to use a stable customer ID from the source system and report data quality issues to the owner rather than cleaning endlessly in Power BI.
25
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.
26
Rewrite a slow measure to use variables and avoid repeated calculation.
Before:
Growth = IF([Sales PY] = 0, BLANK(), ([Total Sales] - [Sales PY]) / [Sales PY])
After:
Growth =
VAR cur = [Total Sales]
VAR py = [Sales PY]
RETURN DIVIDE(cur - py, py)
The previous year measure is now evaluated once instead of three times, and DIVIDE handles zero safely.
27
Why should you set data types correctly in Power Query?
Correct data types make sorting, filtering, aggregation and relationships work properly; text-typed numbers cannot be summed and mismatched key types break relationships. Types also affect compression and model size, for example whole numbers compress better than decimals or text. Set types once near the end of a query and avoid repeated automatic Changed Type steps, which can fail when column names change.
28
A stakeholder insists on a 3D pie chart with 12 slices. How do you handle it?
I would understand what they want to see, usually share of total by category, then show a quick comparison: a sorted bar chart beside the pie, explaining that bars make small differences readable while 3D distorts sizes. Offering a donut with top five plus Others is a compromise. Usually seeing both side by side convinces them, and the final choice remains theirs.
29
Your calculated columns have made the model huge. What do you do?
I would move simple row-level logic into Power Query or the source SQL, where it compresses better and can fold, and replace aggregations stored as columns with measures. High-cardinality columns such as concatenated keys or precise timestamps should be removed or split. Then check model size with VertiPaq Analyzer in DAX Studio to confirm which columns used the most memory.
30
What is conditional formatting and where can you apply it?
Conditional formatting changes colours, icons, data bars or font based on values or rules, helping users spot good and bad performance quickly. You can apply it to table and matrix cells, backgrounds, font colour, chart data colours and titles using field values, rules or a measure that returns a colour code. A measure returning hex colours gives full control, such as red when below target.
31
What is Copilot in Power BI and what should you watch out for?
Copilot in Power BI uses generative AI to help create report pages, summarise visuals in narrative form, suggest DAX and answer questions about data in natural language. It needs supported capacity and tenant settings enabled by admins. Results depend heavily on a clean model with clear names, descriptions and synonyms, and outputs must be checked for correctness before sharing, especially generated DAX.
32
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.
33
How do you explain a technical limitation to a business user who wants something impossible?
I acknowledge the goal, explain the limitation in simple terms and offer an alternative that meets most of the need. For example, when a user wanted live updates every second on a DirectQuery report over a slow system, I explained the load it would create and offered a 15-minute refresh plus an alert for threshold breaches. They accepted because the key decision was covered.
Date =
ADDCOLUMNS(
CALENDAR(DATE(2022, 1, 1), DATE(2026, 12, 31)),
"Year", YEAR([Date]),
"Month No", MONTH([Date]),
"Month", FORMAT([Date], "MMM"),
"Quarter", "Q" & QUARTER([Date]),
"Weekday", FORMAT([Date], "ddd")
)
Then mark it as a date table and sort Month by Month No.
35
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.
The XMLA endpoint exposes semantic models on Premium, PPU or Fabric capacity like an Analysis Services server. Tools such as Tabular Editor, DAX Studio, SQL Server Management Studio and ALM Toolkit can then read or write the model, manage partitions, refresh specific tables, script deployments and apply object-level security. Read-write mode must be enabled in capacity settings by an admin.
Few big employers listed in Visakhapatnam?
Many Visakhapatnam candidates also apply to teams in Hyderabad and to remote or hybrid roles. Practise the Hyderabad set as well.
Which companies hire Power BI professionals in Visakhapatnam?
Companies with large offices in Visakhapatnam include many IT services and product firms. Use their company pages below to practise employer-specific sets.
Are Power BI interviews in Visakhapatnam different from other cities?
The questions depend more on the company than the city. Visakhapatnam's mix of employers decides the style: Many local candidates also apply to Hyderabad and remote roles, so a mix of service and product styles is common
How do I find Power BI jobs in Visakhapatnam?
Shortlist companies with Visakhapatnam offices, keep your CV focused on Power BI projects, apply on company career pages and job portals with the Visakhapatnam filter, and practise the questions on this page before each interview.