Advanced Excel Interview Questions for 5 Years Experience
40 questions with answers for candidates with 5 years of experience — 1 easy, 20 medium, 19 hard.
What interviewers expect: 5 years experience
At five years you are often interviewed for lead or specialist roles. Expect deep DAX such as CALCULATE and context, Data Model size optimisation, error-handled VBA with arrays and dictionaries, and designing refreshable reporting pipelines. Behavioural questions focus on mentoring juniors, standardising templates and handling conflicting definitions.
This set is weighted towards Power Pivot, Data Model and DAX (10), Charts and Dashboards (8), Logical, Text and Date Functions (5), Lookup and Dynamic Array Functions (4).
Advanced DAX Reporting pipeline design VBA performance Mentoring and standards
Solved at this levelStart 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
You need product category in the Sales table to create a calculated column. How do you do it in the Data Model?
Create a relationship from Sales[ProductID] to Products[ProductID], then add a calculated column in Sales:
Category = RELATED(Products[Category])
RELATED follows the many-to-one relationship and works only in a row context. Often you do not need the column at all, because the pivot can use Products[Category] directly through the relationship, which saves memory.
02
Commission is 2% up to 1 lakh, 5% up to 5 lakh and 8% above 5 lakh, applied as a flat rate on total sales. Write the formula.
With IFS:
=B2*IFS(B2>500000,8%,B2>100000,5%,TRUE,2%)
A cleaner and more maintainable option is a slab table (Lower: 0, 100001, 500001; Rate: 2%, 5%, 8%) with approximate match:
=B2*XLOOKUP(B2,Slab[Lower],Slab[Rate],,-1)
The -1 match mode returns the next smaller value, so changing rates only means editing the table.
03
Get the latest price of each product from a transaction log sorted by date.
If the log is sorted oldest to newest, search from the bottom:
=XLOOKUP(A2,Log[Product],Log[Price],,0,-1)
If it is not sorted, find the latest date first and then match on both:
=LET(d,MAXIFS(Log[Date],Log[Product],A2),
XLOOKUP(1,(Log[Product]=A2)*(Log[Date]=d),Log[Price]))
The second version is order-independent and safer for appended data.
04
What is the difference between a calculated column and a measure in DAX?
A calculated column is computed row by row when data is refreshed and stored in the table, like Sales[Margin] = Sales[Amount] - Sales[Cost]. It uses memory and can be used in rows, columns and slicers. A measure is computed on the fly for each cell of a pivot based on its filters, like Total Margin = SUM(Sales[Margin]). Use measures for aggregations and calculated columns only for attributes you slice by.
05
What are volatile functions and why should you limit them?
Volatile functions recalculate every time anything in the workbook changes, not only when their inputs change. Examples are NOW, TODAY, RAND, RANDBETWEEN, OFFSET, INDIRECT, CELL and INFO. One TODAY cell is harmless, but thousands of OFFSET or INDIRECT formulas force the whole dependency chain to recalculate on every keystroke. Replace OFFSET with INDEX-based ranges or Tables, and put TODAY in a single cell that others reference.
06
When does binary search in XLOOKUP or approximate VLOOKUP give wrong results?
Binary search halves the range repeatedly, assuming the data is sorted. If the lookup column is unsorted, has mixed text and numbers or contains blanks, it can stop at the wrong row and return a plausible but incorrect value with no error. Use it only on data you sort in a controlled step, such as a Power Query output, and test a few values against an exact-match lookup.
LET assigns names to intermediate results inside one formula, so a value is calculated once and the formula reads like steps:
=LET(sales,SUMIFS(Data[Amt],Data[Rep],A2),
target,XLOOKUP(A2,Targets[Rep],Targets[Target]),
IF(target=0,"",sales/target))
Without LET, the SUMIFS would be repeated in each branch. It improves speed on large sheets and makes complex formulas easier to review.
08
A dashboard with 20 pivots and 6 slicers takes several seconds to react on every click. How do you speed it up?
Make sure all pivots share one cache or the Data Model, so a slicer click filters one source. Reduce slicer cross-filtering by unticking Visually indicate items with no data, remove slicers that are rarely used, and replace pivots that show the same data with GETPIVOTDATA from one pivot. Remove volatile formulas, limit conditional formatting, and move large data to the Data Model with measures.
In Microsoft 365:
=COUNTA(UNIQUE(A2:A500))
=ROWS(UNIQUE(FILTER(A2:A500,A2:A500<>""))) ignores blanks
In older versions:
=SUMPRODUCT((A2:A500<>"")/COUNTIF(A2:A500,A2:A500&""))
The older formula slows down on large ranges, so for big data use a pivot table with Distinct Count via the Data Model.
Use On Error GoTo to jump to a handler, report the problem and clean up:
Sub ImportData()
On Error GoTo Fail
Application.ScreenUpdating = False
' ... main code ...
Done:
Application.ScreenUpdating = True
Exit Sub
Fail:
MsgBox "Error " & Err.Number & ": " & Err.Description
Resume Done
End Sub
Avoid blanket On Error Resume Next, which hides real failures.
11
How do you show actual versus target in a compact bullet-style chart?
Create a clustered column chart with Target and Actual series. Format the Target series with no fill and a thick outline or a light colour, set Series Overlap to 100 percent so both bars sit on top of each other, and make the Actual bar narrower by putting it on the secondary axis with a larger gap width. Match both axis scales. Readers immediately see whether Actual falls short of or crosses the target.
12
Your data has months as columns (Apr, May, Jun...). How do you convert it into a proper table format?
Load the data into Power Query, select the identifying columns such as Branch and Product, then right-click and choose Unpivot Other Columns. The month headers become an Attribute column and the numbers become a Value column; rename them to Month and Sales. Using Unpivot Other Columns rather than Unpivot Columns means new months added later are included automatically on refresh.
13
What principles do you follow when designing an Excel dashboard?
Start from the questions the audience asks. Put three to five headline KPIs at the top, trends and breakdowns below, and filters such as slicers in one consistent place. Use one colour palette with a highlight colour for what matters, avoid 3D and decorative effects, label units clearly like Rs lakh, and fit the view on one screen. Keep raw data and calculations on separate hidden sheets.
14
How do you look up a value using multiple criteria, such as Employee ID and Month?
In Microsoft 365, multiply logical tests so only the row matching all conditions becomes 1:
=XLOOKUP(1,(Pay[EmpID]=A2)*(Pay[Month]=B2),Pay[Salary],"Not found")
In older Excel use INDEX/MATCH entered as an array formula (Ctrl+Shift+Enter):
=INDEX(Pay[Salary],MATCH(1,(Pay[EmpID]=A2)*(Pay[Month]=B2),0))
For very large data a helper column joining ID and Month is faster.
15
When should a team move from an Excel dashboard to Power BI?
Excel dashboards work well for small teams, one-off analysis and data up to a few lakh rows. Move to Power BI when data comes from several live sources, needs scheduled refresh, row-level security for different users, mobile access, or a large audience who should not receive files. The Data Model and DAX skills learned in Power Pivot transfer directly, so the move is usually smooth.
Both use the same VertiPaq engine and the DAX language, and both use Power Query for data preparation. A Power Pivot model can be imported into Power BI Desktop through File > Import, carrying queries, relationships and measures. This makes Advanced Excel with Power Pivot a natural stepping stone, since most of the model and DAX skills transfer directly to Power BI.
17
Your weekly dashboard must go to 40 people who cannot access the source files. How do you distribute it safely?
Decide what they need: a view or a working file. For a view, export the dashboard sheet to PDF or share a view-only link from SharePoint or OneDrive. For a file, save a copy, break external links, paste pivots or formulas as values if needed, remove hidden sheets and personal data with Inspect Document, and protect the sheet. Automate the steps with a macro or Office Script so every week is identical.
18
What is the difference between a calculated field and a calculated item?
A calculated field creates a new value field from other fields, such as Margin = Profit / Sales, and it works on the summed totals. A calculated item creates a new member inside a field, such as North + East as a combined region. Calculated items cannot be used with the Data Model, can double-count in totals and slow pivots, so many analysts prefer grouping or a source column instead.
19
Return the Indian financial year (April to March) for a date, like FY 2026-27.
If the month is April or later, the FY starts in the same year; otherwise it started the previous year:
=LET(y,IF(MONTH(A2)>=4,YEAR(A2),YEAR(A2)-1),
"FY "&y&"-"&RIGHT(y+1,2))
For 15-May-2026 this gives FY 2026-27, and for 10-Feb-2026 it gives FY 2025-26. The fiscal quarter is =ROUNDUP((MOD(MONTH(A2)-4,12)+1)/3,0).
CALCULATE evaluates an expression under modified filters. It is the most important DAX function:
North Sales := CALCULATE([Total Sales],Region[Region]="North")
Online Sales 2026 := CALCULATE([Total Sales],Sales[Channel]="Online",'Date'[Year]=2026)
Each filter argument replaces any existing filter on that column, while filters on other columns from the pivot still apply. Wrapping a filter in KEEPFILTERS adds to the existing filter instead of replacing it.
21
What are VBA events? Give an example of Worksheet_Change.
Events run code automatically when something happens, such as opening a workbook (Workbook_Open) or editing a cell (Worksheet_Change). In the sheet module:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Me.Range("F:F")) Is Nothing Then
Application.EnableEvents = False
Target.Offset(0, 1).Value = Now
Application.EnableEvents = True
End If
End Sub
This timestamps column G when status in F changes.
22
The pivot grand total does not match SUM of the source column. How do you investigate?
Check for active filters on any field, slicers or timelines, and whether the source range excludes recent rows. Look for text values in the amount column, which pivots ignore, and calculated items that double-count. Confirm date grouping is not hiding rows outside the grouped range. Then double-click the grand total to see the rows the pivot used and compare the row count with the source.
SUM adds a single column. SUMX iterates a table, evaluates an expression for each row and adds the results:
Revenue := SUMX(Sales,Sales[Qty]*Sales[Price])
This avoids storing a Qty times Price calculated column. Other X functions such as AVERAGEX, MAXX and COUNTX work the same way. Iterating a very large table with complex expressions can be slower, so keep the expression simple.
24
A column shows amounts rounded to whole rupees, but its total differs from a manual total of the displayed values by a few rupees. Why?
Number formatting only changes how a value looks; Excel still adds the full decimals stored in each cell. So the sum of hidden paise differs from the sum of the rounded figures shown. If the report must add up exactly as displayed, round the values with =ROUND(value,0) in the source formulas rather than using the Precision as displayed option, which permanently changes stored data for the whole workbook.
25
How do you create a chart that automatically shows the last 12 months as new data is added?
Create named ranges with INDEX so they move with the data, assuming dates in column A from row 2:
LastRow: =COUNTA(Data!$A:$A)
ChartDates: =INDEX(Data!$A:$A,LastRow-11):INDEX(Data!$A:$A,LastRow)
ChartSales: =INDEX(Data!$B:$B,LastRow-11):INDEX(Data!$B:$B,LastRow)
Then edit the chart series to =Book1.xlsx!ChartSales and the axis to ChartDates. A Table-based chart grows automatically but shows all months, not a rolling window.
26
Write a running total measure for cumulative sales across dates.
Keep all dates up to the last date in the current filter:
Running Sales :=
CALCULATE([Total Sales],
FILTER(ALL('Date'[Date]),
'Date'[Date]<=MAX('Date'[Date])))
Place Month or Date from the Date table in the pivot rows. To restart every financial year, use TOTALYTD with the "3/31" year-end instead.
27
Write VBA to save each worksheet as a separate PDF.
Use ExportAsFixedFormat inside a loop:
Sub SheetsToPDF()
Dim ws As Worksheet, p As String
p = ThisWorkbook.Path & "\"
For Each ws In ThisWorkbook.Worksheets
ws.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=p & ws.Name & ".pdf", _
Quality:=xlQualityStandard, IgnorePrintAreas:=False
Next ws
End Sub
Set print areas and page setup first so each PDF fits the page properly.
28
Write DAX measures for year-to-date sales and sales for the same period last year.
With a proper Date table marked as a date table and related to Sales:
Sales YTD := TOTALYTD([Total Sales],'Date'[Date],"3/31")
Sales LY := CALCULATE([Total Sales],SAMEPERIODLASTYEAR('Date'[Date]))
YoY % := DIVIDE([Total Sales]-[Sales LY],[Sales LY])
The "3/31" year-end argument gives an Indian April to March financial year; without it, YTD resets on 1 January.
29
Write a DAX measure for each product's percentage of total sales.
Remove the product filter in the denominator so it always returns the overall total:
% of All Products :=
DIVIDE([Total Sales],
CALCULATE([Total Sales],ALL(Products)))
Use ALLSELECTED(Products) instead of ALL if the percentage should respect slicer selections, so the visible products add up to 100 percent. Other filters such as region or month still apply in both versions.
30
How do you handle two senior managers asking for conflicting versions of the same dashboard?
Situation: sales wanted revenue by booking date while finance wanted it by invoice date. Task: avoid two dashboards with different numbers. Action: I met both, wrote down each definition and its use, and proposed one dashboard with a clearly labelled toggle and a note explaining the difference. Result: both agreed, the numbers stopped being argued over in meetings, and the definition was added to our data glossary.
31
A measure shows the same value on every row of the pivot. What is wrong?
The field in the rows is not filtering the table the measure uses. Usually there is no relationship between the two tables, the relationship is inactive, or it points the wrong way, for example the row field comes from the many side of a different fact table. Excel often shows a warning that relationships may be needed. Check Manage Relationships and use fields from dimension tables linked to the fact table.
32
Your pivot chart changes whenever someone filters the pivot, but your manager wants a fixed chart for a presentation. What do you do?
A pivot chart always follows its pivot, so it cannot be frozen while the pivot is filtered. Options: copy the chart and paste it as a picture into the slide; or copy the pivot values to a normal range and build a regular chart from them; or create a second pivot from the same cache, set its filters once and protect the sheet. For a live report, keep the interactive version on a separate sheet.
33
How do you split and clean a column like 'EMP001 - Rahul Sharma - Delhi' in Power Query?
Select the column, choose Split Column > By Delimiter, enter space-hyphen-space as a custom delimiter and split at each occurrence. This gives ID, Name and City columns. Then use Transform > Format > Trim and Clean to remove extra spaces and hidden characters, Capitalize Each Word for names, and set correct data types. Split by Number of Characters handles fixed-width codes like state and branch prefixes.
34
Write VBA to consolidate the first sheet of every Excel file in a folder into one sheet.
Loop with Dir, open each file, copy its data below the last row and close it:
Sub Consolidate()
Dim f As String, wb As Workbook, dest As Worksheet, r As Long
Const P As String = "C:\Reports\"
Set dest = ThisWorkbook.Worksheets("All")
f = Dir(P & "*.xlsx")
Do While f <> ""
Set wb = Workbooks.Open(P & f, ReadOnly:=True)
r = dest.Cells(dest.Rows.Count, 1).End(xlUp).Row + 1
wb.Worksheets(1).UsedRange.Offset(1).Copy dest.Cells(r, 1)
wb.Close False
f = Dir
Loop
End Sub
35
Refreshing a Power Query that combines 200 CSV files from a folder takes ten minutes. How do you speed it up?
Reduce work as early as possible: remove unneeded columns and filter rows in the sample file transform so every file is smaller. Delete redundant Changed Type steps and set types once. Avoid sorting and merges against large tables before the combine. Set helper queries to connection only. Copy files to a local drive if SharePoint is slow, and archive old years into a single file so only recent files are combined each time.
36
Write a month-over-month growth percentage measure.
Use DATEADD on the Date table to shift the period one month back:
Sales PM := CALCULATE([Total Sales],DATEADD('Date'[Date],-1,MONTH))
MoM % := DIVIDE([Total Sales]-[Sales PM],[Sales PM])
Place Month from the Date table in the pivot rows. For the first month in the data, Sales PM is blank, so DIVIDE returns blank rather than an error.
37
Build a live leaderboard of the top 5 sales reps by total sales using dynamic array functions.
Get unique reps, total their sales, sort descending and take the top five:
=LET(r,UNIQUE(Sales[Rep]),
t,SUMIFS(Sales[Amount],Sales[Rep],r),
TAKE(SORTBY(HSTACK(r,t),t,-1),5))
HSTACK puts names and totals side by side, SORTBY orders by totals, and TAKE keeps five rows. Without TAKE, use INDEX(...,SEQUENCE(5),{1,2}).
38
What is LAMBDA and how do you create a custom function without VBA?
LAMBDA lets you define a reusable function from a formula. Create it in Name Manager, for example name GSTInclusive with:
=LAMBDA(amount,rate,ROUND(amount*(1+rate),2))
Then use =GSTInclusive(B2,18%) anywhere in the workbook. Helper functions like MAP, BYROW, REDUCE and SCAN apply a LAMBDA across arrays. Unlike VBA functions, LAMBDAs need no macro-enabled file, but they require Microsoft 365.
39
How do you show only the top 10 customers by revenue in a pivot?
Put Customer in Rows and Revenue in Values. Click the Customer filter arrow > Value Filters > Top 10, choose Top, 10, Items, by Sum of Revenue. Then sort the Revenue column largest to smallest. The grand total by default still reflects only the visible rows; if you need overall totals, add a separate pivot or enable Include filtered items in totals when using the Data Model.
40
Your manager says your chart is misleading. What could be wrong?
The most common cause is a column or bar chart whose vertical axis does not start at zero, which exaggerates small differences. Other issues are inconsistent scales between side-by-side charts, a secondary axis that is not labelled, 3D effects distorting sizes, missing months making a trend look smooth, or totals mixed with categories. Fix the axis, label units and state the time period in the title.
Frequently asked questions
What is asked in Advanced Excel interviews for 5 years of experience?
At five years you are often interviewed for lead or specialist roles. Expect deep DAX such as CALCULATE and context, Data Model size optimisation, error-handled VBA with arrays and dictionaries, and designing refreshable reporting pipelines. Behavioural questions focus on mentoring juniors, standardising templates and handling conflicting definitions.
How many questions should I practise before a Advanced Excel interview?
Work through all 40 questions here, then the company-wise sets for the employers you are targeting. Quality matters more than count: be able to explain why each answer is right.
Which topics matter most for 5 years of experience?
Focus first on Advanced DAX, Reporting pipeline design, VBA performance, Mentoring and standards.