Forum Discussion
Multiple If statements using columns
- 2 years ago
I believe you need is switch statement.
Check this link for more details: https://www.mssqltips.com/sqlservertip/7574/dax-case-statement-dax-if-switch/
and search for text "DAX SWITCH(TRUE())" and read from there.
I tried to understand and came with below syntax. Not sure whether it works correctly or not, give a try...
Your Column = SWITCH ( TRUE (), Table1[Value] < Table1[Target], "Orange", Table1[Value] >= Table1[Target] && Table1[Value] < Table1[High], "Green", Table1[Value] >= Table1[High] && Table1[Value] < Table1[Purple], "Red", Table1[Value] >= Table1[Purple], "Purple", "0" )Output:
- 2 years ago
A SWITCH is often neater than nested IFs.
I think you could write it like this:
SWITCH ( TRUE (), T[Value] < T[Target], "Orange", T[Value] < T[High], "Green", T[Value] < T[Purple], "Red", "Purple" )(Replace "T" with whatever your table name is.)
Edit: It looks like sevenhills got there first. The only difference with mine is that I've eliminated the redundant conditions. For example, if you get past the "Orange" line, we already know that T[Value] >= T[Target], so we don't need to recheck it.
A SWITCH is often neater than nested IFs.
I think you could write it like this:
SWITCH (
TRUE (),
T[Value] < T[Target], "Orange",
T[Value] < T[High], "Green",
T[Value] < T[Purple], "Red",
"Purple"
)
(Replace "T" with whatever your table name is.)
Edit: It looks like sevenhills got there first. The only difference with mine is that I've eliminated the redundant conditions. For example, if you get past the "Orange" line, we already know that T[Value] >= T[Target], so we don't need to recheck it.
You're both brilliant and have saved the day thank you so much! I've used this one as it looks more simple to write out! I'm self taught like most people so muddling my way through DAX and I saw some suggestions online for SWITCH but wasn't sure how to use it in this example. I was trying to use this column for some conditional formatting in a matrix and I've just managed to do it using this - I will be eternally grateful! Thank you! 🙌