This article explains how to improve DAX queries using GENERATE and ROW instead of ADDCOLUMNS when you create table expressions.
This article describes how the SELECTEDVALUE DAX function simplifies the syntax required in many scenarios where you need to read a single value selected in the filter context.
This article shows how to define variables in DAX queries and introduces the differences in scope when there are multiple EVALUATE statements.
SQLBI offers a new introductory DAX video course called Introducing DAX. This article describes which users will benefit more from this learning experience, and how to enroll in the course.
This article presents different techniques to compute a rownumber column in DAX based on a specific ranking, comparing slow and optimized approaches.
This article describes the differences in the levels available in Azure Analysis Services (Azure AS), comparing them with the features in SQL Server Analysis Services (SSAS) on-premises.
This article describes how DAX resolves column and measure names in DAX, providing best practices to avoid conflicting names.
This article describes a number of techniques available to filter tables in DAX, showing possible pitfalls that you can avoid once you know them, in particular using bidirectional filters.
One of the hardest things to do, when learning DAX, is to get rid of common sense reasoning and learn to follow a new set of rules, which are defined in the language and that are somewhat unique.
This article describes different techniques to retrieve multiple values from a lookup table in DAX, improving code readability and performance.
This article describes how table expansion and filter context propagation are important DAX concepts to understand and fix small glitches in DAX expressions.
This article describes the IN operator in DAX, which simplifies logical conditions checking whether a certain value is included in a list of values or expressions.
This article describes how to create a virtual relationship in DAX using the TREATAS function, which is more efficient than approaches based on INTERSECT or FILTER.
This article explains how to use SUMMARIZECOLUMNS, which is a replacement of SUMMARIZE and does not require the use of ADDCOLUMNS to obtain good performance.
If you do not have a full month with data, comparisons such as year-over-year (YOY) might require particular filters in order to do a like for like comparison in DAX. This article describes how to write DAX expressions comparing equivalent periods, keeping corresponding number of days in the comparison.
This article describes how to implement incremental updates to an Analysis Services database in Tabular mode with compatibility version 1200 or higher.