I have seen a few great blog posts with regards to the new DAX function EvaluateAndLog which can be used to show/debug what happens with DAX Measures.

When I tried this out myself one of the challenges I had was where to download DaxDebugOutput, and then how to use it with Power BI Desktop.

In this blog post I will show you how I downloaded, installed, and used DaxDebugOutput application with Power BI Desktop.

Downloading and installing DaxDebugOutput

The first step is to download and install DaxDebugOutput here: Releases · pbidax/DAXDebugOutput (github.com)

NOTE: The link above might have different versions over time. I would suggest always selecting the latest version.

I downloaded the MSI

When the download completed in Edge I got the following prompt that this MSI is not trusted as shown below.

I then clicked on the three dots and selected “Keep”

I then got the second option asking me if I was sure and I clicked on “Keep anyway”

I could now click on “Open file” to then run the setup.

This then opened the installation window then I accepted the defaults to complete the installation.

I clicked “Close” to complete the installation.

Creating a measure with EvaluateAndLog

Even though this has been covered multiple times in other blog posts I am going to quickly create a measure where I can use the EvaluateAndLog DAX Syntax, which later can be used in the DaxDebugOutput application in the next steps.

I created the following measure which I will use with the DaxDebugOutput application later.

Sales (EaL) = EVALUATEANDLOG(SUM('Table'[Sales Amount]))

I then put this into a table in my Power BI report as shown below.

Using DaxDebugOutput with Power BI Desktop

Now the final step is to show you how I then used the DaxDebugOutput application to view the results of the EvaluateAndLog DAX function.

What I did was to then search for the DaxDebugOutput application on my PC to open the application.

NOTE: This might vary on different operating systems.

I then clicked on Connect when the DaxDebugOutput application opened

I then selected the PBIX file where I had created my measure [Sales (EaL)] and clicked OK.

Now on the bottom left-hand side I could then see that I am connected to my PBIX file.

To get DaxDebugOutput to show what is happening under the hoods I needed to make a change to the table visual. What I did was I removed the column called Order Count and added it back into the same table.

This resulted in the following output in the DaxDebugOutput application as shown below.

Now because I am using a table visual there will be 2 queries which will be run.

#4 is the first query that is run which calculates the total

Next #7, this will show the output of the DAX query. As we can see it shows us the output for each of the Order Count values as shown below.

This application is awesome as it allows me to see how the underlying DAX measure is evaluated and logged.

Tip

What I did find is that over time the DAXEvaluationLog might not show in the DaxDebugOutput application.

My assumption that is this happening is because the Power BI dataset/analysis services engine starts to cache the results. And when results are caches, they do not use the formula/storage engine.

One way to overcome this is to put in a new column into an existing table.

What I did was to also open DAX Studio, connect to the same PBIX file and then use the “Clear Cache” option.

Summary

In this blog post I have shown you how I downloaded and installed DaxDebugOutput.

I then demonstrated how to create a measure using the EvaluateAndLog

And then finally how to connect and use the DaxDebugOutput application to view the results.

Thanks for reading I hope that you found this helpful. Comments and suggestions are always welcome.

Reference Blog Posts:

Introduce the DAX EvaluateAndLog Function – pbidax (wordpress.com)

Chris Webb’s BI Blog: Diagnosing Switch-Related Performance Problems In Power BI DAX Using EvaluateAndLog Chris Webb’s BI Blog (crossjoin.co.uk)