Forum Discussion

Janosa's avatar
Janosa
New Member
2 years ago
Solved

Double if statement in custom column

Hello all,

 

This custom column is already working except i want to add another if statement.

 

#"Added Custom" = Table.AddColumn(#"Expanded Average weight", "Correct weight", each if( [Weight kg] = 0 and Text.Contains([Product], "something") )then [Average] else [Weight kg])

 

I want to add if([transactioncode] ="86") then [weight] ....i want the weight to be negative but i'm clueless on how to add this to the query. Can you please help me with this?

Thanks and regards

  • Hi Janosa ,

     

    The basic Power Query (M) structure for an IF statement is as follows:

    if SomethingIsTrue then DoThisThing
    else if ThisOtherThingIsTrue then DoThisIntead
    else EscapeActionIfAllConditionsFalse
    
    // i.e. if..then..else if..then..else
    // No brackets, no capitals

     

    The conditions get evaluated in order, top to bottom, so you need to be clear about what you want to be checked and when.

    Based on the above, your new query step might look something like this:

    #"Added Custom" =
    Table.AddColumn(
        #"Expanded Average weight",
        "Correct weight",
        each if [transactioncode] = "86" then -[weight]
            else if [Weight kg] = 0 and Text.Contains([Product], "something") then [Average]
        else [Weight kg]
    )

     

    Also make sure that your [transactioncode] column is actually Text data type, otherwise you need to remove the quotes from "86".

     

    Pete

2 Replies

  • Hi Janosa ,

     

    The basic Power Query (M) structure for an IF statement is as follows:

    if SomethingIsTrue then DoThisThing
    else if ThisOtherThingIsTrue then DoThisIntead
    else EscapeActionIfAllConditionsFalse
    
    // i.e. if..then..else if..then..else
    // No brackets, no capitals

     

    The conditions get evaluated in order, top to bottom, so you need to be clear about what you want to be checked and when.

    Based on the above, your new query step might look something like this:

    #"Added Custom" =
    Table.AddColumn(
        #"Expanded Average weight",
        "Correct weight",
        each if [transactioncode] = "86" then -[weight]
            else if [Weight kg] = 0 and Text.Contains([Product], "something") then [Average]
        else [Weight kg]
    )

     

    Also make sure that your [transactioncode] column is actually Text data type, otherwise you need to remove the quotes from "86".

     

    Pete

    • Janosa's avatar
      Janosa
      New Member

      Hello Pete,

       

      thanks for the info, worked like a charm and I learned something new today.

       

      regards