Dans une base de données Google Sheets, j'ai une formule que j'ai créée afin d'attribuer un numéro de référence à une série de sociétés.Incrément de nombre dans la formule Google Sheets
Chaque entreprise devrait avoir son numéro unique sous la forme de "RET00XX" où XX représentera le numéro d'entreprise unique. Je voudrais que ces numéros soient séquentiels, en commençant par 1 et en passant par +1 après cela. Chaque fois qu'une nouvelle société est insérée dans la base de données, la formule doit pouvoir lui attribuer un numéro de référence. Il devrait également être en mesure de vérifier si la société existe déjà dans la base de données et, le cas échéant, lui attribuer automatiquement le numéro de référence unique de l'entreprise, au lieu d'en créer un nouveau.
Les noms de sociétés sont dans les cellules de la colonne B.
Ceci est la formule I ont construit (par exemple, de l'une à la ligne 2):
=ARRAYFORMULA(IF($B2<>"",IF((COUNTIF($B$1:$B1,$B2)>0),INDEX($A$1:$R2,MATCH($B2,$B$1:$B1,0),12),CONCATENATE("RET00",ROW($B2))),""))
Les étapes nécessaires sont:
1 - Il vérifie que la colonne B de la ligne correspondante n'est pas vide;
2 - Avec la fonction COUNTIF
, vérifie que la société n'existe dans aucune des lignes précédentes;
3 - Si la société existe, elle attribue le numéro de référence correspondant via la fonction INDEX
;
4 - Si la société n'existe pas, elle attribue à l'entreprise un nouveau numéro de référence avec les fonctions CONCATENATE
et ROW
.
La formule fonctionne largement, bien qu'il y ait quelques problèmes. Les utilisateurs qui ajoutent à cette base de données ont l'habitude d'ajouter des entrées en insérant des lignes au milieu de la base de données. Ainsi, en raison de la façon dont la formule est construite, les codes de référence uniques de l'entreprise changent chaque fois que cela se produit. Je crois que c'est en partie dû au fait que j'utilise une fonction ROW
.
En outre, étant donné que de nouvelles lignes sont insérées au milieu de la base de données, la formule doit pouvoir vérifier que la société existe déjà non seulement en passant par toutes les lignes précédentes, mais également par toutes les lignes (si une nouvelle ligne est insérée, formule ne vérifiera que les lignes précédentes, lorsque la société pourrait être dans les rangées après la nouvelle).
Comment attribuer des nombres séquentiels dans une formule sans référence à ROW
? Aussi, comment puis-je m'assurer que la feuille de calcul vérifie pour toutes les lignes de la colonne B au lieu de seulement celles avant la ligne insérée?
Merci