Table of Contents

  • The Iterator’s Dilemma: Context Transition

    As I’ve mentioned a couple times now, the main job of CALCULATE is to create a new Evaluation Context where filters have been added or removed, and then run whatever has been typed into argument 1 (the “New Filters Formula”) *within* that new Evaluation Context. Essentially running the “New Filters Formula” within a new set…

    Read more

  • Adding Even More Simple Filters with CALCULATE

    In this quick post we’re going to continue looking at examples of adding basic filters with CALCULATE. I don’t want to get too bogged down in this post, there are few (if any) new concepts here; but seeing multiple examples can be very helpful when encountering tricky new ideas. With that in mind, we’re going…

    Read more

  • Adding Basic Filters with CALCULATE.

    In the last post we finished our introduction to Evaluation Context. The short story is that every formula and sub-formula in DAX runs with two lists in place. The first is a list of all the values in the current row; this list is called “Row Context”. The second is a list of all the…

    Read more

  • DAX Evaluation Context (Part 3)

    At this point I think we’ve established pretty well that in DAX every sub-formula always runs with two lists in place: a list of all the values of the current row (“Row Context”) and a list of all the current filters (“Filter Context”). These two lists together are called the sub-formula’s “Evaluation Context”. In the…

    Read more

  • DAX Evaluation Context (Part 2)

    In the last post we learned that in DAX every sub-formula always runs with two lists in place: a list of all the values of the current row (“Row Context”) and a list of all the current filters (“Filter Context”). These two lists together are called the sub-formula’s “Evaluation Context”. These lists exist so that…

    Read more

  • DAX Evaluation Context (Part 1)

    DAX is a language of sub-formulas; what at first looks like one big formula is usually several sub-formulas chained together. We talked about this last time, and I hope the idea is starting to make sense in your head, even if slowly. And like we talked about last time, the two main types of sub-formulas…

    Read more

  • The Sub-Formulas of DAX

    DAX is a language of sub-formulas. To a new author, a Measure looks like one big formula; but to a trained DAX expert it’s a chain of interrelated sub-formulas, each of which can be isolated and understood as distinct. While there are sub-formulas all over the place in DAX, most don’t require special training to…

    Read more

  • In the previous post we learned about the Auto Snapshot why it is helpful to be able to visualize it while writing or reading DAX. That’s all well and good, but how do you do it? I don’t have a pill for you to take, and the reality is that the best tool here is…

    Read more

  • The DAX Auto Snapshot (Part 4): Grouping

    In the last post we looked at how if you can properly understand and visualize the Auto Snapshot, understanding the RELATED function is actually quite simple. The Temp Table produced by the Auto Snapshot has several columns added during the Super Lookup (aka “Table Expansion”). These added columns are classified as Related columns. While these…

    Read more

  • The DAX Auto Snapshot (Part 3): Related Columns & RELATED

    In the previous post in this series, we learned about the Auto Snapshot and the several steps DAX executes when performing it. Quickly, if a function is expecting you to give it a Temp Table as an argument and you give it a Model Table instead (by typing the name of a table in your…

    Read more