Forum Discussion
If Condition for Text not Working
Hey, I have a [Status] Column where I'm trying to consolidate the 7 different types into either Open or Closed. I've tried multiple IF statements, but PBI doesn't seem to be reading my data correctly.
For example, the following are the status types...
-(Blank)
-Assigned
-Closed with Feedback
-Pending Expert
-Retired
-Submission Declined
-Work in Progress
Retired, Submission Declined, and Closed with Feedback all need to be grouped into status Classification: Closed. All the others need to be grouped: Open.
My intial formula to test just one did not work: IF(Table1[Status] = "Retired", "Closed", Table1[Status]).
The new row just mirrors the old row. So somehow this is a false statement, I just don't know how to fix it.
Any help would be appreciated.
- Anonymous7 years agoSuch things should be done in Power Query (M), not in DAX. Use the right tool for the job. On top of that, M code would be very simple. No messing around with context and context transition.
DAX is a Data Analysis eXpressions language, not data mash-up language. M is.
Best
D. - Anonymous7 years ago
Hi there.
Again, this is not the way to do it. First, you should create an auxiliary table that will hold all the mappings from status to classification. Then, in PQ, you left outer join the target table to the mappings table and get the column you need.
This procedure makes sure you don't have to go back to the M code when you need to change a mapping or add a new one. All you have to do is manage the mappings which can be done in the source through SQL (if your data comes from a relational database).
Best
D.
7 Replies
- ayushqralgroupFrequent Visitor
You can use IF in conjunction with OR logical operator as shown below:
Create a new column:
Final Status = IF( Table1[Status] = "Retired" ||Table1[Status] ="Submission Declined" || Table1[Status] ="Closed with Feedback", "Closed","Open") Anonymous
Hope this helps!
- AnonymousNot applicable
I would try to accomplish this with a measure using a switch statement such as:
status = switch([status],Retired, "Closed"
Submission Declined, "Closed"
Closed with Feedback, "Closed"
assigned,"Open"
etc...
)
- AnonymousNot applicable
If you wanted to stick with an IF statement it would have to be nested such as:
IF([status] = "retired","Closed",(IF([status] = "Submission Declined","Closed",(IF([status] ="assigned","open",(IF etc.. )))
but that could get long and messy which is why i recomend the switch statement above
- AnonymousNot applicable
So I tested this out for a few of the status...
switch(Table1[Status],"Retired", "Closed", "Submission Declined", "Closed", "Assigned", "Open").This resulted the entire column going to blank. Did I type this in incorrectly or do I have to fill out all of the 7 status for it to work?- AnonymousNot applicableSuch things should be done in Power Query (M), not in DAX. Use the right tool for the job. On top of that, M code would be very simple. No messing around with context and context transition.
DAX is a Data Analysis eXpressions language, not data mash-up language. M is.
Best
D.