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 selon les valeurs approximativement correspondantes de la colonne spécifiée, key, pour chaque ligne. Pour chaque groupe, un enregistrement contenant les colonnes clés (et leurs valeurs) ainsi que les colonnes agrégées spécifiées par aggregatedColumns est construit. Cette fonction ne peut pas garantir le retour d’un ordre fixe de lignes.

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

  • Culture : Autorise le regroupement d’enregistrements en fonction de règles spécifiques à la culture. Vous pouvez utiliser n’importe quel nom de culture valide. Par exemple, l’option Culture « ja-JP » regroupe les enregistrements en fonction de la culture japonaise. La valeur par défaut ("") regroupe les enregistrements en fonction de la culture anglaise invariante.
  • IgnoreCase : Valeur logique (true/false) qui autorise le regroupement de clés ne respectant pas la casse. Par exemple, quand la valeur est true, « 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 pour trouver des groupes. Par exemple, quand la valeur est true, « Rai sins » est regroupé avec « Raisins ». La valeur par défaut est true.
  • SimilarityColumnName : Nom de la colonne qui montre la similarité entre une valeur d’entrée et la valeur représentative de cette entrée. La valeur par défaut est null (dans ce cas, une nouvelle colonne pour les similarités n’est pas ajoutée).
  • Threshold : Nombre compris entre 0,00 et 1,00 qui spécifie le score de similarité à partir duquel deux valeurs sont regroupées. Par exemple, « Raisins » et « Risins » (« a » manquant) sont regroupés seulement si cette option est définie avec une valeur inférieure à 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 permettant de regrouper des enregistrements en fonction de mappages de valeurs personnalisés. Elle doit contenir des colonnes « From » et « To ». Par exemple, « Raisins » est regroupé avec « Grappes » si une table de transformation est fournie avec « Raisins » dans la colonne « From » et « Grappes » dans la colonne « To ». Notez que la transformation sera appliquée à toutes les occurrences du texte de la table de transformation. Avec le tableau de transformation ci-dessus, « Les raisins ont un goût sucré » est aussi regroupé avec « Les grappes ont un goût sucré ».

Exemple 1

Regroupez la table en ajoutant une colonne d’agrégation [Count] qui contient le nombre d’employés dans chaque ville (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]
)

Sortie

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