Power BI is turning 10! Tune in for a special live episode on July 24 with behind-the-scenes stories, product evolution highlights, and a sneak peek at what’s in store for the future.
Save the dateEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
Dear all,
I have multiple Headers which contain an ID before some text occurs. For example like in the table below.
EF-1.1.1) Text1 | EF-1.1.2) Text 2 | EF-2.1.1) Text 3 |
Is there a way to rename all headers by deleting the text? My idea is to work with a list contains EF- code and then to split at the first bracket and deleting the rest of the text so that my end reslut looks like that:
EF-1.1.1) | EF-1.1.2) | EF-2.1.1) |
Thank you in advance!
Solved! Go to Solution.
Okay, try this as a custom step instead:
Table.RenameColumns(
previousStepName,
List.Transform(
Table.ColumnNames(previousStepName),
each {_, if Text.StartsWith(_, "EF") then Text.BeforeDelimiter(_, ")") else _}
)
)
Working example query:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WSlTSUUoC4mQgTgHiVKXYWAA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"EF-1.1.1) Some text" = _t, #"EF-1.1.2) Some Words" = _t, #"EF-2.1.1) Some Writing" = _t, #"AB-1.1.1) Some Stuff" = _t, #"TT-1.1.1) Blah Blah" = _t]),
Custom2 =
Table.RenameColumns(
Source,
List.Transform(
Table.ColumnNames(Source),
each {_, if Text.StartsWith(_, "EF") then Text.BeforeDelimiter(_, ")") else _}
)
)
in
Custom2
Example output:
Pete
Proud to be a Datanaut!
Thank you so much, this works perfectly!
Hi @Till__ ,
You can use the following as a custom step:
= Table.TransformColumnNames(previousStepName, each Text.BeforeDelimiter(_, ")"))
Working example query:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WSlTSUUoC4mSl2FgA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"EF-1.1.1) Some text" = _t, #"EF-1.1.2) Some Words" = _t, #"EF-2.1.1) Some Writing" = _t]),
Custom1 = Table.TransformColumnNames(Source, each Text.BeforeDelimiter(_, ")"))
in
Custom1
Example output:
Pete
Proud to be a Datanaut!
Dear @BA_Pete, I want to do this only for columns which include the name "EF-"
I was trying to do this with the following code but this did not work out... Do you have an idea?
= Table.TransformColumnNames(#"Erweiterte Tabellenspalte1", each Text.BeforeDelimiter(_, ")",List.Select(Table.ColumnNames(#"Erweiterte Tabellenspalte1"), each Text.Contains(_, "EF-"))))
Okay, try this as a custom step instead:
Table.RenameColumns(
previousStepName,
List.Transform(
Table.ColumnNames(previousStepName),
each {_, if Text.StartsWith(_, "EF") then Text.BeforeDelimiter(_, ")") else _}
)
)
Working example query:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WSlTSUUoC4mQgTgHiVKXYWAA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"EF-1.1.1) Some text" = _t, #"EF-1.1.2) Some Words" = _t, #"EF-2.1.1) Some Writing" = _t, #"AB-1.1.1) Some Stuff" = _t, #"TT-1.1.1) Blah Blah" = _t]),
Custom2 =
Table.RenameColumns(
Source,
List.Transform(
Table.ColumnNames(Source),
each {_, if Text.StartsWith(_, "EF") then Text.BeforeDelimiter(_, ")") else _}
)
)
in
Custom2
Example output:
Pete
Proud to be a Datanaut!