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… )

Finally!!! We Can Now Format The Same Measure as % OR $ on the Same Trend Chart (calculation groups bug is fixed!)

I knew this moment would come, but I did not know when. We are now able to have a smart measure that can be displayed as any valid number format on our chart, $$ or %, or even whole dollars All it took was for me to raise a bug with Microsoft about the formatting … Continue reading Finally!!! We Can Now Format The Same Measure as % OR $ on the Same Trend Chart (calculation groups bug is fixed!)

Improve Slice and Dice End User Experience for Tables with Multiple Dates (tutorial)

Slice and Dice experience on a table with multiple dates can be a little frustrating. If I have two date tables connected to my two date columns in the transaction table (so if I have a list of projects, Project Start Date and Project End Date), and if I create two filters at the same … Continue reading Improve Slice and Dice End User Experience for Tables with Multiple Dates (tutorial)