La función Table.ReorderColumns devuelve una tabla tras reordenar sus campos.
Table.ReorderColumns(
table as table,
columnOrder as list,
optional missingField as nullable number
) as table
- table: tabla cuyos campos se desea reordenar
- columnOrder: lista con los campos en el orden deseado
- missingField: (opcional) criterio a seguir cuando se especifiquen nombres de campos inexistentes
Los campos no incluidos en columnOrder no serán reordenados.
Si un campo incluido en columnOrder no existe, la función devolverá un error salvo que se incluya el parámetro missingField, en cuyo caso será éste el que determine la respuesta. Este argumento puede tomar los valores MissingField.Error, MissingField.UseNull o MissingField.Ignore. En el caso se usar el parámetro MissingField.UseNull, los campos inexistentes se crean y se rellenan con valores nulos.
Partimos de la siguiente tabla:
let
table = Table.FromRecords(
{
[id = 1, name = "John", age = 38],
[id = 2, name = "Alicia", age = 56],
[id = 3, name = "Marta", age = 28]
}
)
in
table
Podemos devolver una versión con las columnas reordenadas con el siguiente código:
let
table = Table.FromRecords(
{
[id = 1, name = "John", age = 38],
[id = 2, name = "Alicia", age = 56],
[id = 3, name = "Marta", age = 28]
}
)
in
Table.ReorderColumns(
table,
{"name", "age", "id"}
)
Los campos no incluidos en el parámetro columnOrder no son reordenados. Así, en el siguiente ejemplo el campo "name" se mantiene como segunda columna de la tabla:
let
table = Table.FromRecords(
{
[id = 1, name = "John", age = 38],
[id = 2, name = "Alicia", age = 56],
[id = 3, name = "Marta", age = 28]
}
)
in
Table.ReorderColumns(
table,
{"age", "id"}
)
En este ejemplo incluimos en el parámetro columnOrder un campo inexistente ("identifier") y el valor MissingField.UseNull como tercer parámetro, creándose la columna en cuestión y rellenándose con valores nulos:
let
table = Table.FromRecords(
{
[id = 1, name = "John", age = 38],
[id = 2, name = "Alicia", age = 56],
[id = 3, name = "Marta", age = 28]
}
)
in
Table.ReorderColumns(
table,
{"name", "age", "identifier"},
MissingField.UseNull
)