Référence Power Query · 6 min de lecture

Table.AddFuzzyClusterColumn : regrouper des données similaires dans Power Query

Ramener les variantes de saisie d’un même nom à une valeur unique, en réglant un seuil de similarité au lieu d’empiler les remplacements.

Table.AddFuzzyClusterColumn ajoute une colonne qui donne, pour chaque ligne, une valeur représentative de la colonne étudiée. Les représentants sont obtenus par correspondance approximative : les valeurs jugées assez proches forment un groupe et partagent la même valeur. La colonne d’origine n’est pas modifiée.

Pour chaque groupe, la valeur retenue est l’occurrence la plus fréquente ; à fréquence égale, c’est la première rencontrée. Dans l’interface, la commande s’appelle Valeurs du cluster, dans l’onglet Ajouter une colonne. La documentation de l’éditeur précise que cette commande n’est disponible que dans Power Query Online.

Syntaxe

Une colonne source, une colonne cible, des options

Table.AddFuzzyClusterColumn(
    table as table,
    columnName as text,
    newColumnName as text,
    optional options as nullable record
) as table
ParamètreRôle
tableLa table de départ.
columnNameLa colonne dont on regroupe les valeurs.
newColumnNameLe nom de la colonne ajoutée, qui reçoit les valeurs représentatives.
optionsFacultatif. Un enregistrement qui règle la comparaison, détaillé ci-dessous.

Les options

OptionEffet et valeur par défaut
ThresholdScore de similarité, entre 0,00 et 1,00, à partir duquel deux valeurs sont regroupées. 1,00 n’accepte que les correspondances exactes. Par défaut : 0,80.
IgnoreCaseRegroupe sans tenir compte de la casse. Par défaut : true.
IgnoreSpaceCombine des parties de texte pour former les groupes. Certains espaces restent pris en compte. Par défaut : true.
CultureApplique les règles d’une culture donnée, par exemple "ja-JP". Par défaut : "", la culture anglaise invariante.
SimilarityColumnNameNom d’une colonne qui affiche le score de similarité entre chaque valeur et son représentant. Par défaut : null, aucune colonne ajoutée.
TransformationTableUne table de correspondances avec des colonnes nommées From et To, pour imposer des équivalences.
Exemples

Trois réglages, du plus simple au plus contrôlé

Sur une table Factures dont la colonne Client est saisie à la main : on y trouve Bob, Jim, Paul et Ringo, avec des variantes de casse et des fautes de frappe.

Réglages par défaut

Table.AddFuzzyClusterColumn(Factures, "Client", "Client regroupé")

Seuil à 0,80, casse ignorée. Les variantes assez proches d’un même nom reçoivent sa graphie la plus fréquente dans Client regroupé.

Seuil plus strict, avec le score affiché

Table.AddFuzzyClusterColumn(Factures, "Client", "Client regroupé",
    [Threshold = 0.9, SimilarityColumnName = "Score client"])

Moins de valeurs sont regroupées, et la colonne Score client montre pour chaque ligne la similarité avec son représentant. C’est elle qui permet de régler le seuil sur des faits plutôt qu’à l’intuition.

Imposer une équivalence

Correspondances = #table(type table [From = text, To = text], {{"Bobby", "Bob"}}),
Regroupé = Table.AddFuzzyClusterColumn(Factures, "Client", "Client regroupé",
    [TransformationTable = Correspondances])

Bobby et Bob sont traités comme équivalents, quelle que soit leur similarité. La table de transformation joue dans les deux sens pendant le regroupement, et elle s’applique à toutes les occurrences du texte.

En pratique

Le seuil trop bas qui fusionne deux clients

Pour rattraper davantage de fautes de frappe, on abaisse le seuil. Chaque cran vers le bas élargit les groupes ; à 0, toutes les valeurs finissent dans un seul groupe. Entre les deux, deux clients distincts aux noms proches peuvent recevoir la même valeur représentative, et leurs factures s’additionnent sous un seul nom dans le rapport.

Notre méthode : garder le seuil par défaut, afficher la colonne de score, et relire les lignes au score le plus faible avant de charger. Pour les équivalences connues, une table de transformation est plus fiable qu’un seuil abaissé.

Regroupé = Table.AddFuzzyClusterColumn(Factures, "Client", "Client regroupé",
    [SimilarityColumnName = "Score client"]),
Contrôle = Table.Sort(Regroupé, {{"Score client", Order.Ascending}})

Second piège : le représentant est la graphie la plus fréquente. Si de nouvelles factures rendent une autre graphie majoritaire, le libellé d’un groupe peut changer d’une actualisation à l’autre. Nous ne bâtissons donc pas de relation ou de filtre de rapport sur ce libellé quand un identifiant client stable existe.

Questions fréquentes

Ce qu’on nous demande sur le regroupement approximatif

Quel seuil de similarité choisir ?

Le seuil par défaut est 0,80. À 1, seules les valeurs identiques sont regroupées ; à 0, tout est regroupé. Il n’existe pas de valeur universelle : nous partons du défaut et ajustons en lisant la colonne de score.

Quelle valeur est retenue pour représenter un groupe ?

L’occurrence la plus fréquente du groupe. Si plusieurs occurrences ont la même fréquence, Power Query retient la première.

La casse et les espaces sont-ils pris en compte ?

Par défaut, non pour la casse : IgnoreCase vaut true. IgnoreSpace vaut aussi true, mais certains espaces restent pris en compte, comme dans « M 365 » face à « M365 ».

Où trouver la commande dans l’interface ?

Dans l’onglet Ajouter une colonne, sous le nom Valeurs du cluster. La documentation de l’éditeur indique qu’elle n’est disponible que dans Power Query Online.

À côté

Pour aller plus loin

Sources. Documentation officielle de l’éditeur, consultée le 14 octobre 2026 : Table.AddFuzzyClusterColumn, Valeurs du cluster.

Les noms de vos clients s’écrivent de plusieurs façons ?

Nous mettons en place un regroupement contrôlé, avec ses scores et ses tables de correspondance, pour que vos totaux par client tiennent.

Réserver un appelou 01 83 64 60 25
01 83 64 60 25 Réserver un appel