Forum Discussion
rename columns
Hello,
I have 14 dimension tables, and each table contains between 10 and 20 columns.
After importing the tables from my database, the columns were named as: source_dim_name_of_table. name of columns
I want to rename all the columns keeping only the part after the . ie keep only name of columns. source_dim_name_of_table. name of columns
can someone help me please, because apart from doing it by hand, I don't see how I can do it otherwise.
Thank you for your help.
Hello - it would be best to do this in Power Query. You can do this by adding a new step to each table and use the Table.TransformColumnNames function, like this:
RenameColumns = Table.TransformColumnNames ( Source, each Text.AfterDelimiter ( _, "." ) )Here is the full sample table with script:
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSAeJYnWglIyDLCMwyBrKMlWJjAQ==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [source_dim.Test1 = _t, source_dim.test2 = _t]), RenameColumns = Table.TransformColumnNames ( Source, each Text.AfterDelimiter ( _, "." ) ) in RenameColumnsBEFORE
AFTER
3 Replies
- jennrattenSuper User
Hello - it would be best to do this in Power Query. You can do this by adding a new step to each table and use the Table.TransformColumnNames function, like this:
RenameColumns = Table.TransformColumnNames ( Source, each Text.AfterDelimiter ( _, "." ) )Here is the full sample table with script:
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSAeJYnWglIyDLCMwyBrKMlWJjAQ==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [source_dim.Test1 = _t, source_dim.test2 = _t]), RenameColumns = Table.TransformColumnNames ( Source, each Text.AfterDelimiter ( _, "." ) ) in RenameColumnsBEFORE
AFTER
- AnonymousNot applicable
Hello jennratten , thank you so much, it works 🙂
- Syndicate_AdminAdministrator
Hi,
Not sure if this will work but it is my best idea so far:
1. Get the list of column names, following the suggested approach here: Get Collection Column Names - Matthew Devaney
2. and then try something like: ForAll(columnNames, RenameColumns(dataTable, columnName, Split(columnName, ".")[2]))