Перейти к основному содержимому

Table.SplitColumn

Разбивает указанный столбец на набор дополнительных столбцов, используя указанную функцию разделителя.

Syntax​

Table.SplitColumn(
table as table,
sourceColumn as text,
splitter as function,
optional columnNamesOrNumber as any,
optional default as any,
optional extraColumns as any
) as table

Remarks​

Разделяет указанный столбец на набор дополнительных столбцов, используя указанную функцию разделителя.

  • table: таблица, содержащая столбец для разделения.
  • sourceColumn: имя столбца для разделения.
  • splitter : Функция разделителя, используемая для разделения столбца (например, Splitter.SplitTextByDelimiter или Splitter.SplitTextByPosition).
  • columnNamesOrNumber: список имен новых столбцов для создания или количество новых столбцов.
  • default: переопределяет значение, используемое, если для заполнения всех новых столбцов недостаточно разделенных значений. Значение по умолчанию для этого параметра — null.
  • extraColumns : Указывает, что делать, если разделенных значений может быть больше, чем новых столбцов. В этот параметр можно передать значение перечисления ExtraValues.Type. Значение по умолчанию — ExtraValues.Ignore.

Examples​

Example #1​

Разделите столбец "Имя" на имя и фамилию.

let
Source = #table(type table[CustomerID = number, Name = text, Phone = text],
{
{1, "Bob White", "123-4567"},
{2, "Jim Smith", "987-6543"},
{3, "Paul", "543-7890"},
{4, "Cristina Best", "232-1550"}
}),
SplitColumns = Table.SplitColumn(
Source,
"Name",
Splitter.SplitTextByDelimiter(" "))
in
SplitColumns

Result:

#table(type table[CustomerID = number, Name.1 = text, Name.2 = text, Phone = text],
{
{1, "Bob", "White", "123-4567"},
{2, "Jim", "Smith", "987-6543"},
{3, "Paul", null, "543-7890"},
{4, "Cristina", "Best", "232-1550"}
})

Example #2​

Разделите столбец "Имя" на имя и фамилию, затем переименуйте новые столбцы.

let
Source = #table(type table[CustomerID = number, Name = text, Phone = text],
{
{1, "Bob White", "123-4567"},
{2, "Jim Smith", "987-6543"},
{3, "Paul", "543-7890"},
{4, "Cristina Best", "232-1550"}
}),
SplitColumns = Table.SplitColumn(
Source,
"Name",
Splitter.SplitTextByDelimiter(" "),
{"First Name", "Last Name"})
in
SplitColumns

Result:

#table(type table[CustomerID = number, First Name = text, Last Name = text, Phone = text],
{
{1, "Bob", "White", "123-4567"},
{2, "Jim", "Smith", "987-6543"},
{3, "Paul", null, "543-7890"},
{4, "Cristina", "Best", "232-1550"}
})

Example #3​

Разделите столбец "Имя" на имя и фамилию, переименуйте новые столбцы и заполните все пробелы строкой "-Нет записи-".

let
Source = #table(type table[CustomerID = number, Name = text, Phone = text],
{
{1, "Bob White", "123-4567"},
{2, "Jim Smith", "987-6543"},
{3, "Paul", "543-7890"},
{4, "Cristina Best", "232-1550"}
}),
SplitColumns = Table.SplitColumn(
Source,
"Name",
Splitter.SplitTextByDelimiter(" "),
{"First Name", "Last Name"},
"-No Entry-")
in
SplitColumns

Result:

#table(type table[CustomerID = number, First Name = text, Last Name = text, Phone = text],
{
{1, "Bob", "White", "123-4567"},
{2, "Jim", "Smith", "987-6543"},
{3, "Paul", "-No Entry-", "543-7890"},
{4, "Cristina", "Best", "232-1550"}
})

Example #4​

Разделите столбец "Имя" на имя и фамилию, затем переименуйте новые столбцы. Поскольку значений может быть больше, чем количество доступных столбцов, сделайте столбец фамилии списком, включающим все значения после имени.

let
Source = #table(type table[CustomerID = number, Name = text, Phone = text],
{
{1, "Bob White", "123-4567"},
{2, "Jim Smith", "987-6543"},
{3, "Paul Green", "543-7890"},
{4, "Cristina J. Best", "232-1550"}
}),
SplitColumns = Table.SplitColumn(
Source,
"Name",
Splitter.SplitTextByDelimiter(" "),
{"First Name", "Last Name"},
null,
ExtraValues.List)
in
SplitColumns

Result:

#table(type table[CustomerID = number, First Name = text, Last Name = text, Phone = text],
{
{1, "Bob", {"White"}, "123-4567"},
{2, "Jim", {"Smith"}, "987-6543"},
{3, "Paul", {"Green"}, "543-7890"},
{4, "Cristina", {"J.", "Best"}, "232-1550"}
})

Category​

Table.Transformation