Перейти до основного вмісту

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 : Таблиця, яка дає змогу групувати записи на основі зіставлення настроюваних значень. Вона має містити стовпці "Звідки" та "Куди". Наприклад, рядок "Виноград" буде згруповано з рядком "Родзинки", якщо є таблиця трансформації, де стовпець "Звідки" містить значення "Виноград", а стовпець "Куди" – значення "Родзинки". Зверніть увагу, що трансформацію буде застосовано до всього тексту в таблиці трансформації. У наведеній вище таблиці трансформації рядок "Виноград солодкий" буде також згруповано з рядком "Родзинки солодкі".

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