Codification sur excel

Fermé
EXCEL.M Messages postés 15 Date d'inscription vendredi 5 juillet 2013 Statut Membre Dernière intervention 29 décembre 2013 - 5 juil. 2013 à 12:27
EXCEL.M Messages postés 15 Date d'inscription vendredi 5 juillet 2013 Statut Membre Dernière intervention 29 décembre 2013 - 15 juil. 2013 à 13:40
Bonjour,

J'aurais aimé savoir s'il est possible de codifier un nom sur excel.


en B1 : Flacon
en C1 : année création (ex 2013)
en A1 j'aimerai avoir un résultat du type : 13 F 001A
- 13 pour 2013
- F pour flacon
- 001 (c'est le premier créé cette année: doit se créer automatiquement à la suite du dernier pour ne pas voir à rechercher ce dernier)
- A : première version ( possibilité d'ajouter une colonne comme référence : version n°)

Merci d'avance
A voir également:

3 réponses

Bonjour

Ceci est possible en utilisant la formule =gauche ou =droite
+ la fonction concatener
Ex : Cel A1 "ABC" et Cel A2 "DEF"
dans la Cel A3 =CONCATENATE(droite(A1;2);droite(A2;1)) donne le résultat
bcf
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 419
Modifié par Vaucluse le 5/07/2013 à 13:13
Bonjour
pour être entièrement automatique:

1° pour l'indice A,B,C créer une colonne hors champ avec les lettres nécessaires en colonne (A,B,C,jusqu'à l'indice maxi à utiliser), par exemple de X1 àX26

2°)si votre tableau commence en A1 pour avoir l'ensemble de la notation sans autre données:
en B l'année
en C le type (Flacon)

3° en A1:

=SI(OU(B1="";C1="");"";DROITE(B1;2)&" "&GAUCHE(C1;1)&" "&TEXTE(NB.SI($B$1:B1;B1);"000")&INDEX(X:X;SOMMEPROD(($B$1:B1=B1)*($C$1:C1=C1))))



le code TEXTE(NBCAL($A$1:A1);"000") vous donnera sous forme de texte le N° en fonction du nombre de valeurs inscrites dans la, colonne A au niveau de la ligne contenant la formule_sous forme de texte à 3 caractères

le dernier code SOMMEPROD(...qui définit l'indice ira chercher dans la liste des lettres celle qui correspond au nombre de fois ou apparaissent au dessus de la ligne(incluse) l'année en A et le nom en B (donc l'indice recommence à A en changeant d'année)

Note:
bien respecter les positions des signes $ dans les adresses, il n'y en a pas partout avant de tirer la formule

le système impose qu'il n'y ait pas de ligne vide en A et B dans le tableau.

pour info voila ce que ça donne
https://www.cjoint.com/c/CGfnmB0XA8r
(version qui recommence à 1 chaque année)
crdlmnt




Errare humanum est, perseverare diabolicum
0
EXCEL.M Messages postés 15 Date d'inscription vendredi 5 juillet 2013 Statut Membre Dernière intervention 29 décembre 2013
5 juil. 2013 à 13:53
merci beaucoup !! ça fonctionne très bien! à un petit détail près..

les chiffres sont à la suite les uns des autres et ne redemarrent pas à 001 pour un nouveau type. Ex je peux avoir : 13 F 001A et 13 B 001A,
et je voudrais que s'il y a un nouveau F il devienne 13 F 002A même s'il est après une ligne avec un B, en revanche si un B est à la suite il prendra le numéro apres le dernier B

Est-ce possible d'avoir ce résultat?

Encore une fois merci, ça m'a deja énormement aidé
0
EXCEL.M Messages postés 15 Date d'inscription vendredi 5 juillet 2013 Statut Membre Dernière intervention 29 décembre 2013
5 juil. 2013 à 13:59
et je viens de voir à l'instant que ça ne faisait pas le résultat que je désirais. En effet ce n'est pas la lettre qui doit changer à chaque nouvelle référence ex:
13 F 001A
13 F 001B
mais le chiffre
13 F 001A
13 F 002A
la lettre ne doit changer que lorsque l'on change de version (indiquer dans une colonne à côté)

et les chiffres redémarents si le type change ex: B; mais continu de s'ajouter à la suite. Ainsi on aura:


13 F 001A
13 F 002A
13 F 003A
13 B 001A
13 B 002A
13 F 004A
13 F 001B
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 419
5 juil. 2013 à 14:02
Alors essayez avec celle ci en A1:

=SI(OU(B1="";C1="");"";DROITE(B1;2)&" "&GAUCHE(C1;1)&" "&TEXTE(SOMMEPROD(($B$1:B1=B1)*($C$1:C1=C1));"000")&INDEX(X:X;SOMMEPROD(($B$1:B1=B1)*($C$1:C1=C1))))

crdlmnt
0
EXCEL.M Messages postés 15 Date d'inscription vendredi 5 juillet 2013 Statut Membre Dernière intervention 29 décembre 2013
5 juil. 2013 à 14:59
cool merci !! ça marche super bien !!

bonne journée =)
0
EXCEL.M Messages postés 15 Date d'inscription vendredi 5 juillet 2013 Statut Membre Dernière intervention 29 décembre 2013
15 juil. 2013 à 13:34
RE bonjour,

J'aimerai que pour lorsque j'indique une nouvelle version (ex : B) il ne recherche pas le dernier B pour mettre le chiffre de celui si à la suite mais qu'il regarde qu'elle ligne supèrieure est identique à la sienne pour reprendre le même code et remplacer A par B
pour l'instant j'ai :
=SI(OU(B4="";C4="");"";DROITE(B4;2)&" "&SI(C4="capsule";SI(D4="charnière";"";"B");GAUCHE(C4;1))&GAUCHE(D4;1)&GAUCHE(E4;1)&" "&TEXTE(SOMMEPROD(($B$4:B4=B4)*($C$4:C4=C4)*($H$4:H4=H4)*($D$4:D4=D4)*($E$4:E4=E4));"000")&H4)
en H4 : la lettre de la version

ex:
ici si j'a en 1ère ligne 13 F 001A
en 2ème : 13 F 002A
en 3ème (ligne identique sauf version à la 2ème) : 13 F 001B alors que j'aimerai : 13 F 002B

merci d'avance
0
via55 Messages postés 14509 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 2 janvier 2025 2 739
5 juil. 2013 à 13:38
Bonjour

Si en D1 tu rajoutes la version et en E1 le N° automatique :

En E1 le nombre 1 et en E2 la formule =E1+1 (à étirer vers le bas)

la formule en A1 peut être

=DROITE(C1;2) & " " & gauche(B1;1) & " " & REPT("0";3-NBCAR(E1) & E1 & D1

A étirer vers le bas

Cdlmnt
0