
Sommaire
Pour générer une numérotation de plan de base, vous pouvez utiliser une formule basée sur plusieurs fonctions Excel, notamment COUNTA, IF, MID, FIND et LEN. Dans l'exemple illustré, la formule en D5 est:
=COUNTA($B$5:B5)&"."&IF(B5"",1,MID(D4,FIND(".",D4)+1,LEN(D4))+1)
Remarque: cette formule ne traitera qu'un plan à 2 niveaux.
Explication
À la base, cette formule crée un nombre de niveau 1 et de niveau 2 et concatène les deux nombres avec un point (".") Comme séparateur. Le résultat est une valeur comme "1,1". Le numéro de "niveau 1" est généré avec COUNTA comme ceci:
=COUNTA($B$5:B5)
Notez que la plage est une référence en expansion, elle s'étendra donc lorsqu'elle est copiée dans la colonne.
Le numéro "niveau 2" est généré avec ce code:
IF(B5"",1,MID(D4,FIND(".",D4)+1,LEN(D4))+1)
Ici, la fonction IF est utilisée pour vérifier le contenu de B5. Si B5 n'est pas vide, cela signifie que nous avons un nouvel en-tête de niveau 1 et IF renvoie 1. En d'autres termes, chaque fois que nous avons une nouvelle entrée de niveau 1, nous redémarrons la numérotation de niveau 2 à 1.
Si le B5 * est * vide, nous devons incrémenter le nombre de niveau 2 en utilisant la valeur de la cellule ci-dessus. C'est un peu délicat, car le numéro du plan est une chaîne de texte, pas un nombre. Cela signifie que nous devons extraire la valeur avec une fonction de texte avant de pouvoir incrémenter. Pour ce faire, nous utilisons la fonction MID pour extraire tout le texte à droite du point ("."), Que nous localisons avec la fonction FIND:
MID(D4,FIND(".",D4)+1,LEN(D4))+1
La fonction LEN est utilisée comme un moyen simple de garantir que tous les caractères après le point sont extraits. Notez que nous ajoutons ensuite 1 directement au résultat, qui est toujours du texte. Cette opération mathématique oblige Excel à forcer le texte à un nombre, le résultat est donc un nombre incrémenté. Enfin, les nombres de niveau 1 et de niveau 2 sont concaténés avec un point (".") Comme séparateur.