The following article shows how cascading calls of CALCULATETABLE can be used to transport a filter over multiple hops. Use cases for this pattern are tables within a Galaxy schema or tables that are part of a more complex Snowflake schema.
Internet articles usually show a simplified use of the RANKX function, in which only arguments 1, 2 and 4 of the 5 possible arguments are used. Therefore the purpose of argument 3 (value) may be unclear. The following article shows the effect of using argument 3 and how the internals of the RANKX function can be thought of.
In the DAX language, sorting can only be applied at the end - when the data is ready for delivery - but not as an intermediate step, for example, to save sorted data in a variable. The following article shows how this goal can be achieved with the help of GENERATE and GENERATESERIES.
The first article of this series is intended to explain the complex language DAX from the point of view of other concepts, on the internet the term projection is often used for this. Other concepts can be set concepts, OOP concepts and concepts from SQL. Concepts from other languages can make DAX more transparent.
How hard is it to learn DAX? The article deals with the challenges of learning DAX as a BI language for the tabular model and the difference to the MDX language.