-
In this article we show various techniques to force a measure to return zero instead of blank, in order to highlight combinations of attributes with no data. Read more
-
Understanding the difference between a row context and a filter context is the first and most important concept to learn to use DAX correctly. This article introduces the filter context. Read more
-
Using ALLSELECTED with no arguments in a remote model later used in a composite model might produce unexpected results. In this article we examine the topic and provide the reasons why ALLSELECTED requires special attention. Read more
-
This article introduces the syntax to describe in a textual form the DAX expressions and additional properties of calculation groups. Read more
-
This article describes the IN operator in DAX, which simplifies logical conditions checking whether a certain value belongs to a list of values. Read more
-
When used in a composite model, calculation groups show a very unique behavior that a good DAX developer must understand well to build sound models. In this article we describe how composite models and calculation groups work together. Read more
-
In composite models, any query can be executed on the remote model (wholesale execution) or by mixing local and remote engines together (retail execution). This article describes the differences between the wholesale and retail modes, along with examples. Read more
-
There are two options to model many-to-many relationships using Tabular and Power BI: you can use either a regular bidirectional filter relationship, or a limited unidirectional relationship. In this article, we compare the performance of both options. Read more
-
In this article we perform a performance comparison between header/detail models and star schemas. Building a star schema might require a few ETL steps and some coding. Nonetheless, it is always the best modeling option. Read more
-
In DAX, optimizations and data types do not always play nice and can leave you dealing with surprises. In this short article, we see an example of how mixing blanks, Boolean logic, and comparison with TRUE might lead to unexpected… Read more