DAX Best Practices – SQLBits 2018
As with any other language, you can write good DAX but you can also write bad DAX. Good DAX works fine, it is fast and reliable and can be updated easily. Bad DAX, on the other hand is… well, just bad....
View ArticleDAX Optimization Examples – SQLBits 2018
How do you optimize a DAX expression? In this session, Alberto Ferrari analyzes some DAX expressions and Tabular models and, through the usage of DAX Studio and some understanding of the VertiPaq...
View ArticleBudgeting with Power BI – PASS Austria
Budgeting is one of the most challenging scenarios in the Power BI arena. For example, you might need to summarize sales in previous years and to allocate the budget forecasts. You have to work with...
View ArticleUsing OR conditions between slicers in DAX
This article describes how to implement in DAX a logical OR condition between the selection of two slicers of a Power BI report or of a PivotTable in Excel. By default, when relying on more than one...
View ArticleTime Intelligence in Power BI – Global Power BI User Group
Time Intelligence is probably the most interesting feature of any analytical solution. Computing Year-To-Date, Month-To-Date, Same-Period-Last-Year, is quite easy in DAX but, as soon as the customer...
View ArticleRemoving column filter in Power BI when Sort by Column is active
A recurring issue for Power BI users writing DAX code is that column filter removal might have an unexpected behavior when the Sort by Column is active on the column. I covered this topic in an article...
View ArticleDAX Formatter now uses a different color for variables names
In the latest weeks I received several requests to support a different color for variable names in DAX Formatter, just as the formula editor available in Power BI. I finally implemented a solution that...
View ArticleUsing COMBINEVALUES to optimize DirectQuery performance
This article describes the behavior of the COMBINEVALUES function in DAX, and how it can optimize the performance of DirectQuery with multi-column relationships. The DAX language manages data models in...
View ArticleFrom SQL to DAX: Joining Tables
In SQL there are different types of JOIN, available for different purposes. This article shows the equivalent syntaxes supported in DAX and it was updated in May 2018. The SQL language offers the...
View ArticleTime intelligence issues in DAX for fiscal years starting in March
If you have a fiscal year starting in March, you can have a problem using the time intelligence functions in DAX. For example, by using February 28, the fiscal year starts on February 29th in leap...
View ArticleChange culture/collation of an Analysis Services Tabular database
When you create a Tabular model for Analysis Services, the Culture and Collation properties are set automatically and cannot be changed by the SSDT user interface in Visual Studio. The biggest issue is...
View ArticleHow to write DISTINCTCOUNTX in DAX
I received a question about how to implement the equivalent of a DISTINCTCOUNTX function in DAX. Well, such a function doesn’t exist in DAX, but imagine you want to write something like: UniqueInitials...
View ArticleOptimizing IF conditions using variables
This article describes a very common optimization pattern using variables to optimize conditional expressions in DAX. In a previous article, we already shown the importance of using variables to...
View ArticleMy Power BI report is slow: what should I do?
You have created a wonderful looking Power BI report, but when you open it you find it is not rendering as fast you want. This session covers where should you start analyzing the problem and what can...
View ArticleOptimizing mutually exclusive calculations
This article describes how to optimize DAX expressions with mutually exclusive calculations that might cause slow query performance. In previous articles, we discussed the importance of variables and...
View ArticleCorrect calculate of age in DAX from birthday
By answering to a student question I realized we often used a wrong calculation of customers age in DAX, and the simple solution is to borrow the same technique used in Excel, using INT and YEARFRAC...
View ArticleSmart Filter Pro Preview
Today we start the preview of Smart Filter Pro. This is the first commercial custom visual produced by OKViz and it will be in preview until the end of 2018. You can start using it today, no...
View ArticleCreating table functions in DAX using DETAILROWS
This article describes how to use the detail rows expression of a measure to obtain the equivalent of creating table functions in DAX. This allows the reusing of a table expression in multiple...
View ArticlePower BI is a model-based tool
This article describes the differences between report-based tools and model-based tools. Because Power BI is a model-based tool and not a report-based tool, it is useful to have a quick reference guide...
View ArticleOn comparing Power BI with other tools
In the last few years, the Business Intelligence (BI) world has been moving towards self-service BI. As expected, several vendors created tools empowering regular users to gain insights from their...
View Article