Ajouter automatiquement 2 caractères spécifique à la fin du contenu d'une cellule

Bonjour, voilà j’ai un tableau comme ceci:

A B
1 NOM CODE
2 REPERE A
3 CLOISON CP1
4 FACADE FP1
5 FACADE FP2
6 REPERE B
7 CLOISON CP2
8 FACADE FP4
9 FACADE FP3

et j’aimerais ajouter automatiquement 2 caractères, un tiret et la dernière lettre de la cellule au commencant par REPERE située sur les lignes précédentes pour avoir ceci:

A B
1 NOM CODE
2 REPERE A
3 CLOISON CP1-A
4 FACADE FP1-A
5 FACADE FP2-A
6 REPERE B
7 CLOISON CP2-B
8 FACADE FP4-B
9 FACADE FP3-B

Bien sur les codes changeront suivant ce qui est inscrit dans la colonne NOM. Et tous les codes situés en dessous de REPERE A devront finir -A, et de même que tous les codes situés en dessous de REPERE B devront finir par -B et ainsi de suite (REPERE C, REPERE Q, …)
Je ne sais s’il est possible de faire cela avec une formule dans la cellule B ou via un script .

on peut s’en sortir avec une REGEX() et 2 IF()

114045.ods (9.0 KB)

mais il vaudrait/faudrait mieux organiser vos données pour avoir simplement une colonne D.

1 Like

Mi scuso per i nomi delle funzioni in inglese. Apri il file per vederli nella tua lingua.

114045 LeroyG.ods (8.8 KB)

=SI(B3="","", B3&"-"&DROITE(SI(B2="",A2,C2),1)) :wink:

1 Like

Voilà. Il faut, évidemment, mettre à jour les cellules (j’ai travaillé sur les colonnes N et O, lignes 11 et plus) dans la formule suivante.
=SWITCH(N12;“CLOISON”;CONCAT(“CP”;COUNTIF($N$11:N12;“CLOISON”);"-";RIGHT(IF(O11="";N11;O11);1));CONCAT(“FP”;COUNTIF($N$11:N12;“FACADE”);"-";RIGHT(IF(O11="";N11;O11);1)))