Table.TransformColumnNames

Syntax

Table.TransformColumnNames(table as table, nameGenerator as function, optional options as nullable record) as table

About

Transforms column names by using the given nameGenerator function. Valid options:

MaxLength specifies the maximum length of new column names. If the given function results with a longer column name, the long name will be trimmed.

Comparer is used to control the comparison while generating new column names. Comparers can be used to provide case-insensitive or culture and locale-aware comparisons.

The following built-in comparers are available in the formula language:

  • Comparer.Ordinal: Used to perform an exact ordinal comparison
  • Comparer.OrdinalIgnoreCase: Used to perform an exact ordinal case-insensitive comparison
  • Comparer.FromCulture: Used to perform a culture-aware comparison

Example 1

Remove the #(tab) character from column names

Usage

Table.TransformColumnNames(Table.FromRecords({[#"Col#(tab)umn" = 1]}), Text.Clean)

Output

Table.FromRecords({[Column = 1]})

Example 2

Transform column names to generate case-insensitive names of length 6.

Usage

Table.TransformColumnNames(
    Table.FromRecords({[ColumnNum = 1, cOlumnnum = 2, coLumnNUM = 3]}),
    Text.Clean,
    [MaxLength = 6, Comparer = Comparer.OrdinalIgnoreCase]
)

Output

Table.FromRecords({[Column = 1, cOlum1 = 2, coLum2 = 3]})