Recently, I interviewed a few people for Power BI roles and here are some questions I asked in the initial rounds to assess their skill level. I’ve included sample answers below so you know how to approach such questions.
Prefer video? See this...
I made a video with 10 questions and my (elaborate) answers to them. Watch to learn how to answer such interview questions. See it below or on my YouTube channel.
1. What are the main differences between Power BI Desktop and Power BI Service?
Answer cues:
- Power BI Desktop is the main tool for creating or authoring reports.
- We use PBI desktop to clean up data, create data model, set up measures, build and refine charts and construct the reports.
- We then use Power BI Service to share the reports with the audience.
- Desktop = creation tool, Service = consumption tool
2. Explain the difference between a measure and a calculated column?
- Measures:
- calculate things on top of tables.
- calculated in the run-time based on the evaluation context.
- are usually aggregates.
- example: Shipment Count = COUNTROWS(Shipments)
- Calculated columns:
- are part of the table.
- are calculated at the time of creation based on the row-context.
- have one value per row.
- example: Discount Rate Row-wise calculation of discount rate based on order quantity
- Both measures and calculated columns use the same DAX language.
3. Describe the steps you would take to connect multiple data sources in a Power BI report?
- We can use Power Query to connect more than one source of data.
- We can also use PQ to merge / append / combine the data as needed.
- We can selectively load the data to Power BI and keep the rest in PQ level but customizing the load behaviour.
4. What do 1, * and arrow (â–¶) mean in the data model diagram?
- In a typical star-schema, we will have one to many relationship between dimension and fact table.
- The one side is denoted with a 1 and many side is denoted with a *
- The arrow indicates the direction of filter propagation.
- Power BI allows us to customize the filter direction (uni or bi-directional) and also have many-to-many relationships.
5. What is DAX and give me an example of DAX you've recently used?
- DAX stands for Data Analysis eXpressions. It is the main language of Power Pivot.
- Give examples based on your experiences and tell why / how they helped you solve problems.
6. How do you optimize the performance of a slow Power BI report?
- Answer questions like this based on your experience. If you have never optimized something, be honest and say that. Then give theoretical answers.Â
- Key optimization startegies:
- Reducing the data (filtering at PQ, Source level)
- Removing unwanted visuals, interactions and bookmarks
- Using performance profiler (Optimize ribbon in Power BI) to measure the performance of a page and identifying the problem areas.
- Setting up aggregate tables, pre-calculated views.
- [NEW] Using visual calculations instead of measures.
- Upgrading the Power BI on-prem servers, database servers (for direct query)
- Running time-consuming operations (such as PQ transformations) at low usage times (midnights, evenings)
7. How do you publish a Power BI Report to the service?
- Save and test the report. Make sure all calculations are correct and visuals represent the truth.
- Test any connections, refresh processes too.
- Publish the report (Publish button) and set the correct workspace.
- Test the report on the service view and make sure right people have access to the report.
- Optional, Send an email or share the report with the audience.
8. Explain RLS (Row Level Security) in Power BI?
- Row Level Security allows us to provide access to the relevant data to right people.
- For example, we can use RLS to show only USA data to the USA regional manager.
- We can use “roles” option in Power BI to set and test the roles.Â
9. What is a Slowly Changing Dimension (SCD) and how do you handle it in Power BI?
- SCD (Slowly Changing Dimension) is a dimension (or aspect of a dimension) that changes slowly over time.
- Give examples from your industry or previous work.
- Example: In our product table, we have a feature called cocoa percentage. For certain products this is changed once in a while based on customer feedback. This is an example of SCD.
- We can either replace the old values with new ones or create effective date based records.Â
10. How would you handle missing data?
- We can use either Power Query or Power Pivot to handle missing values in our data.Â
- Power Query shows missing values in a column thru Column Quality feature. We can use this to identify and deal with missing values.
- The key strategies for dealing with missing data are:
- Removing missing values
- Going back to source and fixing the problem
- Replacing missing values with an approximation (imputation)
- Ignoring missing values
Need more help? Watch the video
I made a video with 10 questions and my (elaborate) answers to them. Watch to learn how to answer such interview questions. See it below or on my YouTube channel.
Learn more: Power BI Weekend (2023)
My annual Power BI event – Power BI Weekend is happening this year on November 18 & 19. In this 4 hour event (2 hours on Saturday – Nov 18 & 2 more on Sunday – Nov 19), you will learn the Power BI Essentials to say yes to your next challenge.
The topics covered are,
- What is Power BI? How to use it?
- Power BI vs Power Query vs. Power Pivot
- Understanding Power BI Visual interactions & customizing them
- Data cleanup and transformations with PQ
- Setting up a star schema data model
- Creating and using DAX measures
- Interactive storytelling in Power BI
- Saving & publishing your work
- Resources to learn more
- Q&A with you
Tickets are on sale now. Book yours before they sell-out.


















6 Responses to “Make VBA String Comparisons Case In-sensitive [Quick Tip]”
Another way to test if Target.Value equal a string constant without regard to letter casing is to use the StrCmp function...
If StrComp("yes", Target.Value, vbTextCompare) = 0 Then
' Do something
End If
That's a cool way to compare. i just converted my values to strings and used the above code to compare. worked nicely
Thanks!
In case that option just needs to be used for a single comparison, you could use
If InStr(1, "yes", Target.Value, vbTextCompare) Then
'do something
End If
as well.
Nice tip, thanks! I never even thought to think there might be an easier way.
Regarding Chronology of VB in general, the Option Compare pragma appears at the very beginning of VB, way before classes and objects arrive (with VB6 - around 2000).
Today StrComp() and InStr() function offers a more local way to compare, fully object, thus more consistent with object programming (even if VB is still interpreted).
My only question here is : "what if you want to binary compare locally with re-entering functions or concurrency (with events) ?". This will lead to a real nightmare and probably a big nasty mess to debug.
By the way, congrats for you Millions/month visits 🙂
This is nice article.
I used these examples to help my understanding. Even Instr is similar to Find but it can be case sensitive and also case insensitive.
Hope the examples below help.
Public Sub CaseSensitive2()
If InStr(1, "Look in this string", "look", vbBinaryCompare) = 0 Then
MsgBox "woops, no match"
Else
MsgBox "at least one match"
End If
End Sub
Public Sub CaseSensitive()
If InStr("Look in this string", "look") = 0 Then
MsgBox "woops, no match"
Else
MsgBox "at least one match"
End If
End Sub
Public Sub NotCaseSensitive()
'doing alot of case insensitive searching and whatnot, you can put Option Compare Text
If InStr(1, "Look in this string", "look", vbTextCompare) = 0 Then
MsgBox "woops, no match"
Else
MsgBox "at least one match"
End If
End Sub