Comment calculer le nombre de cellules d’une couleur spécifique dans Google Sheets ?

Dans cet article, nous allons voir comment compter le nombre de cellules ayant une couleur spécifique dans une plage de cellules dans Google Sheets. Cela peut être utile lorsque vous utilisez des couleurs pour mettre en évidence certaines données, par exemple, les cellules contenant des valeurs dépassant un certain seuil ou des tâches terminées dans une liste de contrôle.

Pourquoi Google Sheets ne propose-t-il pas cette fonctionnalité nativement ?

Google Sheets offre de nombreuses fonctionnalités intégrées, mais il n’existe pas de fonction native pour compter les cellules en fonction de leur couleur. Heureusement, avec Google Apps Script, il est possible de créer une fonction personnalisée qui répond à ce besoin.

Étape 1 : Introduction à Google Apps Script

Google Apps Script est un langage de programmation basé sur JavaScript qui permet d’automatiser et d’étendre les fonctionnalités de Google Sheets. En utilisant Apps Script, nous pouvons créer une fonction personnalisée qui comptera les cellules d’une couleur donnée.

Création de la fonction personnalisée countColoredCells

  1. Allez dans Extensions > Apps Script dans votre feuille de calcul Google Sheets.
  2. Supprimez le code par défaut qui s’affiche, puis copiez et collez le code suivant :
function compterCellulesCouleur(plage, couleur) {
  const feuille = SpreadsheetApp.getActiveSpreadsheet();
  const plageActive = feuille.getRange(plage);
  const couleursFond = plageActive.getBackgrounds();
  let compteur = 0;
  
  couleursFond.forEach(rangeLigne => {
    rangeLigne.forEach(couleurCellule => {
      if (couleurCellule === couleur) {
        compteur++;
      }
    });
  });
  
  return compteur;
}
  1. Enregistrez votre script sous un nom, par exemple « Fonctions de couleur ».

Étape 2 : Utiliser la fonction personnalisée dans Google Sheets

Maintenant que nous avons créé notre fonction, voyons comment l’utiliser dans votre feuille de calcul.

  1. Identifiez la plage de cellules que vous souhaitez analyser (par exemple, A1:A10).
  2. Identifiez la couleur que vous voulez compter. Pour cela, sélectionnez une cellule de la couleur souhaitée, cliquez sur l’icône de couleur de remplissage et notez le code hexadécimal de la couleur (par exemple #ff0000 pour le rouge).
  3. Utilisez la fonction personnalisée dans une cellule de Google Sheets comme ceci :
   =compterCellulesCouleur("A1:A10"; "#ff0000")

Cela renverra le nombre de cellules de la plage A1:A10 qui sont de couleur rouge.

Étape 3 : Conseils pour l’utilisation de la fonction

  • Actualisation : La fonction compterCellulesCouleur ne se met pas à jour automatiquement lorsque la couleur des cellules change. Si vous modifiez les couleurs, forcez l’actualisation en modifiant une cellule ou en rechargeant la feuille.
  • Compatibilité : Comme il s’agit d’une fonction personnalisée, elle ne fonctionne que dans Google Sheets et ne sera pas disponible si vous exportez votre feuille de calcul vers Excel.

Exemples pratiques

  • Gestion de projet : Comptez le nombre de tâches terminées en utilisant une couleur de fond spécifique.
  • Analyse de données : Identifiez rapidement les valeurs qui dépassent un seuil critique en utilisant la coloration conditionnelle et en comptant les cellules colorées.

Étape 4 : Aller plus loin en identifiant toutes les couleurs dans une plage de cellules

Dans la partie précédente, nous avons vu comment compter les cellules d’une couleur spécifique. Maintenant, allons plus loin en récupérant toutes les couleurs présentes dans une plage de cellules donnée et en comptant combien de fois chaque couleur apparaît. Cette approche est particulièrement utile lorsque vous travaillez avec des plages de données où différentes couleurs indiquent différents états ou catégories.

Création de la fonction personnalisée compterToutesLesCouleurs

  1. Retournez dans Extensions > Apps Script dans votre feuille de calcul Google Sheets.
  2. Ajoutez le code suivant à votre script existant :
   function compterToutesLesCouleurs(plage) {
     const feuille = SpreadsheetApp.getActiveSpreadsheet();
     const plageActive = feuille.getRange(plage);
     const couleursFond = plageActive.getBackgrounds();
     const couleursCompteur = {};

     couleursFond.forEach(rangeLigne => {
       rangeLigne.forEach(couleurCellule => {
         if (couleurCellule !== "#ffffff" && couleurCellule !== "#000000") { // Ignorer les cellules blanches ou noires par défaut
           if (couleursCompteur[couleurCellule]) {
             couleursCompteur[couleurCellule]++;
           } else {
             couleursCompteur[couleurCellule] = 1;
           }
         }
       });
     });

     // Convertir l'objet en une chaîne de texte lisible pour l'affichage
     let resultats = "Couleurs trouvées et leur nombre de cellules :\n";
     for (const [couleur, compteur] of Object.entries(couleursCompteur)) {
       resultats += `Couleur ${couleur} : ${compteur} cellule(s)\n`;
     }

     return resultats.trim();
   }

Comment utiliser la nouvelle fonction dans Google Sheets

  • Utilisez la fonction personnalisée dans votre feuille de calcul comme suit :
  =compterToutesLesCouleurs("A1:C10")

Cette fonction affichera une liste de toutes les couleurs trouvées dans la plage A1:C10 avec le nombre de cellules correspondantes pour chaque couleur.

Étape 5 : Afficher les résultats directement dans une feuille de calcul Google Sheets

Dans cette dernière étape, nous allons encore améliorer notre script pour afficher les résultats directement dans une feuille de calcul. Au lieu d’obtenir un simple texte récapitulatif, le script va créer une nouvelle feuille intitulée « Résultats Couleurs », où chaque couleur sera affichée en arrière-plan d’une cellule, accompagnée du nombre de cellules correspondantes dans la plage analysée.

Création de la fonction afficherCouleursEtComptages

  1. Retournez dans Extensions > Apps Script et ajoutez le code suivant à votre script :
   function afficherCouleursEtComptages(plage) {
     const feuille = SpreadsheetApp.getActiveSpreadsheet();
     const plageActive = feuille.getRange(plage);
     const couleursFond = plageActive.getBackgrounds();
     const couleursCompteur = {};

     // Parcourir les cellules de la plage pour compter les couleurs
     couleursFond.forEach(rangeLigne => {
       rangeLigne.forEach(couleurCellule => {
         if (couleurCellule !== "#ffffff" && couleurCellule !== "#000000") { // Ignorer les cellules blanches ou noires par défaut
           if (couleursCompteur[couleurCellule]) {
             couleursCompteur[couleurCellule]++;
           } else {
             couleursCompteur[couleurCellule] = 1;
           }
         }
       });
     });

     // Effacer les anciennes données dans la feuille des résultats
     const feuilleResultats = feuille.getSheetByName("Résultats Couleurs") || feuille.insertSheet("Résultats Couleurs");
     feuilleResultats.clear();

     // Insérer les résultats dans la feuille
     const couleurs = Object.keys(couleursCompteur);
     feuilleResultats.getRange(1, 1).setValue("Couleur");
     feuilleResultats.getRange(1, 2).setValue("Nombre de cellules");

     couleurs.forEach((couleur, index) => {
       const row = index + 2; // Commence à la ligne 2, car la première ligne est pour les en-têtes
       feuilleResultats.getRange(row, 1).setBackground(couleur).setValue(couleur); // Cellule avec la couleur de fond
       feuilleResultats.getRange(row, 2).setValue(couleursCompteur[couleur]); // Nombre de cellules de cette couleur
     });

     // Ajuster la largeur des colonnes
     feuilleResultats.autoResizeColumn(1);
     feuilleResultats.autoResizeColumn(2);

     return `Les résultats ont été insérés dans la feuille "Résultats Couleurs".`;
   }

Comment utiliser la fonction afficherCouleursEtComptages

Pour exécuter cette fonction, entrez simplement dans une cellule de votre feuille de calcul :

=afficherCouleursEtComptages("A1:C10")

Cette fonction analysera la plage A1:C10 et affichera les résultats dans une nouvelle feuille intitulée « Résultats Couleurs ». La première colonne montrera les couleurs de fond, et la deuxième colonne affichera le nombre de cellules trouvées pour chaque couleur.

Avantages de cette approche

  • Visualisation directe : Vous obtenez une vue d’ensemble visuelle des couleurs présentes dans votre plage de données, ce qui facilite l’interprétation.
  • Mise à jour dynamique : La feuille « Résultats Couleurs » est mise à jour à chaque fois que la fonction est exécutée, offrant ainsi un moyen simple de suivre les changements de couleur dans votre plage de cellules.

En ajoutant cette fonctionnalité, vous rendez votre analyse encore plus puissante et intuitive. Vous pouvez maintenant obtenir un rapport complet et visuel de toutes les couleurs utilisées dans une plage de cellules de Google Sheets, et ce, en quelques clics seulement.

Exemples d’utilisation pratique

  • Gestion de projets complexes : Imaginez que vous utilisez différentes couleurs pour indiquer les états de plusieurs tâches : en cours, terminé, en attente, etc. Cette fonction vous aidera à obtenir un récapitulatif rapide du nombre de tâches dans chaque état.
  • Analyse des tendances : Lorsque vous colorez des cellules en fonction des tendances (par exemple, vert pour les chiffres positifs, rouge pour les chiffres négatifs), ce script permet de savoir en un coup d’œil la proportion de cellules de chaque couleur.

En combinant les deux approches présentées dans cet article, vous disposez désormais d’un outil puissant pour travailler avec des cellules colorées dans Google Sheets. Que vous souhaitiez simplement compter les cellules d’une couleur spécifique ou obtenir un aperçu complet de toutes les couleurs utilisées dans une plage de données, ces fonctions personnalisées vous permettront d’analyser et de gérer vos données plus efficacement.