Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
5 years ago
Solved

Multiple IF statements inside switch case

I have multiple statements that i need to validate for "category" column.
I have written this DAX but i am getting an error "Switch doesnot support comparing values of type boolean with text ,consider using value or format to convert one of the values"
Category =
var cat_raw = 'Data'[Category_Raw]
var new = SWITCH (
TRUE (),
IF(AND('Data'[Facility] starts with "AB",OR('Data'[Payer] contains ="XXXX",
'Data'[Payer] contains = "XYXY")), "XContainer","XService"),
IF(AND('Data'[Facility] = "BC",OR('Data'[Type]="YYYY",
'Data'[Type]="YXYX")), "YContainer",cat_raw),
IF(AND('Data'[Facility] = "CD",'Data'[Type]="CDCD"),
"DContainer", cat_raw),
cat_raw
)
return new
  • Hi Anonymous 

    the first part has random non-DAX code like "starts with". For the secodn part, you'd need something like this. You'll probably have to adapt it a bit but you'll get the idea.

    Category =
    VAR cat_raw = 'Data'[Category_Raw]
    VAR new =
        SWITCH (
            TRUE (),
            AND (
                'Data'[Facility] = "BC",
                OR ( 'Data'[Type] = "YYYY", 'Data'[Type] = "YXYX" )
            ), "YContainer",
            AND ( 'Data'[Facility] = "CD", 'Data'[Type] = "CDCD" ), "DContainer",
            cat_raw
        )
    RETURN
        new

     Look at the syntax of SWITCH to understand well how it works

    Please mark the question solved when done and consider giving a thumbs up if posts are helpful.

    Contact me privately for support with any larger-scale BI needs, tutoring, etc.

    Cheers 

     

5 Replies

  • AlB's avatar
    AlB
    Community Champion

    Hi Anonymous 

    the first part has random non-DAX code like "starts with". For the secodn part, you'd need something like this. You'll probably have to adapt it a bit but you'll get the idea.

    Category =
    VAR cat_raw = 'Data'[Category_Raw]
    VAR new =
        SWITCH (
            TRUE (),
            AND (
                'Data'[Facility] = "BC",
                OR ( 'Data'[Type] = "YYYY", 'Data'[Type] = "YXYX" )
            ), "YContainer",
            AND ( 'Data'[Facility] = "CD", 'Data'[Type] = "CDCD" ), "DContainer",
            cat_raw
        )
    RETURN
        new

     Look at the syntax of SWITCH to understand well how it works

    Please mark the question solved when done and consider giving a thumbs up if posts are helpful.

    Contact me privately for support with any larger-scale BI needs, tutoring, etc.

    Cheers 

     

    • Anonymous's avatar
      Anonymous
      Not applicable

      Sorry about the non dax part, it was for my understanding which i will do it later , to search and to use contain in dax query .So for the time being i am using "=" only , and i also tried removing the IF statements and i am still getting the same error

  • AlB's avatar
    AlB
    Community Champion

    Anonymous 

    1) Let me see the actual code.

    2) Check that none of the columns you are comparing to text are of type boolean

     

    Please mark the question solved when done and consider giving a thumbs up if posts are helpful.

    Contact me privately for support with any larger-scale BI needs, tutoring, etc.

    Cheers 

     

    • Anonymous's avatar
      Anonymous
      Not applicable

      All my columns are of type TEXT, i have checked it already

  • Anonymous's avatar
    Anonymous
    Not applicable

    Anonymous 

    Can you explain with a short sample table, so we can understand the code. 

     

    Regards
    Paul