Table.TransformColumns

Синтаксис

Table.TransformColumns(table as table, transformOperations as list, optional defaultTransformation as nullable function, optional missingField as nullable number) as table

О программе

Преобразует table, применяя каждую из операций со столбцами из списка transformOperations (в формате { имя столбца, преобразование } или { имя столбца, преобразование, новый тип столбца }). Если указано преобразование по умолчанию defaultTransformation, оно будет применяться ко всем столбцам, не указанным в списке transformOperations. Если столбец, указанный в списке transformOperations, не существует, выдается исключение, если только не задано альтернативное действие с помощью необязательного параметра missingField (например, MissingField.UseNull или MissingField.Ignore).

Пример 1

Текстовые значения из столбца [A] преобразуются в числовые, а числовые из столбца [B] — в текстовые.

Использование

Table.TransformColumns(
    Table.FromRecords({
        [A = "1", B = 2],
        [A = "5", B = 10]
    }),
    {
        {"A", Number.FromText},
        {"B", Text.From}
    }
)

Выходные данные

Table.FromRecords({
    [A = 1, B = "2"],
    [A = 5, B = "10"]
})

Пример 2

Числовые значения из столбца [X] (который отсутствует) преобразуются в текстовые. Несуществующие столбцы пропускаются.

Использование

Table.TransformColumns(
    Table.FromRecords({
        [A = "1", B = 2],
        [A = "5", B = 10]
    }),
    {"X", Number.FromText},
    null,
    MissingField.Ignore
)

Выходные данные

Table.FromRecords({
    [A = "1", B = 2],
    [A = "5", B = 10]
})

Пример 3

Числовые значения из столбца [X] (который отсутствует) преобразуются в текстовые. Для несуществующих столбцов по умолчанию используется значение null.

Использование

Table.TransformColumns(
    Table.FromRecords({
        [A = "1", B = 2],
        [A = "5", B = 10]
    }),
    {"X", Number.FromText},
    null,
    MissingField.UseNull
)

Выходные данные

Table.FromRecords({
    [A = "1", B = 2, X = null],
    [A = "5", B = 10, X = null]
})

Пример 4

Числовые значения из столбца [B] увеличиваются на единицу и преобразуются в текстовые. Все прочие столбцы преобразуются в числа.

Использование

Table.TransformColumns(
    Table.FromRecords({
        [A = "1", B = 2],
        [A = "5", B = 10]
    }),
    {"B", each Text.From(_ + 1), type text},
    Number.FromText
)

Выходные данные

Table.FromRecords({
    [A = 1, B = "3"],
    [A = 5, B = "11"]
})