Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

The Power BI DataViz World Championships are on! With four chances to enter, you could win a spot in the LIVE Grand Finale in Las Vegas. Show off your skills.

Reply
JPDUVAL76
Helper I
Helper I

DAX with VAR

Hello,

I don't understand why these two DAX codes don't return the same amount in Power BI. In my example, imagine a table with 4 columns:

- Date of receipt
- Amount of the receipt
- Receipt number
- Type

The type is "purchase order" when it equals 1 and "invoice" when it equals 2. I simply want to calculate the amount when the type is 1. I'm using this very simple example for the variables, but I could do it differently.

In my first case, my code is as follows:
```DAX
VAR status_bdc = 1
VAR BDC = [Amount]
VAR result = CALCULATE(BDC, CBonLivraison[TypeBon] = status_bdc)
RETURN result
```
Here, [Amount] = SUM(Amount of the receipt). In this case, "result" is not correct because it doesn't apply the filter Type = 1.

In the following code, it works:
```DAX
VAR status_bdc = 1
VAR BDC = [Amount]
VAR result = CALCULATE([Amount], CBonLivraison[TypeBon] = status_bdc)
RETURN result
```
The only difference is that in the first code, I call the variable BDC which contains the measure, whereas in the second case, I directly include the measure amount in my result variable.

If someone can explain to me because I don't understand the point of it if it doesn't work, I also tried putting Var BDC = SUM(Amount of the receipt) and it doesn't work.

Thanks in advance.

1 ACCEPTED SOLUTION
HotChilli
Super User
Super User

I see this regularly on the forum.  When you assign a measure to a variable, it gets evaluated (and won't change after that). There isn't a notion of some kind of dynamic evaluation where the variable holds the name of the measure and evaluates it at some later point.

View solution in original post

2 REPLIES 2
HotChilli
Super User
Super User

I see this regularly on the forum.  When you assign a measure to a variable, it gets evaluated (and won't change after that). There isn't a notion of some kind of dynamic evaluation where the variable holds the name of the measure and evaluates it at some later point.

Thx for this answer, it's clear now !!!!

Helpful resources

Announcements
Feb2025 Sticker Challenge

Join our Community Sticker Challenge 2025

If you love stickers, then you will definitely want to check out our Community Sticker Challenge!

Jan NL Carousel

Fabric Community Update - January 2025

Find out what's new and trending in the Fabric community.