Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Sintaxe
Table.TransformColumns(
table as table,
transformOperations as list,
optional defaultTransformation as nullable function,
optional missingField as nullable number
) as table
Sobre
Transforma a tabela especificada aplicando cada operação de coluna em uma lista.
-
table: a tabela a ser transformada. -
transformOperations: as transformações a serem feitas na tabela. O formato desse parâmetro é { nome da coluna, transformação } ou { nome da coluna, transformação, novo tipo de coluna }. -
defaultTransformation: (Opcional) A transformação padrão aplicada a todas as colunas não listadas emtransformOperations. -
missingField: (Opcional) Especifica a ação esperada para valores ausentes. Se uma coluna listada emtransformOperationsnão existir, uma exceção será lançada (MissingField.Error), a menos que esse parâmetro especifique uma alternativa. Use um dos seguintes valores:-
MissingField.UseNull: todos os campos ausentes são incluídos comonullvalores. -
MissingField.Ignore: todos os campos ausentes são ignorados.
-
Exemplo 1
Converta os valores de texto na coluna [A] em valores numéricos e os valores numéricos na coluna [B] em valores de texto.
Usage
Table.TransformColumns(
Table.FromRecords({
[A = "1", B = 2],
[A = "5", B = 10]
}),
{
{"A", Number.FromText},
{"B", Text.From}
}
)
Saída
Table.FromRecords({
[A = 1, B = "2"],
[A = 5, B = "10"]
})
Exemplo 2
Converta os valores numéricos na coluna ausente [X] em valores de texto, utilizando null como padrão em colunas que não existem.
Usage
Table.TransformColumns(
Table.FromRecords({
[A = "1", B = 2],
[A = "5", B = 10]
}),
{"X", Number.FromText},
null,
MissingField.UseNull
)
Saída
Table.FromRecords({
[A = "1", B = 2, X = null],
[A = "5", B = 10, X = null]
})
Exemplo 3
Incremente os valores numéricos na coluna [B] e converta-os em valores de texto e converta todas as outras colunas em números.
Usage
Table.TransformColumns(
Table.FromRecords({
[A = "1", B = 2],
[A = "5", B = 10]
}),
{"B", each Text.From(_ + 1), type text},
Number.FromText
)
Saída
Table.FromRecords({
[A = 1, B = "3"],
[A = 5, B = "11"]
})
Exemplo 4
Mova as tarefas de manutenção agendadas que ocorrem em um feriado dos EUA para o dia seguinte ou, se o feriado ocorrer em uma sexta-feira, para a próxima segunda-feira.
Usage
let
MaintenanceSchedule = #table(type table [Task = text, Date = date],
{
{"HVAC Check", #date(2025, 7, 10)}, // Not a holiday
{"Window Washing", #date(2025, 9, 1)}, // Labor Day
{"Fire Drill", #date(2025, 9, 17)}, // Not a holiday
{"Light Replacement", #date(2025, 11, 27)} // Thanksgiving
}),
USHolidays = {
#date(2025, 1, 1), // New Year's Day
#date(2025, 7, 4), // Independence Day
#date(2025, 9, 1), // Labor Day
#date(2025, 11, 27), // Thanksgiving
#date(2025, 12, 25) // Christmas
},
AdjustedSchedule = Table.TransformColumns(
MaintenanceSchedule,
{{"Date", each if List.Contains(USHolidays, _) then
if Date.DayOfWeek(_, Day.Sunday) = 5 then
Date.AddDays(_, 3) // Friday to Monday
else
Date.AddDays(_, 1) // Other to next day
else _, type date}}
)
in
AdjustedSchedule
Saída
#table(type table[Task = text, Date = date],
{
{"HVAC Check", #date(2025, 7, 10)},
{"Window Washing", #date(2025, 9, 2)},
{"Fire Drill", #date(2025, 9, 17)},
{"Light Replacement", #date(2025, 11, 28)}
})