Numeriblog Google Workspace Google Sheets, le tableur surpuissant Google Sheets : comment incrémenter une liste automatiquement / solution 1 avec des formules

Google Sheets : comment incrémenter une liste automatiquement / solution 1 avec des formules

J’évoquais dans un article l’importance d’identifier chaque ligne d’une table de données avec un ID unique. Je proposais alors de construire l’ID en amont de la saisie de nouvelles lignes. Ce nouvel article est le […]

personnes ont consulté cet article

2 minutes

Rédigé par Antoine MARTIN - il y a 2 ans

Ce que vous allez découvrir

  • Solution 1 : avec formules seulement

Google Sheets : comment incrémenter une liste automatiquement / solution 1 avec des formules

J’évoquais dans un article l’importance d’identifier chaque ligne d’une table de données avec un ID unique. Je proposais alors de construire l’ID en amont de la saisie de nouvelles lignes. Ce nouvel article est le premier d’une série qui listera quelques solutions pour créer un ID unique à la volée, à chaque création de nouvelle ligne.


Prenons le cas de saisie de devis pour notre fameuse agence « 10 Zaïne ». Chaque nouvelle pièce doit respecter un chrono sans trous ni doublons. Sinon Marie-Edwige de la compta va vous faire la misère.

logo 10 zaine

Chaque nouveau devis doit obtenir un identifiant constitué de l’année en cours et du rang du dernier devis créé, incrémenté de « 1 ». Dans l’exemple ci-dessus, il est facile de voir que le prochain ID sera 2020-021. Mais si la table est triée par date, ou filtrée sur un client, comment connaître le prochain ID disponible ?

Solution 1 : avec formules seulement

Il s’agit d’utiliser la validation de données dans la colonne en question, en récupérant le dernier numéro créé incrémenté de 1.

À chaque création de ligne, il suffira de choisir la seule proposition. Je créé donc une feuille qui sera dédiée au calcul permanent du dernier numéro attribué. Je rapporte dans cette feuille la colonne des ID déjà attribués, en évitant la première ligne qui contient le titre de la colonne :

=ARRAYFORMULA(DEVIS!A2:A)

Dans notre cas, l’ID est constitué de l’année en cours (un nombre à 4 chiffres) et d’un numéro sur 3 chiffres séparés par un « – » : YYYY-NNN. Le tableur ne peut pas trouver la valeur maximale d’une telle chaîne de caractères.

La formule MAX() renvoie « 0 » 🙁

Il faut donc transformer cette chaîne de caractères en nombre.

La fonction CNUM() convertit une chaine en nombre, mais le « – » pose toujours problème. Il faut donc supprimer ce « -« .

Image de référence

arrayformula Google Sheets

Supprimer un caractère dans une chaîne de caractères :

La fonction SUBSTITUE() permet de remplacer un ou plusieurs caractères dans une chaîne de caractères. Recherchons donc le « – » pour le remplacer par… rien du tout.

=ARRAYFORMULA(SUBSTITUE(DEVIS!A2:A;"-";""))

Attention, si en apparence nous obtenons des nombres, il s’agit en fait de texte, identifiable par l’alignement à gauche par défaut. Mais nous pouvons à présent forcer la conversion en nombre avec CNUM();

=ARRAYFORMULA(CNUM(SUBSTITUE(DEVIS!A2:A;"-";"")))

Nous voyons à présent que les valeurs sont des nombres, la valeur MAX() s’affiche enfin correctement.

ArrayFormula et Substitue

Incrémenter et reformater la chaîne de caractères

Il suffit donc à présent d’ajouter une unité à la valeur maximale de la liste.

=MAX(A:A)+1
=GAUCHE(B1;4)&"-"&DROITE(B1;3)

Mettre en place la validation des données

Il suffit à présent de mettre en place une validation des données sur la colonne ID de la feuille de devis. Utilisez le critère « Liste créée à partir d’une plage » et sélectionnez la cellule qui calcule le prochain ID.

À la création d’une nouvelle ligne, la cellule ID affiche le prochain ID disponible.


Cette première solution est une proposition que j’ai pu mettre en place dans plusieurs tables de données. Proposition qui reste perfectible : il faudrait par exemple prendre en compte l’année en cours pour repasser à 0 au 1er janvier, de plus la validation des données affiche une erreur dans les ID déjà renseignés, ce qui peut être perturbant. À suivre donc dans le prochain épisode, avec une solution en script, plus automatique.

Besoin d'un peu plus d'aide sur Sheets ?

Des formateurs sont disponibles toute l'année pour vous accompagner et optimiser votre utilisation de Sheets, que ce soit pour votre entreprise ou pour vos besoins personnels !

Découvrir nos formations Sheets

Rédacteur

Photo de profil de l'auteur
Antoine MARTIN

Consultant et formateur sur les outils bureautiques, j'ai intégré l'équipe de Numericoach en 2020. J'accompagne les utilisateurs de Google Workspace à trouver des solutions répondant à leurs besoins. Mes domaines de prédilections sont les outils Sheets, Docs, Slides et Google Apps Script.

S’abonner
Notification pour
0 Commentaires
Commentaires en ligne
Afficher tous les commentaires