La función Table.RenameColumns modifica el nombre de las columnas de una tabla.
Table.RenameColumns(
table as table,
renames as list,
optional missingField as nullable number
) as table
- table: tabla en la que renombrar las columnas
- renames: lista de listas conteniendo el nombre actual y el nuevo nombre
- missingField: (opcional) criterio a seguir cuando se indiquen nombres de columnas inexistentes
El nombre actual de la columna y el nuevo nombre se indican en forma de lista con la siguiente forma:
{"nombre-actual", "nuevo-nombre"}
Si solo se desea cambiar el nombre de una columna, el parámetro renames puede consistir simplemente en dicha lista. Si de desea modificar el nombre de más de una columna, hará falta una lista como la indicada para cada columna, e incluir estas listas como elementos de otra lista. Es decir, el argumento renames tomaría la siguiente forma:
{
{"nombre-actual", "nuevo-nombre"},
{"nombre-actual", "nuevo-nombre"},
{"nombre-actual", "nuevo-nombre"}
}
Se trataría, por tanto, de una lista de listas, una por columna. También puede usarse esta estructura de lista de listas aun cuando solo se desee cambiar el nombre de una columna.
Si alguno de los nombres actuales no existe, la función devuelve un error salvo que se incluya el parámetro missingField. Éste puede tomar los valores MissingField.Error, MissingField.UseNull o MissingField.Ignore.
En el caso de que se use el valor MissingField.UseNull, la columna inexistente se crea y se rellena con valores nulos.
En este ejemplo partimos de la siguiente tabla:
let
table = Table.FromRecords(
{
[id = 15, name = "John", country = "USA"],
[id = 21, name = "Alfonso", country = "Japan"],
[id = 33, name = "Marta", country = "Portugal"]
}
)
in
table
Los nombres de las columnas son "id", "name" y "country". Podemos modificar "name" por "nombre", por ejemplo, con el siguiente código:
let
table = Table.FromRecords(
{
[id = 15, name = "John", country = "USA"],
[id = 21, name = "Alfonso", country = "Japan"],
[id = 33, name = "Marta", country = "Portugal"]
}
)
in
Table.RenameColumns(
table,
{"name", "nombre"}
)
Es posible cambiar el nombre de más de una columna, o incluso de todas ellas:
let
table = Table.FromRecords(
{
[id = 15, name = "John", country = "USA"],
[id = 21, name = "Alfonso", country = "Japan"],
[id = 33, name = "Marta", country = "Portugal"]
}
)
in
Table.RenameColumns(
table,
{
{"country", "país"},
{"name", "nombre"},
{"id", "identificador"}
}
)
Obsérvese que no es necesario incluir la lista de nombres de columnas a cambiar en el orden en el que se presentan en la tabla.
Si alguna de las columnas no existe pero incluimos el tercer argumento, podemos gestionar la forma en la que responde la función. En el siguiente ejemplo cambiamos el nombre de una columna que no existe ("city") pero le indicamos a la función que ignore los posibles errores:
let
table = Table.FromRecords(
{
[id = 15, name = "John", country = "USA"],
[id = 21, name = "Alfonso", country = "Japan"],
[id = 33, name = "Marta", country = "Portugal"]
}
)
in
Table.RenameColumns(
table,
{
{"country", "país"},
{"name", "nombre"},
{"id", "identificador"},
{"city", "ciudad"}
},
MissingField.Ignore
)