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

Table.FuzzyGroup

Группирует строки таблицы на основе нечеткого соответствия ключей.

Syntax

Table.FuzzyGroup(
table as table,
key as any,
aggregatedColumns as list,
optional options as record
) as table

Remarks

Группирует строки table по нечеткому соответствию значений в заданном столбце key для каждой строки. Для каждой группы создается запись, содержащая ключевые столбцы (и их значения), а также агрегированные столбцы, указываемые в aggregatedColumns. Эта функция не может гарантировать возврат строк в фиксированном порядке. Возможно указание необязательного набора параметров options, задающих принцип сравнения ключевых столбцов. Допустимы следующие параметры:

  • Culture : Позволяет группировать записи на основе правил конкретного языка и региональных параметров. Например, параметр Culture со значением "ja-JP" группирует записи согласно правилам японского языка. Значение по умолчанию — "", при котором используется инвариантный английский язык и региональные параметры.
  • IgnoreCase : Логическое значение (true/false), которое разрешает группирование ключей без учета регистра. Например, когда задано true, "Виноград" будет группироваться с "виноград". Значение по умолчанию — true.
  • IgnoreSpace : Логическое значение (true/false), которое разрешает объединять части текста для поиска групп. Например, когда задано true, "Вино град" будет группироваться с "Виноград". Значение по умолчанию — true.
  • SimilarityColumnName : Имя столбца, в котором показано сходство входного значения и репрезентативного значения для этих входных данных. Значение по умолчанию — NULL. В этом случае новый столбец для сходства не будет добавлен.
  • Threshold : Число от 0,00 до 1,00, указывающее показатель подобия, при котором два значения объединяются в одну группу. Например, "Виноград" и "Виногрд" (без буквы "а") группируются вместе, только если задано значение этого параметра ниже 0,90. Порог в 1,00 позволяет исключительно точные совпадения. (Обратите внимание, что нечеткое "точное совпадение" может игнорировать такие различия, как регистр, порядок слов и пунктуация.) Значение по умолчанию — 0,80.
  • TransformationTable : Таблица, позволяющая группировать записи по настраиваемым сопоставлениям значений. Она должна содержать столбцы From (от чего) и To (к чему). Например, если таблица преобразования содержит в столбце From значение "Виноград", а в столбце To значение "Изюм", то эти два значения будут группироваться вместе. Преобразование будет применяться ко всем вхождениям текста, указанного в таблице. Согласно таблице выше, "Виноград сладкий" будет также группироваться с "Изюм сладкий".

Examples

Example #1

Группирование таблицы с добавлением агрегатного столбца [Count], который содержит число сотрудников в каждом расположении ("each Table.RowCount(_))").

Table.FuzzyGroup(
Table.FromRecords(
{
[EmployeeID = 1, Location = "Seattle"],
[EmployeeID = 2, Location = "seattl"],
[EmployeeID = 3, Location = "Vancouver"],
[EmployeeID = 4, Location = "Seatle"],
[EmployeeID = 5, Location = "vancover"],
[EmployeeID = 6, Location = "Seattle"],
[EmployeeID = 7, Location = "Vancouver"]
},
type table [EmployeeID = nullable number, Location = nullable text]
),
"Location",
{"Count", each Table.RowCount(_)},
[IgnoreCase = true, IgnoreSpace = true]
)

Result:

Table.FromRecords({
[Location = "Seattle", Count = 4],
[Location = "Vancouver", Count = 3]
})

Category

Table.Transformation