Forum Discussion
Strange DAX evaluation context
Hi community,
I have been trying to figure it out for a while but with no success.
I have an easy table where one IA has many types and I want to calculate only one type based on numbers. In this example, this IA has 134 RD (Rodinný dům (home house)) and 0 BD (apartment building). I compare both number and in this case it works fine. The result is Rodinný dům (home house)
This is the measure:
However, when I changed the measure to more and equeal, it will stop working properly (cross join is applied and context is lost)
The same, when I replace blank with a value.
How is it possible that with a little change I can lose the full context and cross join is applied? IA is from DIM_IA and Type (objekt type) from DIM_ROP.
Below I am attaching all measures. Here I am adding +0, otherwise the row in the table disappared because the row has no value. Other IA can have both numbers but mostly one of them doesn't exist.
Thank you,
Jan
I think you can combine the >= with a check for NOT ISBLANK()
Type calculated = IF ( NOT ISBLANK ( [RD] ) && [RD] >= [BD], "Rodinny dum" )
4 Replies
- johnt75Super User
When you change the condition to >= the extra row which appears shows blank for both [RD] and [BD]. As blank = blank [Type calculated] returns the value, rather than returning blank as it did when you had the condition as >.
- jankonasAdvocate I
Thank you johnt75, it makes sense. Do you think there is a dax expression which would work in this case? I found out that I can use a visual calculation and hide both the columns BD and RD by slicing them. I believie this is not so clean solution as this is only a small pattern that I am showing. I just wonder, if dax can handle this by not comparing blank values?
- johnt75Super User
I think you can combine the >= with a check for NOT ISBLANK()
Type calculated = IF ( NOT ISBLANK ( [RD] ) && [RD] >= [BD], "Rodinny dum" )