Accueil/Growth
Growth · 6 min de lecture

Comment faire une analyse de cohortes dans Google Sheets : la méthode pas à pas pour suivre la rétention

Un export, trois formules, un tableau croisé dynamique : la méthode pas à pas pour construire votre tableau de cohortes et suivre la rétention client.

Bureau lumineux avec un ordinateur portable affichant un tableur coloré, un carnet ouvert et une tasse de café
Il vous faut un export de vos paiements ou commandes (identifiant client + date), trois colonnes calculées (date de première commande, mois de cohorte, âge en mois) et un tableau croisé dynamique qui compte les clients uniques par cohorte et par âge. On divise ensuite chaque ligne par son mois 0 pour obtenir des pourcentages de rétention, puis on colore. Si vos courbes finissent par s'aplatir au lieu de glisser vers zéro, vous avez un noyau de clients qui restent : c'est exactement ce que ce tableau sert à vérifier.

Pourquoi une cohorte dit plus qu'un taux de churn global

Quand un fondateur me montre son taux de churn mensuel, je pose presque toujours la même question : le churn de qui ? Un chiffre global mélange les clients arrivés il y a deux ans, fidèles par habitude, et ceux signés le mois dernier sur une promo. Si vous recrutez beaucoup, la masse des anciens peut masquer une vraie fuite chez les nouveaux. Et l'inverse existe aussi.

L'analyse de cohortes règle ça. On regroupe les clients par mois d'arrivée, puis on suit chaque groupe dans le temps. Vous voyez si les clients de mars restent mieux que ceux de janvier, si votre nouvel onboarding a changé quelque chose, à quel moment les gens décrochent. C'est le préalable à tout travail sérieux sur les leviers pour faire baisser le churn d'un SaaS : avant de corriger, il faut savoir où ça fuit.

Pas besoin d'outil payant ni de data analyst : un tableur suffit tant que votre volume reste raisonnable.

Étape 1 : récupérer les bonnes données (et décider ce que « actif » veut dire)

Tout part d'un export brut, une ligne par événement. Pour un abonnement, c'est l'historique des paiements sorti de votre outil de facturation. Pour un e-commerce, l'historique des commandes. Collez-le dans un onglet que j'appelle toujours « data », avec au minimum :

La vraie décision n'est pas technique. Qu'est-ce qui fait qu'un client compte comme « retenu » un mois donné ? En SaaS, c'est simple : il a payé ce mois-là. En e-commerce, on regarde s'il a racheté. Pour une app gratuite, ce serait une connexion ou une action clé. Choisissez une définition et tenez-vous-y, sinon vos tableaux ne se compareront pas d'un mois sur l'autre.

Petit ménage : retirez les remboursements et les commandes test, et uniformisez les emails. Une colonne avec =LOWER(TRIM(A2)) évite que « Julie@… » et « julie@… » deviennent deux clientes différentes.

Et si ce que vous voulez suivre, ce sont des visiteurs plutôt que des clients qui paient, GA4 propose une exploration de cohortes toute prête (voir mon tutoriel Google Analytics 4 pour débutants). Pour la rétention client, la source de vérité reste votre facturation.

Étape 2 : trois colonnes calculées

On ajoute trois colonnes à côté des données. Les formules utilisent le point-virgule, le séparateur de Google Sheets quand la feuille est réglée sur la France (Fichier > Paramètres) ; en paramètres américains, remplacez-le par une virgule.

  1. Colonne D, la date de première commande du client : =MINIFS(B:B;A:A;A2)
  2. Colonne E, la cohorte, c'est-à-dire le premier jour du mois de cette première commande : =EOMONTH(D2;-1)+1. Passez la colonne au format date « mois année » pour qu'elle soit lisible.
  3. Colonne F, l'âge de l'événement en mois depuis l'arrivée : =(YEAR(B2)-YEAR(E2))*12+MONTH(B2)-MONTH(E2)

Étirez les trois formules jusqu'en bas (double-clic sur la petite poignée en bas à droite de la cellule). Exemple : une cliente arrivée le 12 mars qui recommande le 3 mai aura la cohorte « mars » et un âge de 2. Sa toute première commande, elle, a l'âge 0.

Étape 3 : le tableau croisé dynamique qui fait tout le travail

Sélectionnez les colonnes A à F de l'onglet data, puis Insertion > Tableau croisé dynamique, dans une nouvelle feuille. Dans l'éditeur :

Vous obtenez un triangle. Chaque ligne est une cohorte, la colonne 0 donne sa taille de départ, les suivantes le nombre de clients encore actifs 1, 2, 3 mois plus tard. Les cohortes récentes ont moins de colonnes remplies, c'est normal. Si un réglage vous échappe, la page d'aide Google sur les tableaux croisés dynamiques détaille chaque option.

Ordinateur portable affichant un tableur avec une grille en escalier dont les cellules passent du bleu foncé au bleu pâle

L'intérêt de passer par un tableau croisé plutôt que par des dizaines de COUNTIFS écrits à la main ? La mise à jour. Le mois suivant, vous collez les nouvelles lignes, étirez les formules, et tout se recalcule. À condition que la plage source couvre des colonnes entières (data!A:F), sinon les nouvelles lignes passent à la trappe.

Étape 4 : passer en pourcentages et ajouter de la couleur

Les valeurs brutes ne se comparent pas : une cohorte de 40 clients et une de 120, ce n'est pas le même match. À droite du tableau croisé, recréez la même grille en divisant chaque cellule par la colonne 0 de sa ligne. Si la taille de la première cohorte est en B3, tapez dans la première case de la nouvelle grille =IF(B3="";"";B3/$B3), formatez en pourcentage, puis étirez vers la droite et vers le bas. Le dollar bloque la colonne B : chaque ligne se divise par sa propre taille de départ. Laissez de côté la ligne « Total » que Sheets ajoute en bas.

Ensuite, Format > Mise en forme conditionnelle > Échelle de couleurs sur la grille en pourcentages. Les zones qui pâlissent trop vite sautent aux yeux.

Une variante que j'ajoute souvent : un second tableau croisé avec SUM sur la colonne montant au lieu de COUNTUNIQUE. Vous suivez alors le chiffre d'affaires de chaque cohorte, ce qui révèle les montées en gamme. Une cohorte peut perdre des clients et garder son chiffre d'affaires, et ça change complètement la lecture.

Comment lire votre tableau sans vous raconter d'histoires

Trois lectures, dans cet ordre.

En ligne d'abord : vous suivez la vie d'une cohorte. La chute entre le mois 0 et le mois 1 est presque toujours la plus forte, ce n'est pas un drame. Ce qui compte, c'est la suite. Une rétention qui se stabilise, même basse, vaut mieux qu'une rétention haute qui continue de glisser chaque mois.

En colonne ensuite : vous comparez les cohortes au même âge. Le mois 3 des clients de septembre est-il meilleur que celui des clients de juin ? Si oui, quelque chose a fonctionné entre les deux (offre, onboarding, ciblage). C'est la lecture qui juge vos décisions.

En diagonale enfin. Une diagonale correspond au même mois calendaire pour toutes les cohortes. Si elle pâlit partout d'un coup, ce n'est pas un problème de cohorte, c'est un événement : hausse de prix, bug, saisonnalité.

Méfiez-vous des petites cohortes. Avec une vingtaine de clients, un seul départ fait bouger le pourcentage de cinq points. Tant que vos volumes sont faibles, regroupez par trimestre. Et quand vous aurez une durée de vie client crédible, branchez-la dans le calcul de ce qu'est le ratio LTV/CAC et ce qu'il dit de votre rentabilité.

Les erreurs que je croise le plus souvent

Une fois en place, ce tableau devient l'onglet que j'ouvre en premier chaque début de mois avec mes clients. Quelques minutes de mise à jour, et on sait si ce qu'on a lancé le trimestre précédent a servi à quelque chose.

Questions fréquentes

Q.Peut-on faire la même analyse de cohortes dans Excel ?

Oui, la logique est identique. Dans un Excel en français, les fonctions s'appellent MIN.SI.ENS et FIN.MOIS, et les séparateurs sont aussi des points-virgules. Seule vraie différence : pour compter des clients uniques dans un tableau croisé, il faut ajouter les données au modèle de données à la création, ce qui débloque l'option « Nombre distinct ».

Q.Comment comparer la rétention selon le canal d'acquisition ?

Ajoutez une colonne « canal » dans l'onglet data (récupérée depuis votre CRM ou vos UTM), puis placez-la en filtre du tableau croisé dynamique. Vous basculez d'un canal à l'autre en un clic. C'est souvent là qu'on découvre qu'un canal bon marché amène des clients qui partent vite.

AR
L'auteur
Antoine Rivière

Moi c'est Antoine Rivière, consultant en marketing digital depuis près de dix ans auprès de PME et de start-up. J'ai créé La Fabrique à Trafic pour partager ce qui marche vraiment en acquisition : SEO, contenu, publicité, outils, sans bullshit ni promesses magiques.

Ici, des méthodes testées, des chiffres, et des retours de terrain. L'objectif : vous aider à faire grandir votre activité en ligne, étape par étape.

Gratuit · Sans spam

La checklist SEO gratuite (2026)

Recevez notre checklist SEO de 30 points + une analyse marketing actionnable chaque semaine.

Désinscription en un clic. On respecte votre boîte mail.