By Lukas Hillesheim, 18 March, 2023
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 that. Other concepts can be set concepts, OOP concepts and concepts from SQL. Concepts from other languages can make DAX more transparent.
By Lukas Hillesheim, 4 January, 2023
Attribute relationships are internal objects of the Analysis Services MultiDimensional Engine. They are not visible for the MDX client, can only be used indirectly and can only be configured in the development environment. However, they affect MDX objects and implicit behaviors. Understanding relationships is therefore essential for understanding MDX.
By Lukas Hillesheim, 31 December, 2022
This article describes how the Analysis Services Multidimensional engine implicitly expands an incomplete tuple such as ([East]) to a complete tuple such as ([East], [2018], [Amount], etc.). This knowledge is crucial to understand how engine internals affect the way a cell value is computed.
By Lukas Hillesheim, 17 March, 2023
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.
By Lukas Hillesheim, 30 August, 2022
Part 1 of this series shows how Lambda Expressions work within Power Query Iterators. Lambda expressions placed inside an Power Query function will be executed repeatedly. With each call, the iterator passes different data to the lambda expression.
By Lukas Hillesheim, 30 August, 2022
In part 1 of this series i mentioned that the MSDN does not provide information about the concrete (data) traffic between the lambda expression and the iterator that the lambda expression is part of. Part 2 of this series shows three examples of how Power Query iterator and lambda expression interact with each other.
By Lukas Hillesheim, 30 August, 2022
Article 3 of this series covers "List.Generate". "List.Generate" is one of the most important Power Query functions. As in other languages, "List.Generate" encapsulates a loop and is the equivalent of a For-loop. Understanding List.Generate requires knowledge of lambda expressions.