Forum Discussion

Codemunchkin's avatar
Codemunchkin
Frequent Visitor
4 years ago
Solved

Renaming column only if another columns' rows contain a certain value

Hi, 

 

I am trying to change a column name based on a condition.

 

The condition is if another column' rows contain a certain value such as 'UK' then change the column name to the specified name. 

 

Example:

 

The column to be renamed is called "Rename", the column to check (condition) for is "Country"

 

Rename | Country |

   data    |   UK       |

   data2  |   US       |

   data3  |   UK       |

  • Codemunchkin  you can try this

     

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WSkksSTRU0lEqLVaK1YFwjYDcRCS+MZCfnJinFBsLAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Name = _t, Country = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Name", type text}, {"Country", type text}}),
        Custom1 = if List.Contains(#"Changed Type"[Country],"us") then Table.RenameColumns(#"Changed Type",{{"Name", "Rename"}}) else #"Changed Type"
    in
        Custom1

2 Replies

  • smpa01's avatar
    smpa01
    Icon for Community Champion rankCommunity Champion

    Codemunchkin  you can try this

     

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WSkksSTRU0lEqLVaK1YFwjYDcRCS+MZCfnJinFBsLAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Name = _t, Country = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Name", type text}, {"Country", type text}}),
        Custom1 = if List.Contains(#"Changed Type"[Country],"us") then Table.RenameColumns(#"Changed Type",{{"Name", "Rename"}}) else #"Changed Type"
    in
        Custom1