Forum Discussion

Papillon's avatar
Papillon
Frequent Visitor
2 years ago
Solved

If statement without else

Hello everyone,

I crosschecked the forums but couldn't find what is needed.

Actually I need a If-statement without the "else"-part:

My variable "Replacing_text" has to change its content depending on the conditions of [Obcod1]. If the conditions are not given, then the variable should keep its content as it is.

Replacing_Text = if Text.Length([Objcod1])=1 then [Langtext] else "keep the content of Replacing_text as is"

 

Anybody has a idea?

Thx in advance.

  • Anonymous's avatar
    Anonymous
    2 years ago

    Hi Papillon ,

    Is this your expected output?

    If so, try add a conditional column and then use fill down.

    Advanced editor:

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WclTSUSpKLchJTM7MS48vSa0oMVSK1QGKY0oYQSUwZYxhMphSJhApDHFTXLaY4dBgrhQbCwA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Objcod1 = _t, Langtext = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Objcod1", type text}, {"Langtext", type text}}),
        #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each if Text.Length([Objcod1])=1 then [Langtext] else null),
        #"Filled Down" = Table.FillDown(#"Added Custom",{"Custom"})
    in
        #"Filled Down"

    Best Regards,
    Gao

    Community Support Team

     

    If there is any post helps, then please consider Accept it as the solution  to help the other members find it more quickly.
    If I misunderstand your needs or you still have problems on it, please feel free to let us know. Thanks a lot!

    How to get your questions answered quickly --  How to provide sample data in the Power BI Forum

4 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi Papillon ,

    Is this your expected output?

    If so, try add a conditional column and then use fill down.

    Advanced editor:

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WclTSUSpKLchJTM7MS48vSa0oMVSK1QGKY0oYQSUwZYxhMphSJhApDHFTXLaY4dBgrhQbCwA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Objcod1 = _t, Langtext = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Objcod1", type text}, {"Langtext", type text}}),
        #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each if Text.Length([Objcod1])=1 then [Langtext] else null),
        #"Filled Down" = Table.FillDown(#"Added Custom",{"Custom"})
    in
        #"Filled Down"

    Best Regards,
    Gao

    Community Support Team

     

    If there is any post helps, then please consider Accept it as the solution  to help the other members find it more quickly.
    If I misunderstand your needs or you still have problems on it, please feel free to let us know. Thanks a lot!

    How to get your questions answered quickly --  How to provide sample data in the Power BI Forum

    • Papillon's avatar
      Papillon
      Frequent Visitor

      Hey!! Great! THX! This is exactly what I need. I will check that out... Coming back!!!

  • Anonymous's avatar
    Anonymous
    Not applicable

    Replacing_Text = if Text.Length([Objcod1])=1 then [Langtext] else [Objcod1]

    --Nate

    • Papillon's avatar
      Papillon
      Frequent Visitor

      Thank you for replying that quick. Unfortunately it doesn't work for my case. 😉 It gives me the content of [Objcod1]. What I need is to give back the content of "replacing_text" as it was valid so far.

      Example:

       Row 1: Text.Length([Objcod1]) = 1 >> "replacing_text" is [Langtext]

       Row2:  Text.Length([Objcod1]) = 3 >> ""replacing_text" is ([Langtext] from Row 1) 
       Row3:  Text.Length([Objcod1]) = 4 >> ""replacing_text" is ([Langtext] from Row 1) 
       Row4:  Text.Length([Objcod1]) = 3 >> ""replacing_text" is ([Langtext] from Row 1) 
       Row5:  Text.Length([Objcod1]) = 1 >> ""replacing_text" is ([Langtext] from Row 5

      Maybe this makes more clear what is needed. 😉