다음을 통해 공유


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되지 않은 모든 열에 적용되는 기본 변환입니다.
  • missingField: (선택 사항) 누락된 값에 대한 예상 동작을 지정합니다. 나열된 transformOperations 열이 없으면 이 매개 변수가 대안을 지정하지 않는 한 예외가MissingField.Error throw됩니다. 다음 값 중 하나를 사용합니다.
    • MissingField.UseNull: 누락된 필드는 모두 null 값으로 포함됩니다.
    • 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]의 숫자 값을 텍스트 값으로 변환하고, 존재하지 않는 열에서는 기본적으로 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]
})

예제 3

[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"]
})

예제 4

미국 휴일에 발생하는 예약된 유지 관리 작업을 다음 날로 이동하거나 금요일에 휴일이 발생하는 경우 다음 월요일로 이동합니다.

사용량

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

출력

#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)}
})