Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
6 years ago
Solved

Conditonal Column based on Calculated Columns

Hi, 

 

I have a table, where I have created 3 calculated columns, that tell me if that ID appears in another table. Looks like this: 

 

What I want to do is add another column that would categorise the rows and give them letters based on the other columns.

For example: 

If archivingvehicles = 1 and deleting vehicles = 0 and invoicingvehicles = 0 then "A", 

If archivingvehicles = 1 and deleting vehicles = 1 and invoicingvehicles = 0 then "A,D",

If archivingvehicles = 1 and deleting vehicles = 1 and invoicingvehicles = 1 then "A,D,I", 

If archivingvehicles = 0 and deleting vehicles = 1 and invoicingvehicles = 0 then "D", 

And so on. 

I would do this as a CASE WHEN in SQL but not sure in DAX.

 

Are you able to help on this, as it cannot be done in Power Query because the calculated columns do not show up. 


Thank you 

  • Anonymous's avatar
    Anonymous
    6 years ago

    Hi Anonymous ,

     

    i missed an &

     

    Try this

     

     

    Calculated Column =
    VAR a = 'Table'[archivingvehicles]
    VAR b = 'Table'[deleting vehicles]
    VAR c = 'Table'[invoicingvehicles]
    RETURN
        SWITCH (
            TRUE (),
            a = 1
                && b = 0
                && c = 0, "A",
            a = 1
                && b = 1
                && c = 0, "A,D",
            a = 1
                && b = 1
                && c = 1, "A,D,I",
            a = 0
                && b = 1
                && c = 0, "D"
        )

     

     

    Regards,

    Harsh Nathani

     

     

8 Replies

  • nvprasad's avatar
    nvprasad
    Solution Sage

    Hi,

     

    You can use the "SWITCH" function in PowerBI. Declare variables like archivingvehicles = sum(archivingvehicles) and use them in switch function.

     

    Appreciate a Kudos! 🙂
    If this helps and resolves the issue, please mark it as a Solution! 🙂

    Regards,
    N V Durga Prasad

     

  • Anonymous's avatar
    Anonymous
    Not applicable

    HI Anonymous ,

     

     

    Create a Calculated Column

     

    Calculated Column =
    VAR a = 'Table'[archivingvehicles]
    VAR b = 'Table'[deleting vehicles]
    VAR c = 'Table'[invoicingvehicles]
    RETURN
        SWITCH (
            TRUE (),
            a = 1
                && b = 0 & c = 0, "A",
            a = 1
                && b = 1 & c = 0, "A,D",
            a = 1
                && b = 1 & c = 0, "A,D,I",
            a = 0
                && b = 1 & c = 0, "D"
        )

     

    Regards,
    Harsh Nathani

    Appreciate with a Kudos!! (Click the Thumbs Up Button)
    Did I answer your question? Mark my post as a solution!

    • Anonymous's avatar
      Anonymous
      Not applicable

      Anonymous Thank you. 

       

      I have tried it and I get this error. Are you able to help, I have not used this function before. 

       

      "DAX comparison operations do not support comparing values of type Text with values of type Integer. Consider using the VALUE or FORMAT function to convert one of the values."

       

      The three columns were a Data Type of 'Number', I tried changing them to Text but that hasn't resolved it. 

       

      Thank you for your help

      • Anonymous's avatar
        Anonymous
        Not applicable

        Hi Anonymous ,

         

        i missed an &

         

        Try this

         

         

        Calculated Column =
        VAR a = 'Table'[archivingvehicles]
        VAR b = 'Table'[deleting vehicles]
        VAR c = 'Table'[invoicingvehicles]
        RETURN
            SWITCH (
                TRUE (),
                a = 1
                    && b = 0
                    && c = 0, "A",
                a = 1
                    && b = 1
                    && c = 0, "A,D",
                a = 1
                    && b = 1
                    && c = 1, "A,D,I",
                a = 0
                    && b = 1
                    && c = 0, "D"
            )

         

         

        Regards,

        Harsh Nathani