Support formation Rapports Power BI

Segmentation RFM

L'idée en une phrase

  • La méthode RFM note chaque client sur trois axes : Récence (jours depuis sa dernière commande), Fréquence (nombre de commandes) et Montant (CA total).
  • Chaque axe reçoit un score de 1 à 5. La combinaison des scores définit des segments (Champions, Fidèles, Nouveaux, Prometteurs, À risque, Perdus) qui orientent les actions marketing : fidéliser, relancer, réactiver.

Fichier d'exercice

  • RFM_Depart : le modèle et les consignes. Jeu de données commun aux cas d'étude (940 clients, 2 456 commandes en 2024 et 2025).
  • Date de référence : 31/12/2025.
  • Corrigé : le PBIP RFM_Corrige est remis par le formateur.

Pourquoi des colonnes calculées ?

  • Le RFM est une photo à une date : chaque client reçoit un score et un segment fixes, que l'on veut pouvoir placer en lignes d'un tableau ou dans un segment.
  • Une mesure ne peut pas servir d'axe : on calcule donc les scores en colonnes calculées dans la table Client. Elles sont évaluées à l'actualisation et ne réagissent pas aux segments du rapport.

Étape 1 : les trois indicateurs

Derniere commande = CALCULATE ( MAX ( Ventes[Date] ) )

Frequence = CALCULATE ( DISTINCTCOUNT ( Ventes[NumCommande] ) )

Montant = CALCULATE ( SUM ( Ventes[Montant] ) )
  • CALCULATE déclenche la transition de contexte : chaque ligne de Client devient un filtre propagé à Ventes. Voir CALCULATE et transition de contexte.
  • Plusieurs colonnes de ce type dans une même table ne créent pas de dépendance circulaire, car ClientID est la clé de la table Client.

Étape 2 : la récence

Recence = DATEDIFF ( Client[Derniere commande], DATE ( 2025, 12, 31 ), DAY )
  • Plus la récence est petite, meilleur est le client. Dans un vrai rapport, remplacez la date fixe par TODAY () ou par la dernière date des ventes.

Étape 3 : les scores de 1 à 5

Récence et montant : par quintiles, chaque score regroupe un cinquième des clients.

Score R = INT ( ( RANKX ( Client, Client[Recence], , DESC ) - 1 ) * 5 / COUNTROWS ( Client ) ) + 1

Score M = INT ( ( RANKX ( Client, Client[Montant], , ASC ) - 1 ) * 5 / COUNTROWS ( Client ) ) + 1
  • RANKX ( Client, Client[Recence], , DESC ) donne le rang 1 au client le plus ancien. Le calcul « ( rang - 1 ) x 5 / nombre de clients » le ramène à 0 ; on ajoute 1 pour obtenir un score de 1 à 5.
  • Pour le montant, on trie en ordre croissant (ASC) : le plus gros client obtient le score 5.

Fréquence : par seuils.

Score F =
SWITCH (
    TRUE (),
    Client[Frequence] >= 8, 5,
    Client[Frequence] >= 5, 4,
    Client[Frequence] >= 3, 3,
    Client[Frequence] = 2, 2,
    1
)
  • 365 clients n'ont passé qu'une commande. Avec des quintiles, des clients identiques recevraient des scores différents ; les seuils évitent ce problème.
  • Source (Microsoft Learn)

Étape 4 : le segment

Segment RFM =
VAR r = Client[Score R]
VAR f = Client[Score F]
RETURN
    SWITCH (
        TRUE (),
        r >= 4 && f >= 4, "Champions",
        r >= 3 && f >= 3, "Fidèles",
        r >= 4 && f = 1, "Nouveaux",
        r >= 3, "Prometteurs",
        f >= 3, "À risque",
        "Perdus"
    )
  • SWITCH ( TRUE (), ... ) teste les conditions dans l'ordre et s'arrête à la première vraie : l'ordre des lignes fait partie de la règle.
  • Les règles sont un choix métier : adaptez-les à votre activité.

Étape 5 : les mesures et les visuels

Nb clients = COUNTROWS ( Client )

Part des clients = DIVIDE ( [Nb clients], CALCULATE ( [Nb clients], ALL ( Client[Segment RFM] ) ) )

CA par client = DIVIDE ( [CA], [Nb clients] )
  • Tableau par segment : Nb clients, Part des clients, CA, CA par client.
  • Matrice Score R (lignes) x Score F (colonnes), valeur Nb clients, avec une mise en forme conditionnelle : on y lit d'un coup d'œil la répartition de la base.

Résultat attendu

Segment RFMNb clientsPart des clientsCACA par client
Champions879,3 %440 5835 064
Fidèles17418,5 %444 7362 556
Prometteurs21022,3 %263 3091 254
Nouveaux939,9 %69 042742
À risque9610,2 %225 6922 351
Perdus28029,8 %237 438848
  • Les Champions (9 % des clients) font 26 % du CA. Les 96 clients « À risque » pèsent 2 351 € chacun : ce sont eux qu'il faut relancer en priorité.

Pour aller plus loin

  • RFM dynamique : refaire les scores en mesures, pour qu'ils suivent une date de référence choisie dans un segment. Le segment ne peut alors plus servir d'axe sans table de segments déconnectée.
  • Combiner avec le cas Pareto et classement ABC sur les clients.