# CONTAINSROW() vs. INTERSECT() Power BI Functions: Pros and Cons and When to Use

I just recently did a video tutorial for CONTAINSROW() function. In that video I was taking a look at the coupon redemption data with a goal of determining how much fraud was occurring across various retailers. One of the subscribers commented on the video that this problem could have been solved with the INTERSECT() DAX … Continue reading CONTAINSROW() vs. INTERSECT() Power BI Functions: Pros and Cons and When to Use

# How to Use Correlation Plot to Improve Storytelling and Analysis in Power BI

That is right, we are going to step up our game and start adding correlation analysis to our reports and dashboards. Why would you want to do that? Well, a good reason could be to analyze whether there is a relationship between two variables. Yes, technically, you would want to run a regression to get … Continue reading How to Use Correlation Plot to Improve Storytelling and Analysis in Power BI

# Working with Inventory, Balancesheet and Headcount Type Data (Semi-additive measures and LASTNONBLANKVALUE() Power BI DAX Tutorial)

Some things are just not that easy to calculate. Let us take headcount for example, if I had ten people in my department in January, February, and March, then my Q1 headcount is not thirty it is still ten. So with sales we can just sum all the data up, but with things like headcount, … Continue reading Working with Inventory, Balancesheet and Headcount Type Data (Semi-additive measures and LASTNONBLANKVALUE() Power BI DAX Tutorial)

# CONTAINSROW() DAX Function Tutorial (is DAX CONTAINSROW() = WHEN EXISTS() in SQL?), Plus a Fraud Detection Calculation

Can we do a CONTAINSROW() DAX function tutorial while implementing a coupon redemption fraud detection calculation? Yes! Can we add to this a discussion about how to calculate distinct counts on temp tables? You betcha! In fact, we can do it all in one video. The dataset is simple, we will take a look at … Continue reading CONTAINSROW() DAX Function Tutorial (is DAX CONTAINSROW() = WHEN EXISTS() in SQL?), Plus a Fraud Detection Calculation

# The Very Basics of Row Level Security (RLS – Power BI Tutorial)

There are many videos on YouTube already dedicated to this topic. So why am I doing another one? Well, the goal here is not to teach you Row Level Security. My goal is to help you understand how Row Level Security works. In this video I will discuss what makes row level security work in … Continue reading The Very Basics of Row Level Security (RLS – Power BI Tutorial)

# HR Analysis – How to Mask Salaries (and a Parent/Child Hierarchy Power BI Tutorial)

HR Reporting is a sensitive topic where we often have to implement a variety of rules and constraints. Row Level Security is one of the options that we often use to implement those rules, but sometimes, the filtering behavior of RLS is not exactly what we want. In our scenario, imagine a situation where I … Continue reading HR Analysis – How to Mask Salaries (and a Parent/Child Hierarchy Power BI Tutorial)

# Last N Weeks Comparisons (DAX Tutorial) (Last 4 weeks, Last 8 weeks, …, Last N weeks)

We often need to compare our current week's sales with the average sales over the last 4, 8, 52 or even N weeks. In this tutorial I go over one of the possible approaches that will allow you to provide a drop-down choice for the user to select the time range to compare with the … Continue reading Last N Weeks Comparisons (DAX Tutorial) (Last 4 weeks, Last 8 weeks, …, Last N weeks)

# Comprehensive DAX Table Functions Tutorial (GENERATE, SUMMARIZE, ADDCOLUMNS, NATURALINNERJOIN and more… )

I have tried to do this before one temp table function at a time, but I think I need to try something different In this video, we will go from the simplest table functions like ROW() to more sophisticated ones like GENERATE, SUMMARIZE, ADDCOLUMNS, NATURALINNERJOIN and a few others. I think that unless you go … Continue reading Comprehensive DAX Table Functions Tutorial (GENERATE, SUMMARIZE, ADDCOLUMNS, NATURALINNERJOIN and more… )

# Why DAX SUM() Function is Broken and How to Fix It

This is not a click bait – the SUM() function in DAX is indeed broken in my opinion. Just try to add a calculated column with a SUM(…) of another column in the create column formula and then do the same but with a CALCULATE(SUM(…)) and you will see that these will produce two absolutely … Continue reading Why DAX SUM() Function is Broken and How to Fix It

# Top Performers Analysis + Generate() and TopN() Tutorial

Ok, I have to admit, this is not a level 100 kind of stuff, things get a little complicated, but if you manage to sit through the entire thing, I think it will be worth your while. The problem is the following - we have a sales table tracking Sales Amount by Date, Product, and … Continue reading Top Performers Analysis + Generate() and TopN() Tutorial