La función Table.TransformColumnTypes devuelve una tabla tras aplicar tipos a sus columnas.
Table.TransformColumnTypes(
table as table,
typeTransformations as list,
optional culture as nullable text
) as table
- table: tabla a transformar
- typeTransformations: lista de listas conteniendo dos valores: el nombre de la columna cuyo tipo se desea transformar y el tipo a aplicar
- culture: (opcional) cadena de texto con información sobre la configuración regional a aplicar
Si una de las columnas incluidas en el parámetro typeTransformations no existe, la función devuelve un error.
Si solo se desea aplicar una transformación al tipo de una columna, el parámetro typeTransformations puede ser una lista con los dos valores mencionados (el nombre del campo cuyo tipo se desea transformar y el tipo a aplicar).
Los tipos aplicables son:
- Int8.Type: Número entero de 8 bits con signo
- Int16.Type: Número entero de 16 bits con signo
- Int32.Type: Número entero de 32 bits con signo
- Int64.Type: Número entero de 64 bits con signo
- Byte.Type: Número entero de 8 bits sin signo
- Number.Type: Número decimal
- Currency.Type: Número con formato de moneda
- Percentage.Type: Porcentaje
- DateTime.Type: Fecha y hora
- Date.Type: Fecha
- Time.Type: Hora
- DateTimeZone.Type: Fecha y hora con información sobre la zona horaria
- Duration.Type: Duración
- Text.Type: Texto
- Logical.Type: Booleano
- Binary.Type: Binario
En este ejemplo partimos de una tabla con dos columnas que contienen números ("id" y "age") y otra que contiene textos ("name"), y convertimos el tipo de la columna "age" en texto:
let
Source = Table.FromRecords(
{
[id = 15, name = "John", age = 35],
[id = 21, name = "Alfonso", age = 58],
[id = 33, name = "Marta", age = 22]
}
)
in
Table.TransformColumnTypes(
Source,
{"age", Text.Type}
)
En este segundo ejemplo partimos de la misma tabla y aplicamos tipos a las tres columnas:
let
Source = Table.FromRecords(
{
[id = 15, name = "John", age = 35],
[id = 21, name = "Alfonso", age = 58],
[id = 33, name = "Marta", age = 22]
}
)
in
Table.TransformColumnTypes(
Source,
{
{"id", Int64.Type},
{"name", Text.Type},
{"age", Int64.Type}
}
)