Articles of 2025
Using RANK instead of RANKX in DAX
Should you use RANK or stick with RANKX? In which scenarios is one better than the other? This article provides an in-depth analysis to help readers make informed choices. Read more
Model-dependent and model-independent user-defined functions in DAX
This article explains the distinction between model-dependent and model-independent DAX user-defined functions, highlighting how dependencies impact portability and maintenance, and provides guidance on avoiding hidden dependencies and adopting proper naming conventions. Read more
Find the products in the top 10 every year with DAX
This article outlines the process of creating a measure to identify the top 10 products by sales each year. Read more
Using VALUES in SUMMARIZE
This article describes when to use VALUES in a table grouped by SUMMARIZE, then goes on to explain why you cannot however use VALUES with SUMMARIZECOLUMNS. Read more
Understanding value filter behavior in SUMMARIZECOLUMNS
Value filter behavior is a setting in Power BI semantic models that controls how filters are combined in SUMMARIZECOLUMNS. This article explains how it works and suggests its best configuration. Read more
Introducing calendar-based time intelligence in DAX
This article introduces the new calendar-based time intelligence functions in DAX, available in preview from the September 2025 release of Power BI. Read more
Introducing user-defined functions in DAX
User-defined functions are a new and exciting feature in DAX. In this article, we outline the key concepts to understand before using them in Power BI projects. Read more
Introducing AI and agentic development for Power BI
This article is about useful concepts and scenarios for integrating AI and AI agents in BI development, with specific examples for Power BI. Read more
Using VALUES in iterators
Why and when you should use VALUES while iterating a table reference in DAX. Read more
Sideways recursion in DAX calculation groups
This article describes the sideways recursion triggered by invoking a calculation item from another calculation item, explaining why it should be avoided to steer clear of unexpected results. Read more