Forum Discussion

Mic1979's avatar
Mic1979
Post Partisan
1 year ago
Solved

Change Column name based on a replacement Chart

Hello

 

I am using the following custom function to replace the vlue in my table:

(data, replacements) =>
[
// generates a record with replacements
repl = Function.Invoke(Record.FromList, List.Reverse(Table.ToColumns(replacements))),
C = Table.TransformRows (
data,
(x) => Record.TransformFields (
x,
List.Transform (
Table.ColumnNames(data),
(name) => {name,(x) => Record.FieldOrDefault(repl,x,x)})) ),

result = Table.FromRecords(C)
][result]

 

Parameter replacements is similar to this:

 

Now I need to follow a similar approach on the Column Name.

How can I change the code above for this new target?

 

Thanks

 

  • Hi Mic1979 

    If you're wanting a similar function to rename columns, you could use this:

    (data, replacements) =>
    // replacements is a two column table
    //   Column 1: old name
    //   Column 2: new name
    [
        replacementsList = Table.ToRows(replacements),
        result = Table.RenameColumns(data,replacementsList,MissingField.Ignore)
    ][result]

    Is this what you were looking for?

2 Replies

  • Hi Mic1979 

    If you're wanting a similar function to rename columns, you could use this:

    (data, replacements) =>
    // replacements is a two column table
    //   Column 1: old name
    //   Column 2: new name
    [
        replacementsList = Table.ToRows(replacements),
        result = Table.RenameColumns(data,replacementsList,MissingField.Ignore)
    ][result]

    Is this what you were looking for?