Updated on

Table.TransformColumnNames is a Power Query M function that transforms column names by using the given nameGenerator function and additional options like MaxLength and Comparer. The function returns a table with transformed column names based on the provided parameters.

Compatible with: Power BI Service Power BI Desktop Excel Microsoft 365


   table as table,
   nameGenerator as function,
   optional options as nullable record,
) as table


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


Remove the #( tab ) character from column names

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

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

// Output: Table.FromRecords( {[Column = 1, cOlum1 = 2, coLum2 = 3]} )
    Table.FromRecords( {[ColumnNum = 1, cOlumnnum = 2, coLumnNUM = 3]} ),
    [MaxLength = 6, Comparer = Comparer.OrdinalIgnoreCase]

Learn more about Table.TransformColumnNames in the following articles:

Other functions related to Table.TransformColumnNames are:

Contribute » | Contributors: Rick de Groot
Microsoft documentation: