Forum Discussion

abbytank's avatar
abbytank
Frequent Visitor
3 years ago
Solved

Dax Calculate Function

I have been wrestling to understand how logically the following to statements or (measures) are providing different results. 

 

Sales PCT_1 =

    var current_sales = sumx(sales, Sales[Quantity]*Sales[Net Price])

    var all_sales = calculate(current_sales,all('Product Category'[Category]))

    var pct_ratio = DIVIDE(current_sales,all_sales,0)

    return pct_ratio

 

Sales PCT_2 =

    var current_sales = sumx(sales, Sales[Quantity]*Sales[Net Price])

    var all_sales = calculate(sumx(sales, Sales[Quantity]*Sales[Net Price]),all('Product Category'[Category]))

    var pct_ratio = DIVIDE(current_sales,all_sales,0)

    return pct_ratio

(the first one provides all results 100% and ingnores all filters even while the later one provides better results when I categorise the result)

I would be gratefull if someone help me how using the statement or the variable have made the changes.

 

Thanks in advance.

  • Variables are not variable, they are constant.

     

    You cannot alter the value of a variable once it has been assigned. Therefore this line of code does not change the value of the variable

    var all_sales = calculate(current_sales,all('Product Category'[Category]))

1 Reply

  • MattAllington's avatar
    MattAllington
    Community Champion

    Variables are not variable, they are constant.

     

    You cannot alter the value of a variable once it has been assigned. Therefore this line of code does not change the value of the variable

    var all_sales = calculate(current_sales,all('Product Category'[Category]))