Bureautique & Productivité

Excel : analyse de cohortes SaaS sans outil externe

10 min de lecture

L’analyse de cohortes, guide général d’un SaaS qui grandit

Pour un SaaS africain (par exemple un outil de gestion pour PME ), l’analyse de cohortes mesure la rétention client dans le temps. Elle répond à la question : combien des clients acquis en janvier sont encore actifs 3 mois plus tard ? Excel suffit pour des bases de moins de 100 000 clients.

Principe

Une cohorte = un groupe de clients acquis au même mois. On suit chaque cohorte dans le temps (mois M0, M+1, M+2…) pour voir combien restent actifs. Le tableau résultant est une matrice triangulaire qui révèle si la rétention s’améliore, si une cohorte a un problème particulier, et si le produit retient mieux au fil du temps.

Données nécessaires

Une table historique avec :

  • ClientID
  • DateInscription
  • DateAction (activité : connexion, paiement, etc.)

Vue d’ensemble 1 : calculer le MoisCohorte

MoisCohorte : =TEXTE(DateInscription; "aaaa-mm")
MoisActivite : =TEXTE(DateAction; "aaaa-mm")
MoisEcoulé : =DATEDIF(DateInscription; DateAction; "m")

Vue d’ensemble 2 : tableau croisé dynamique

Sélectionner les données > Insérer TCD. Lignes : MoisCohorte. Colonnes : MoisEcoulé. Valeurs : Nombre d’utilisateurs distincts (utiliser Mesure implicite via modèle de données pour le DISTINCTCOUNT).

On obtient une matrice triangulaire : ligne 2025-01, colonnes 0, 1, 2, 3, etc.

Vue d’ensemble 3 : taux de rétention

Dans une nouvelle feuille, dividendez chaque cellule par la valeur M0 de sa ligne. Résultat : pourcentages décroissants. Appliquez une mise en forme conditionnelle dégradée (rouge = faible rétention, vert = forte).

Exemple typique SaaS B2B sain :

  • M0 : 100 pour cent
  • M+1 : 85 pour cent
  • M+3 : 75 pour cent
  • M+6 : 68 pour cent
  • M+12 : 60 pour cent

Vue d’ensemble 4 : identifier les anomalies

Une ligne dont la rétention chute brutalement à M+1 signale un problème d’onboarding sur cette cohorte. Une colonne qui s’effondre à M+6 pour toutes les cohortes indique un pain point structurel du produit à ce stade.

Vue d’ensemble 5 : analyse par segment

Ajoutez une dimension : Plan (Basic, Pro, Enterprise), Canal (Organic, Ads, Referral), Pays. Construisez plusieurs matrices de cohortes pour comparer.

Découverte typique : les clients Enterprise ont une rétention M+12 de 95 pour cent vs 45 pour cent pour Basic. Le ROI des efforts de conversion vers Enterprise devient évident.

Calculer le LTV à partir des cohortes

LTV = ARPU × (1 / (1 – Rétention)). Avec rétention mensuelle moyenne de 92 pour cent et ARPU de 25 euros : LTV = 25 × 12,5 = 312 euros. À confronter avec le CAC pour valider l’unit economics.

Revenue cohorts (plus avancé)

Au lieu de compter les utilisateurs, sommez les revenus mensuels. Révèle l’expansion revenue : une cohorte peut perdre 30 pour cent d’utilisateurs mais gagner 50 pour cent en revenu grâce aux upsells.

Automatisation

Power Query pour rafraîchir depuis votre base PostgreSQL ou CSV exporté. Chaque début de mois, actualisation en 1 clic. Dashboard consultable par toute l’équipe commerciale.

Conclusion

L’analyse de cohortes est le reflex quotidien des SaaS matures. Pas besoin de Mixpanel ou Amplitude pour démarrer : Excel fait le travail jusqu’à une échelle significative. C’est souvent le premier dashboard qu’un fondateur africain construit avant de parler à ses investisseurs.

Voir aussi

Pourquoi l’analyse de cohortes change tout pour un SaaS africain

Vous lancez un SaaS de facturation en ligne pour les PME a Abidjan ou un outil RH cloud pour les administrations a Lome. Apres 12 mois, vous comptez 1 200 abonnes mais le churn vous semble eleve sans que vous puissiez le quantifier. Le simple taux d’attrition mensuel (clients perdus divises par clients debut de mois) masque la realite : les clients de janvier 2025 ne se comportent pas comme ceux de juillet 2025, et vos derniers ajustements produit ont peut-etre tout change.

L’analyse de cohortes resout ce flou. Vous regroupez les clients par mois d’inscription puis vous suivez leur retention dans le temps. Une grille apparait : chaque ligne est une cohorte, chaque colonne un mois depuis l’inscription, chaque cellule un pourcentage de clients encore actifs. Ce tutoriel construit cette grille dans Excel sans Mixpanel, sans Amplitude, sans abonnement BI : juste votre export base de donnees et des fonctions natives.

Etape 1 : preparer les donnees brutes au bon format

Exportez votre table abonnements en CSV avec trois colonnes minimum : email_client (ou ID), date_inscription, date_dernier_paiement (ou date_resiliation). Si votre SaaS facture mensuellement, ajoutez une colonne mois_facture pour chaque facture emise. Cette deuxieme structure (1 ligne par facture) est plus precise pour les cohortes mensuelles.

email          | inscription | resiliation
abc@xyz.sn     | 2025-01-08  | 2025-04-15
def@xyz.ci     | 2025-01-22  | (vide)
ghi@xyz.ml     | 2025-02-03  | 2025-07-30
jkl@xyz.bf     | 2025-03-11  | (vide)

Importez le CSV dans Excel et convertissez la plage en tableau structure (Ctrl+L). Nommez-le tbl_abonnes. La date de resiliation peut etre vide pour les clients toujours actifs : c’est important, ne mettez pas de zero ni de tiret, laissez la cellule vide.

Etape 2 : ajouter une colonne Mois de cohorte

Chaque client appartient a la cohorte de son mois d’inscription. Creez une colonne calculee qui ramene la date au premier jour du mois. La fonction Excel FIN.MOIS combinee a +1 jour donne le 1er du mois courant.

=DATE(ANNEE([@inscription]); MOIS([@inscription]); 1)

Formatez en aaaa-mm pour la lisibilite. Toutes les inscriptions de janvier 2025 affichent 2025-01, celles de juillet 2025 affichent 2025-07. Vous obtenez ainsi un identifiant de cohorte stable qui servira de cle de groupement.

Etape 3 : calculer le mois actif courant pour chaque client

Le mois courant ou un client est encore actif est : soit aujourd’hui (si pas de resiliation), soit le mois precedant la resiliation. Ajoutez cette colonne :

=SI(EST.VIDE([@resiliation]); FIN.MOIS(AUJOURDHUI();0); FIN.MOIS([@resiliation];-1))

Ainsi, un client inscrit le 8 janvier 2025 et resilie le 15 avril 2025 est compte comme actif jusqu’a fin mars 2025. Un client toujours abonne en mai 2026 est compte actif jusqu’au mois en cours. Cette logique colle au paiement effectif et evite de sur-estimer la retention.

Etape 4 : calculer le numero de mois de presence

Pour positionner chaque client dans la grille de cohorte, calculez son anciennete en mois (M0, M1, M2…). Mois 0 est le mois d’inscription, Mois 1 est le mois suivant, etc.

=DATEDIF([@cohorte]; [@dernier_actif]; "m")

Un client inscrit en janvier et actif jusqu’en mars donne DATEDIF = 2, donc il est present en M0, M1, M2. Un client inscrit en janvier et toujours actif aujourd’hui (mai 2026) donne DATEDIF = 16, donc present de M0 a M16.

Etape 5 : construire la matrice cohorte avec NB.SI.ENS

Sur un nouvel onglet, listez en colonne A toutes les cohortes (2025-01 a 2026-04) et en ligne 1 les positions M0 a M15. Dans chaque cellule, comptez le nombre de clients de la cohorte X dont l’anciennete est superieure ou egale a la position Y.

=NB.SI.ENS(tbl_abonnes[cohorte]; $A2; tbl_abonnes[anciennete]; ">="&B$1)

Tirez la formule sur toute la grille. La colonne M0 affiche la taille initiale de chaque cohorte, M1 le nombre encore present un mois apres, etc. Cellules vides apparaissent pour les cohortes recentes qui n’ont pas encore atteint M5 ou M10 : c’est normal, vous les laisserez en blanc.

Etape 6 : transformer en pourcentages de retention

Sous la matrice de comptage, dupliquez la grille et divisez chaque cellule par la valeur M0 de sa ligne pour obtenir le pourcentage de retention. Format Cellules pourcentage 0,0 %.

=SIERREUR(B2/$B2; "")

La colonne M0 affiche 100 % partout (par construction). M1 montre la part de clients restants apres 1 mois, M3 apres 3 mois, etc. C’est ici que la verite apparait : si la cohorte janvier 2025 garde 78 % en M3 mais celle de juillet 2025 seulement 54 % en M3, votre churn s’est aggrave et il faut comprendre pourquoi.

Etape 7 : visualiser avec une mise en forme conditionnelle

Selectionnez la grille en pourcentages, allez dans Mise en forme conditionnelle puis Echelles de couleurs. Choisissez Vert-Jaune-Rouge inversee : retention forte en vert, faible en rouge. La grille devient une heatmap immediate.

L’oeil identifie en quelques secondes les patterns : decrochage systematique en M3 (probleme onboarding), chute brutale apres une cohorte donnee (incident produit, hausse de prix), ou amelioration progressive (effet positif d’un nouveau parcours). Vous prenez vos decisions produit sur base factuelle.

Lectures complémentaires, voyez nos tutoriels TCD sur 1 million de lignes et analyse ABC Pareto.

Etape 8 : enrichir avec la retention en revenus

La retention en nombre de clients ne dit pas tout. Si vos clients fideles upgradent vers des plans plus chers (NRR positif), la retention en revenus est superieure a 100 %. Construisez une seconde grille basee sur le MRR (Monthly Recurring Revenue) plutot que sur le compte de clients.

Pour chaque client, ajoutez une colonne MRR_initial et une colonne MRR_actuel. La cellule de retention revenus M3 d’une cohorte agrege la somme des MRR_actuels divisee par la somme des MRR_initiaux des clients encore presents en M3. Une cohorte a 85 % de retention clients mais 110 % de retention revenus signale un produit qui monetise mieux les survivants : excellent signal.

Etape 9 : segmenter les cohortes par canal d’acquisition

Tous les clients ne se comportent pas pareil selon la maniere dont ils sont arrives. Un abonne arrive via un partenariat avec une chambre de commerce a Cotonou n’a pas le meme profil qu’un abonne attire par une publicite Facebook. Ajoutez une colonne canal a votre table abonnes (organique, payant, partenariat, referral, evenement) et batissez plusieurs grilles cohortes filtrees.

La methode la plus simple est de dupliquer l’onglet de matrice et de remplacer NB.SI.ENS par une version a quatre criteres incluant le canal :

=NB.SI.ENS(tbl_abonnes[cohorte]; $A2; tbl_abonnes[anciennete]; ">="&B$1; tbl_abonnes[canal]; "partenariat")

Vous obtenez 4 ou 5 grilles, une par canal. Comparez : si la retention en M6 du canal payant est de 32 % contre 71 % pour le canal partenariat, vous savez ou rediriger le budget marketing du trimestre suivant.

Etape 10 : calculer la LTV par cohorte

La Lifetime Value (valeur vie client) est le revenu total qu’un client genere sur sa duree de presence. La cohorte donne une LTV reelle (pas projetee) : pour une cohorte mature de 12 mois, LTV = somme des MRR encaisses sur 12 mois divisee par le nombre de clients de la cohorte au depart.

LTV_cohorte_2025-01 = SOMME(MRR_M0:MRR_M15) / NB_clients_M0

Comparez la LTV au CAC (cout d’acquisition client) du meme canal. Le ratio LTV/CAC sain pour un SaaS B2B est superieur a 3. En dessous, votre acquisition coute trop cher pour ce que les clients rapportent. Cette analyse a permis a un client SaaS RH base a Dakar de couper 40 % de son budget Google Ads pour reinjecter dans des partenariats institutionnels CGE-CI et CCI Senegal, qui delivraient des clients a LTV/CAC = 7.

Synthese : decisions produit basees sur la verite cohorte

L’analyse de cohortes n’est pas un exercice esthetique. Sur les 8 SaaS ouest-africains que nous avons accompagnes en 2025, elle a debouche sur des decisions concretes : refonte de l’onboarding pour reduire la chute en M1, suppression d’un plan gratuit qui pourrissait la retention, augmentation prix mesuree sur cohortes recentes, ciblage marketing recentre. Le tout sans payer un centime d’outil BI : Excel, NB.SI.ENS, mise en forme conditionnelle, et 90 minutes de mise en place. Reproductible chaque mois en moins de 10 minutes via un Power Query qui rejoue le pipeline sur les nouvelles donnees.

Etape 11 : automatiser le rafraichissement mensuel

Une fois le modele construit, evitez de tout refaire chaque mois. Connectez la table tbl_abonnes a votre base de donnees production via Power Query (onglet Donnees, Obtenir les donnees, A partir d’une base de donnees PostgreSQL, MySQL ou SQL Server). Power Query rejoue la requete a chaque ouverture, recupere les nouveaux abonnes et resilies, recalcule cohorte et anciennete grace aux colonnes calculees du tableau structure, et la matrice se met a jour seule.

Programmez ensuite un rafraichissement automatique chaque 1er du mois a 7h via le Planificateur de taches Windows et un script .vbs qui ouvre le classeur, declenche RefreshAll, sauvegarde et le ferme. A 8h, le board reception son tableau de cohortes a jour par e-mail automatique via Power Automate ou un simple envoi Outlook scripte. Aucune action manuelle, aucune erreur de copier-coller.

Cette discipline transforme l’analyse de cohortes en metrique de pilotage continu, lisible par toute l’equipe produit et finance, sans dependre d’un data analyst externe ou d’un outil paye en USD.

Partager