Join us for an expert-led overview of the tools and concepts you'll need to pass exam PL-300. The first session starts on June 11th. See you there!
Get registeredPower BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.
I need help either effectively applying the FORMAT or VALUE commands vs something else if I have misunderstood the formatting error I have recieved on my DAX code (copied below)
Error recieved =
"DAX comparison operations do not support comparing values of type Integer with values of type Text. Consider using the VALUE or FORMAT function to convert one of the values"
The formula excutes successfully if I remove the "DOP < 42" component of the Return, yet this column of the table is formatted as a whole number, as is the "Reporting Year" - is it because I am asking if AED_RY and S_RY (whole number values derived from a date) are sourced from a Date column?
S_RY = a whole number reporting year extracted from a date column
AED_ RY = a whole number reporting year extracted from a date column
DOP = a whole number unrelated to a date and when removed from the IF enables the IF to work - i believe this is therefore the source of the issue, but this is still a key component of the overall DAX code
Any help very greatly appreciated, thank you
Solved! Go to Solution.
The issue is the "&". A single ampersand like you have here is the string concatenation operator, you want "&&" which is a logical and.
Hey @SHRJ247 ,
You're getting this error: “DAX comparison operations do not support comparing values of type Integer with values of type Text…”
This occurs because of the & operator, which concatenates text it does not function as a logical AND (&&). DAX interprets S_RY & DOP < 42 as text concatenation (even though they’re numbers), and the resulting expression becomes semantically invalid.
You likely meant to use the logical AND operator &&. So change this line:
IF (AED_RY > S_RY & DOP < 42, S_RY, AED_RY)
To:
IF (AED_RY > S_RY && DOP < 42, S_RY, AED_RY)
Draft = VAR S_RY = LOOKUPVALUE('Aims Calender'[Reporting Year], 'Aims Calender'[Date], Aims[StartDate]) VAR AED_RY = RELATED('Aims Calender'[Reporting Year]) VAR DOP = Aims[Days On Programme] RETURN IF (AED_RY > S_RY && DOP < 42, S_RY, AED_RY)
If you found this solution helpful, please consider accepting it and giving it a kudos (Like) it’s greatly appreciated and helps others find the solution more easily.
Best Regards,
Nasif Azam
Hey @SHRJ247 ,
You're getting this error: “DAX comparison operations do not support comparing values of type Integer with values of type Text…”
This occurs because of the & operator, which concatenates text it does not function as a logical AND (&&). DAX interprets S_RY & DOP < 42 as text concatenation (even though they’re numbers), and the resulting expression becomes semantically invalid.
You likely meant to use the logical AND operator &&. So change this line:
IF (AED_RY > S_RY & DOP < 42, S_RY, AED_RY)
To:
IF (AED_RY > S_RY && DOP < 42, S_RY, AED_RY)
Draft = VAR S_RY = LOOKUPVALUE('Aims Calender'[Reporting Year], 'Aims Calender'[Date], Aims[StartDate]) VAR AED_RY = RELATED('Aims Calender'[Reporting Year]) VAR DOP = Aims[Days On Programme] RETURN IF (AED_RY > S_RY && DOP < 42, S_RY, AED_RY)
If you found this solution helpful, please consider accepting it and giving it a kudos (Like) it’s greatly appreciated and helps others find the solution more easily.
Best Regards,
Nasif Azam
Thank you for your response and the time taken to differentiate the & and the && meaning for me,
Kind Regards
OMG Thank you so much, what a silly omission on my part, thank you for spotting
The issue is the "&". A single ampersand like you have here is the string concatenation operator, you want "&&" which is a logical and.
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.
Check out the June 2025 Power BI update to learn about new features.
User | Count |
---|---|
16 | |
13 | |
12 | |
11 | |
11 |
User | Count |
---|---|
19 | |
14 | |
14 | |
11 | |
9 |