Forum Discussion

arunaramana's avatar
arunaramana
Icon for Helper III rankHelper III
4 years ago
Solved

automatically CALCULATE() function is surrounded to a measure when it is inovked in a DAX expression

Hello There, 

I found the following information when going through the "Context Transition" documentation by "Alberto Ferrari /SQLBI".

Would anyone please help me understand?

 

It is worth remembering that when you invoke a measure from a DAX expression, this is automatically surrounded by CALCULATE. The automatic CALCULATE, added by DAX, performs context transition and it might become source of errors in your code.

  • When you start working with iterators it is important to remember to use CALCULATE in order to trigger context transition.  If you use a measure you don't need to include that.  Because the 3rd measure uses another measure in the iteration your don't need the CALCULATE around it to get the correct answer.

     

3 Replies

  • When you start working with iterators it is important to remember to use CALCULATE in order to trigger context transition.  If you use a measure you don't need to include that.  Because the 3rd measure uses another measure in the iteration your don't need the CALCULATE around it to get the correct answer.

     

    • Anonymous's avatar
      Anonymous
      Not applicable

      Hi,

       

      I am trying to better understand this concept. Why is the "Year" field shown in the table and not the "Year Month" field that is in the DAX expression? 

      • jdbuchanan71's avatar
        jdbuchanan71
        Icon for Super User rankSuper User

        That was just to have fewer rows in the screen shot.  The amounts in the measure get aggregated up to the level of Year because that is the field on the rows.  It has nothing to do with the facth that when you are working with iterators you have to

        a. Use and existing measure or

        b. Use CALCULATE around your expression