Forum Discussion

dia612's avatar
dia612
Helper IV
6 years ago
Solved

Dynamically changing name ofthe column header

Hello,

In Power BI,

We can dynamically change the title name  using measure in Format > Title > fx

But is there a way , I can change name of the column Header also  dynamically using the measure??

 

 

 

  • Anonymous's avatar
    Anonymous
    6 years ago

    Hi dia612,

    It means you can create a list with the column names you wanted, then you can invoke them in your query table with 'renamecolumns' function to dynamic rename current column names:

    Columnname stored a list of column names strings

    let
        Source = {"id","name","desc"}
    in
        Source

    Query table invokes above list to rename fields:

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjRU0lEyMgISxsZKsbEA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Column1 = _t, Column2 = _t, Column3 = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", Int64.Type}, {"Column2", Int64.Type}, {"Column3", Int64.Type}}),
        #"Renamed Columns" = Table.RenameColumns(#"Changed Type",List.Zip({Table.ColumnNames(#"Changed Type"),ColumnNames}))
    in
        #"Renamed Columns"

    Regards,

    Xiaoxin Sheng

4 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    HI dia612,

    You can try to create a list with column names and invoke it in query table steps to dynamic rename your columns on the query editor side.

    >>But is there a way , I can change name of the column Header also  dynamically using the measure??

    Nope, measure formulas impossible to interact with data model fields dynamically. (its source are generated from data model tables, you can't use child level to effect its parent)

    Regards,

    Xiaoxin Sheng

    • dia612's avatar
      dia612
      Helper IV

      Hello Anonymous ,

       

      Thankyou for taking time for replying.

      I did not understand your suggestion clearly

      "You can try to create a list with column names and invoke it in query table steps to dynamic rename your columns on the query editor side"

       

      Could you please explain it with example

      • Anonymous's avatar
        Anonymous
        Not applicable

        Hi dia612,

        It means you can create a list with the column names you wanted, then you can invoke them in your query table with 'renamecolumns' function to dynamic rename current column names:

        Columnname stored a list of column names strings

        let
            Source = {"id","name","desc"}
        in
            Source

        Query table invokes above list to rename fields:

        let
            Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjRU0lEyMgISxsZKsbEA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Column1 = _t, Column2 = _t, Column3 = _t]),
            #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", Int64.Type}, {"Column2", Int64.Type}, {"Column3", Int64.Type}}),
            #"Renamed Columns" = Table.RenameColumns(#"Changed Type",List.Zip({Table.ColumnNames(#"Changed Type"),ColumnNames}))
        in
            #"Renamed Columns"

        Regards,

        Xiaoxin Sheng