Partager via


Table.FuzzyGroup

Syntaxe

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

À propos

Regroupe les lignes de table par des valeurs correspondantes de manière floue dans la colonne spécifiée, keypour chaque ligne. Pour chaque groupe, un enregistrement est construit contenant les colonnes clés (et leurs valeurs) ainsi que toutes les colonnes agrégées spécifiées par aggregatedColumns. Cette fonction ne peut pas garantir le retour d’un ordre fixe de lignes.

Un ensemble facultatif de options colonnes peut être inclus pour spécifier comment comparer les colonnes clés. Les options sont les suivantes :

  • Culture: autorise le regroupement d’enregistrements en fonction de règles spécifiques à la culture. Il peut s’agir de n’importe quel nom de culture valide. Par exemple, une option Culture de «ja-JP» regroupe les enregistrements basés sur la culture japonaise. La valeur par défaut est « », qui regroupe la culture anglaise invariante.
  • IgnoreCase: valeur logique (true/false) qui autorise le regroupement de clés sans respect de la casse. Par exemple, lorsqu’il est vrai, « Raisins » est regroupé avec « raisins ». La valeur par défaut est true.
  • IgnoreSpace: valeur logique (true/false) qui permet de combiner des parties de texte afin de rechercher des groupes. Par exemple, lorsqu’il est vrai, « Gra pes » est regroupé avec « Raisins ». La valeur par défaut est true.
  • SimilarityColumnName: nom de la colonne qui affiche la similarité entre une valeur d’entrée et la valeur représentative de cette entrée. La valeur par défaut est Null, auquel cas une nouvelle colonne pour les similitudes n’est pas ajoutée.
  • Threshold: nombre compris entre 0,00 et 1,00 qui spécifie le score de similarité auquel deux valeurs seront regroupées. Par exemple, « Raisins » et « Graes » (manquant le « p ») sont regroupés uniquement si cette option est définie sur moins de 0,90. Un seuil de 1,00 autorise uniquement les correspondances exactes. (Notez qu’une « correspondance exacte » approximative peut ignorer les différences telles que la casse, l’ordre des mots et la ponctuation.) La valeur par défaut est 0,80.
  • TransformationTable: table qui autorise le regroupement d’enregistrements en fonction des mappages de valeurs personnalisés. Il doit contenir des colonnes « From » et « To ». Par exemple, « Raisins » est regroupé avec « Raisins » si une table de transformation est fournie avec la colonne « From » contenant « Raisins » et la colonne « To » contenant « Raisins ». Notez que la transformation sera appliquée à toutes les occurrences du texte dans la table de transformation. Avec le tableau de transformation ci-dessus, « Les raisins sont sucrés » seront également regroupés avec « Raisins sont doux ».

Exemple 1

Regroupez la table en ajoutant une colonne d’agrégation [Count] qui contient le nombre d’employés dans chaque emplacement (each Table.RowCount(_)).

Utilisation

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]
)

Output

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